ایجاد صفحه تنظیمات در پنل وردپرس | قسمت اول

آموزش ساخت افزونه وردپرس

در جلسه سوم آموزش ساخت افزونه وردپرس ٬ به صورت کاملا عملی ساخت افزونه وردپرس را پیش میبریم و به شما نحوه ایجاد افزونه ای را آموزش میدهم که توسط آن بتوانید در پنل مدیریت وردپرس یک صفحه تنظیمات اختصاصی ایجاد نمایید.

ایجاد صفحه تنظیمات در پنل وردپرس

با توجه به توضیحاتی که در جلسه قبل داده شد به مسیر  wp-content/plugins/  بروید و یک پوشه به نام iwp-settings-page ایجاد نمایید سپس وارد همان پوشه شوید و یک سند PHP به نام settings.php ایجاد نمایید و کدهای هدر پلاگین زیر را داخل آن قرار دهید :

<?php
/*
Plugin Name: Iwordpress Settings Page
Plugin URI: https://iwordpress.ir/
Description: Basic Settings Page
Version: 1.0.0
Author: Mahdi KHaksar
Author URI: https://iwordpress.ir/
License: GPL2
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: iwp
Domain Path: /languages/
*/

حالا به پنل وردپرس ٬‌سپس به بخش افزونه ها > افزونه های نصب شده مراجعه نمایید و ببینید افزونه ای تحت عنوان Iwordpress Settings Page به لیست افزونه ها اضافه شده است یا خیر ٬ در صورتی که افزونه وجود داشته باشد شما به خوبی توانستید که اولین افزونه خود را به لیست افزونه های وردپرس در پیشخوان وردپرس اضافه نمایید.

حالا در این مثال عملی میخواهیم یک صفحه تنظیمات اختصاصی را در پیشخوان وردپرس اضافه نماییم و یکسری اطلاعات شامل شماره موبایل ٬‌شماره تلفن ٬‌آدرس و شبکه های اجتماعی را تحت یک فرم نمایش و در دیتابیس وردپرس ذخیره نماییم.

افزونه را از لیست افزونه های وردپرس فعال نمایید سپس قدم بعدی اضافه نمودن یک منو اصلی به لیست منو های پیشخوان وردپرس است ٬ که برای ایجاد منو در پیشخوان وردپرس باید از تابع add_menu_page() استفاده نمایید.

در ادامه کدهای فوق باید از تابع add_menu_page() به شکل زیر استفاده نمایید تا یک منو اصلی به لیست منوهای وردپرس اضافه گردد :

<?php
/*
Plugin Name: Iwordpress Settings Page
Plugin URI: https://iwordpress.ir/
Description: Basic Settings Page
Version: 1.0.0
Author: Mahdi KHaksar
Author URI: https://iwordpress.ir/
License: GPL2
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: iwp
Domain Path: /languages/
*/

/**
 * Create a settings menu page
 */
function iwp_settings_menu_page(){
    add_menu_page( 
        __( 'Settings', 'iwp' ),
         __( 'Settings', 'iwp' ),
        'manage_options',
        'iwp_settings',
        'iwp_settings_page_content',
        'dashicons-welcome-widgets-menus',
        ۶
    ); 
}
add_action( 'admin_menu', 'iwp_settings_menu_page' );
 
/**
 * Display a settings page
 */
function iwp_settings_page_content(){
    
}

همانطور که مشاهده مینمایید ما دو تابع iwp_settings_menu_page() و iwp_settings_page_content() را برای ایجاد منو و نمایش محتویات صفحه تنظیمات نوشتیم که حالا به بررسی دو تابع گفته شده میپردازیم :

توضیحات تابع iwp_settings_menu_page برای ایجاد منو در پنل

function iwp_settings_menu_page(){
    add_menu_page( 
        __( 'Settings', 'iwp' ),
         __( 'IWP Settings', 'iwp' ),
        'manage_options',
        'iwp_settings',
        'iwp_settings_page_content',
        'dashicons-welcome-widgets-menus',
        ۶
    ); 
}
add_action( 'admin_menu', 'iwp_settings_menu_page' );

در وردپرس تابعی وجود دارد به اسم add_menu_page() ٬ توسط این تابع شما میتوانید یک منو اصلی به پیشخوان وردپرس اضافه نمایید ٬ ما هم توسط این تابع یک منو و یک صفحه برای صفحه تنظیمات این افزونه استفاده نمودیم :

function iwp_settings_menu_page(){
    add_menu_page( 
        __( 'Settings', 'iwp' ),
         __( 'IWP Settings', 'iwp' ),
        'manage_options',
        'iwp_settings',
        'iwp_settings_page_content',
        'dashicons-welcome-widgets-menus',
        ۶
    ); 
}

همانطور که در کدهای فوق مشاهده مینمایید ما در تابع iwp_settings_menu_page() یک منو توسط تابع add_menu_page() ایجاد نمودیم ٬ ساختار و پارامترهای تابع add_menu_page() به شرح زیر می باشد:

add_menu_page( string $page_title, string $menu_title, string $capability, string $menu_slug, callable $function = '', string $icon_url = '', int $position = null )

$page_title: عنوان صفحه توسط این پارامتر انجام میگردد.

$menu_title: عنوان منو توسط این پارامتر انجام میگردد.

$capability: سطح دسترسی کاربران به منو توسط این پارامتر انجام میگردد.

$menu_slug: آدرس صفحه یا Slug صفحه توسط این پارامتر انجام میگردد.

$function: تابعی که قرار هست محتویات در آن نوشته شود.

$icon_url: آدرس آیکون منو توسط این پارامتر تعیین میشود ٬ شما میتوانید از آیکون های خود وردپرس استفاده نمایید یا آیکون دلخواه خود را از پوشه پلاگین لود نمایید.

$position: عددیست که توسط آن جایگاه منو شما تعیین میگردد.

حالا یکبار کدها را مرور مینماییم :

/**
 * Create a settings menu page
 */
function iwp_settings_menu_page(){
    add_menu_page( 
        __( 'Settings', 'iwp' ),
         __( 'IWP Settings', 'iwp' ),
        'manage_options',
        'iwp_settings',
        'iwp_settings_page_content',
        'dashicons-welcome-widgets-menus',
        ۶
    ); 
}
add_action( 'admin_menu', 'iwp_settings_menu_page' );
 
/**
 * Display a settings page
 */
function iwp_settings_page_content(){
    
}

ما تابع iwp_settings_menu_page() را نوشتیم تا داخل آن به وسیله تابع add_menu_page() یک منو اصلی در پیشخوان وردپرس اضافه نماییم ٬ داخل تابع add_menu_page() پارامتر پنجم یعنی ‘iwp_settings_page_content’ نام تابعیست که قرار هست محتویات صفحه را به ما نمایش دهد.

جمع بندی

در این جلسه یادگرفتید که توسط تابع add_menu_page() یک منو دلخواه به پیشخوان وردپرس اضافه نمایید و در جلسه بعدی نوبت به این میرسد که شما صفحه خالی خود را با استفاده از تابع iwp_settings_page_content() پر نمایید.