ما به یک پلاگین ساده نیاز داریم که پیامها را از کاربران دریافت کرده و با استفاده از ChatGPT API (یا مدل هوش مصنوعی دیگری) پاسخهای مربوطه را ارسال کند و این پیامها را در پایگاه داده ذخیره نماید. به علاوه، در تنظیمات پلاگین، باید فضایی برای وارد کردن API Key برای ارتباط با OpenAI فراهم کنیم. در ادامه، مراحل گام به گام ایجاد این پلاگین برای وردپرس توضیح داده شده است. گام اول: ساختار پلاگین ساختار دایرکتوری پلاگین وردپرس به شکل زیر خواهد بود: /wp-content/plugins/ /chat-ai/ chat-ai.php /admin/ settings.php /assets/ /js/ script.js /css/ style.css /includes/ /db.php /chat.php گام دوم: ساخت فایل اصلی پلاگین (chat-ai.php) در ابتدا، باید یک فایل اصلی برای پلاگین خود بسازید که وردپرس آن را شناسایی کند. این فایل باید اطلاعات مربوط به پلاگین را داشته باشد و همچنین افزونه را بارگذاری کند. <?php /* Plugin Name: Chat AI Plugin URI: https://example.com/chat-ai Description: پلاگین چت با هوش مصنوعی با استفاده از APIهای GPT-3 یا GPT-4 Version: 1.0 Author: Your Name Author URI: https://example.com License: GPL2 */ if (!defined('ABSPATH')) { exit; // Exit if accessed directly } // بارگذاری فایلهای اسکریپت و استایل function chat_ai_enqueue_scripts() { wp_enqueue_script('chat-ai-js', plugin_dir_url(__FILE__) . 'assets/js/script.js', array('jquery'), null, true); wp_enqueue_style('chat-ai-css', plugin_dir_url(__FILE__) . 'assets/css/style.css'); } add_action('wp_enqueue_scripts', 'chat_ai_enqueue_scripts'); // ایجاد جدول در پایگاه داده هنگام فعالسازی پلاگین function chat_ai_install() { global $wpdb; $table_name = $wpdb->prefix . 'chat_messages'; // بررسی وجود جدول و ایجاد آن if ($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) { $charset_collate = $wpdb->get_charset_collate(); $sql = "CREATE TABLE $table_name ( id mediumint(9) NOT NULL AUTO_INCREMENT, user_message text NOT NULL, ai_response text NOT NULL, timestamp datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, PRIMARY KEY (id) ) $charset_collate;"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); } } register_activation_hook(__FILE__, 'chat_ai_install'); // ایجاد منو برای تنظیمات پلاگین در پنل مدیریت وردپرس function chat_ai_admin_menu() { add_menu_page('Chat AI Settings', 'Chat AI', 'manage_options', 'chat-ai', 'chat_ai_settings_page'); } add_action('admin_menu', 'chat_ai_admin_menu'); // صفحه تنظیمات پلاگین در پنل مدیریت function chat_ai_settings_page() { ?> <div class="wrap"> <h1>تنظیمات Chat AI</h1> <form method="post" action="options.php"> <?php settings_fields('chat_ai_options_group'); do_settings_sections('chat-ai'); ?> <table class="form-table"> <tr valign="top"> <th scope="row">کلید API ChatGPT</th> <td><input type="text" name="chat_ai_api_key" value="<?php echo esc_attr(get_option('chat_ai_api_key')); ?>" /></td> </tr> </table> <?php submit_button(); ?> </form> </div> <?php } // ثبت تنظیمات پلاگین function chat_ai_register_settings() { register_setting('chat_ai_options_group', 'chat_ai_api_key'); } add_action('admin_init', 'chat_ai_register_settings'); گام سوم: ایجاد فایلهای جاوااسکریپت و استایل در پوشه /assets/js/، یک فایل جاوااسکریپت به نام script.js بسازید که مسئول ارسال پیامها به سرور و دریافت پاسخ باشد. // assets/js/script.js jQuery(document).ready(function($) { $('#chat-send-btn').click(function() { var userMessage = $('#user-message').val(); if (userMessage.trim() === "") return; // نمایش پیام کاربر $('#chat-box').append('<div><strong>شما:</strong> ' + userMessage + '</div>'); $('#user-message').val(''); // پاک کردن ورودی // ارسال درخواست به سرور $.ajax({ url: ajaxurl, type: 'POST', data: { action: 'chat_ai_send_message', user_message: userMessage }, success: function(response) { // نمایش پاسخ هوش مصنوعی var aiResponse = response.ai_response; $('#chat-box').append('<div><strong>هوش مصنوعی:</strong> ' + aiResponse + '</div>'); $('#chat-box').scrollTop($('#chat-box')[0].scrollHeight); } }); }); }); در پوشه /assets/css/، یک فایل CSS به نام style.css برای طراحی ساده چت ایجاد کنید. /* assets/css/style.css */ #chat-box { width: 100%; height: 300px; border: 1px solid #ddd; padding: 10px; overflow-y: scroll; } #user-message { width: 80%; padding: 10px; } #chat-send-btn { padding: 10px; } گام چهارم: مدیریت درخواستها و ذخیره پیامها در پایگاه داده برای ارسال و ذخیره پیامها، نیاز داریم که یک اکشن AJAX تعریف کنیم. در فایل اصلی پلاگین (chat-ai.php)، این کد را اضافه کنید: // مدیریت ارسال پیام و ذخیره آن در پایگاه داده function chat_ai_send_message() { global $wpdb; // دریافت پیام از کاربر $user_message = sanitize_text_field($_POST['user_message']); // دریافت API key از تنظیمات پلاگین $api_key = get_option('chat_ai_api_key'); if (empty($api_key)) { wp_send_json_error(array('ai_response' => 'کلید API معتبر نیست.')); } // درخواست به API ChatGPT (OpenAI) $ai_response = chat_ai_get_ai_response($user_message, $api_key); // ذخیره پیام و پاسخ در پایگاه داده $table_name = $wpdb->prefix . 'chat_messages'; $wpdb->insert($table_name, array( 'user_message' => $user_message, 'ai_response' => $ai_response, )); // ارسال پاسخ به فرانتاند wp_send_json_success(array('ai_response' => $ai_response)); } add_action('wp_ajax_chat_ai_send_message', 'chat_ai_send_message'); // ارسال درخواست به ChatGPT API function chat_ai_get_ai_response($message, $api_key) { $url = 'https://api.openai.com/v1/completions'; $data = array( 'model' => 'gpt-4', 'prompt' => $message, 'max_tokens' => 150, 'temperature' => 0.7 ); $args = array( 'body' => json_encode($data), 'headers' => array( 'Content-Type' => 'application/json', 'Authorization' => 'Bearer ' . $api_key ), 'method' => 'POST', 'data_format' => 'body' ); $response = wp_remote_post($url, $args); $body = wp_remote_retrieve_body($response); $result = json_decode($body, true); return $result['choices'][0]['text'] ?? 'پاسخی یافت نشد.'; } گام پنجم: نمایش فرم چت در فرانتاند حالا باید کدی برای نمایش چت در صفحات سایت ایجاد کنیم. این کد باید از طریق شورتکد (shortcode) یا مستقیماً در تم قرار گیرد. برای اضافه کردن شورتکد برای فرم چت: // نمایش فرم چت در صفحات با استفاده از شورتکد function chat_ai_display_chat() { ob_start(); ?> <div id="chat-box"></div> <input type="text" id="user-message" placeholder="پیام خود را وارد کنید..."> <button id="chat-send-btn">ارسال</button> <?php return ob_get_clean(); } add_shortcode('chat_ai', 'chat_ai_display_chat'); گام ششم: نصب پلاگین تمامی فایلهای مربوطه را در پوشه پلاگین chat-ai/ قرار دهید. پوشه پلاگین را به /wp-content/plugins/ منتقل کنید. از بخش پلاگین ها نصب کنید. پلاگین ها در پنل مدیریت وردپرس، پلاگین را فعال کنید. 4. پس از فعالسازی، به صفحه تنظیمات پلاگین بروید و کلید API ChatGPT خود را وارد کنید. 5. از شورتکد [chat_ai] برای نمایش فرم چت در هر صفحه یا پست استفاده کنید. نتیجه نهایی: حالا شما یک پلاگین وردپرس دارید که به شما این امکان را میدهد تا از طریق یک فرم چت با ChatGPT ارتباط برقرار کنید، پیامها را در پایگاه داده ذخیره کنید و همچنین یک بخش تنظیمات برای وارد کردن API Key ایجاد کنید. اگر به مشکلی برخوردید یا سوالی داشتید، خوشحال میشوم کمک کنم!
ادامه مطلبسه شنبه, 13 آذر 1403
آموزش برنامه نویسی وردپرس
برنامه نویسی و طراحی یک پلاگین چت با هوش مصنوعی در وردپرس
دوشنبه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
تشخیص صفحه اول در وردپرس
گاهی برای شما لازم می شود تا کد خاصی را فقط در صفحه خانه وردپرس لود کنید برای تشخیص صفحه اصلی از کد زیر استفاده کنید: if ( is_front_page() ) : get_header( 'front' ); else : get_header(); endif; is_front_page() /* is_front_page() returns true if the user is on the page or page of posts that is set to the front page on Settings->Reading->Your homepage displays. */ is_home() /* is_home() return true when on the posts list page, This is usually the page that shows the latest 10 posts. */ is_home()
ادامه مطلبدوشنبه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
تشخیص وجود تصویر شاخص کوچک در وردپرس
برای تشخیص وجود تصویر شاخص کوچک در وردپرس از روش زیر استفاده کنید: <?php if ( has_post_thumbnail() ) { the_post_thumbnail(); } else { ?> <img src="/<?php bloginfo('template_directory'); ?>/images/default-image.jpg" alt="<?php the_title(); ?>" /> <?php } ?>
ادامه مطلبدوشنبه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
تشخیص مدیر بودن یک کاربر در وردپرس
برای تشخیص مدیر بودن یک کاربر در وردپرس باید از روش زیر استفاده کنید: <?php if(current_user_can('editor')) { ?> <!-- Stuff here for editors --> <?php } ?> <?php if(current_user_can('administrator')) { ?> <!-- Stuff here for administrators --> <?php } ?>
ادامه مطلبدوشنبه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
بدست آورد کلاس html در وردپرس
برای این کار می توانید کد زیر را در هدر سایت بگذارید: <body <?php body_class(); ?>> <!-- This adds the wordpress body classes markup that you can use for CSS configuration -->
ادامه مطلبدوشنبه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
چگونه فایل functions.php را بشکنیم و سبک تر کنیم در وردپرس
شما می توانید یک پوشه درست کرده و هر بخش از فایل functions.php را درون آن قرار دهید و در فایل functions.php آنها را صدا بزنید: <?php /* * functions.php * */ require_once( __DIR__ . '/includes/null-meta-compare.php'); require_once( __DIR__ . '/includes/older-examples.php'); require_once( __DIR__ . '/includes/wp-admin-menu-classes.php'); require_once( __DIR__ . '/includes/admin-menu-function-examples.php'); // WA: Adding a Taxonomy Filter to Admin List for a Custom Post Type? // http://wordpress.stackexchange.com/questions/578/ require_once( __DIR__ . '/includes/cpt-filtering-in-admin.php'); require_once( __DIR__ . '/includes/category-fields.php'); require_once( __DIR__ . '/includes/post-list-shortcode.php'); require_once( __DIR__ . '/includes/car-type-urls.php'); require_once( __DIR__ . '/includes/buffer-all.php'); require_once( __DIR__ . '/includes/get-page-selector.php'); // http://wordpress.stackexchange.com/questions/907/ require_once( __DIR__ . '/includes/top-5-posts-per-category.php'); // http://wordpress.stackexchange.com/questions/951/ require_once( __DIR__ . '/includes/alternate-category-metabox.php'); // http://lists.automattic.com/pipermail/wp-hackers/2010-August/034384.html require_once( __DIR__ . '/includes/remove-status.php'); // http://wordpress.stackexchange.com/questions/1027/removing-the-your-backup-folder-might-be-visible-to-the-public-message-generate require_once( __DIR__ . '/includes/301-redirects.php');
ادامه مطلبدوشنبه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
نحوه نمایش مسیر سایت در تم یا قالب به صورت برنامه ریزی شده در وردپرس
برای نمایش مسیر سایت در تم یا قالب به صورت برنامه ریزی شده در وردپرس از روش زیر استفاده کنید: add_filter( 'the_content', function( $content ) { if( function_exists( 'rank_math_get_breadcrumbs' ) ) { $content = rank_math_get_breadcrumbs() . $content; } return $content; });
ادامه مطلبدوشنبه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
بدست آوردن تاریخ امروز در وردپرس
برای بدست آوردن تاریخ امروز در وردپرس از روش زیر استفاده کنید: <?php echo get_the_date( 'l F j, Y' ); ?>
ادامه مطلبدوشنبه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
بدست آوردن نام کاربری یک کاربر در وردپرس
برای بدست آوردن نام کاربری یک کاربر در وردپرس از روش زیر استفاده کنید: $current_user = wp_get_current_user(); echo($current_user->user_login); $current_user_id = get_current_user_id(); $current_user = wp_get_current_user();
ادامه مطلبدوشنبه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
بدست آوردن ادرس اواتار یک کاربر در وردپرس
برای پیدا کردن مسیر تصویر اواتار یک کارب می توانید از کد زیر استفاده کنید: get_avatar_url($user_id);
ادامه مطلبدوشنبه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
بدست اوردن اطلاعات یک کاربر از روی ایمیل در وردپرس
شما می توانید از روی ایمیل یک کاربر اطلاعات او را بدست آوردید برای این کار می توانید از روش زیر اقدام کنید: global $current_user; get_currentuserinfo(); echo $current_user->user_email; $user_obj = get_user_by('id', 1); $user = get_user_by( 'email', 'user@example.com' ); $userId = $user->ID;
ادامه مطلبدوشنبه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
بدست آوردن اطلاعات یک کاربر در وردپرس براساس شناسه کاربری
برای بدست آوردن اطلاعات یک کاربر در وردپرس براساس شناسه کاربری از روش زیر می توانید استفاده کنید: <?php $user_id = get_current_user_id(); ?> $current_user = wp_get_current_user(); echo($current_user->user_login); echo get_the_ID(); function get_the_ID() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid $post = get_post(); return ! empty( $post ) ? $post->ID : false; } $user_obj = get_user_by('id', 1); $user = get_user_by( 'email', 'user@example.com' ); $userId = $user->ID;
ادامه مطلبدوشنبه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
افزودن آدرس پوشه قالب به یک تصویر
برای اینکه یک تصویر در قالب نمایش داده شود باید ادرس پوشه قالب قبل از ادرس تصویر صدا زده شود: // Get template directory example: <img src="/<?php echo get_template_directory_uri(); ?>/images/logo.png" /> // If you use child theme you will have to use another function: <img src="/<?php echo get_stylesheet_directory_uri(); ?>/images/logo.png" /> <img src="/<?php echo get_template_directory_uri(); ?>/images/logo.png"> include( get_template_directory_uri() . '/includes/my_file.php' ); add_action('wp_enqueue_scripts', 'wpdocs_scripts_method'); /* * Enqueue a script with the correct path. */ function wpdocs_scripts_method() { wp_enqueue_script( 'custom_script', get_template_directory_uri() . '/js/custom_script.js', array('jquery') ); }
ادامه مطلبدوشنبه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
وردپرس پیوند ثابت کوتاه را دریافت کنید
برای بدست اوردن لینک کوتاه یک مطلب از دستور های زیر استفاده کنید: // Get post permalink (you can use it inside a wp_query loop) <?php the_permalink(); ?> // or <?php $link = get_the_permalink(); ?> // outside the loop: <?php echo get_permalink( $post->ID ); ?> // Get shortlink (short permalink) <?php echo wp_get_shortlink(); ?>
ادامه مطلبدوشنبه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
وردپرس آدرس اصلی را دریافت کنید
برای بدست اوردن ادرس اصلی سایت در وردپرس از این کد php استفاده کنید. <?php echo get_site_url(); ?> کاربرد این دستور در صدا زدن لینک هایی است که به صفحه اصلی سایت مربوط می شود مثل لینک بر روی تصویر لوگو
ادامه مطلب