پیشخوان وردپرس دارای یک منو از گزینه هاست که در سمت چپ صفحه نمایش داده شده و گزینه های برای مدیریت بخش های مختلف مثل نوشته ها، برگه ها ، رسانه ها و غیره دارد و با اضافه کردن افزونه ها، گزینه ها و گاهی زیر منوهایی به آن اضافه میشود .
در این آموزش قصد داریم تا روش اضافه کردن گزینه های جدید به این منو را آموزش دهیم.همچنین در این آموزش یک برگه مدیریتی به پیشخوان وردپرس اضافه خواهیم کرد که برای انجام تنظیماتی در وردپرس استفاده شود و از این تنظیمات در طراحی پوسته استفاده خواهیم کرد.
افزونه ای ایجاد خواهیم کرد که ضمن یک گزینه به منوی وردپرس اضافه کند و دستوراتی خواهیم نوشت که با کلیک روی آن گزینه صفحه پیشخوان وردپرس باز شود. در این صفحه مدیریت، تنظیمات نام و ایمیل کاربر ادمین را دریافت کرده و ذخیره خواهیم کرد. سپس این تنظیمات را در پوسته سایت استفاده کرده و نمایش خواهیم داد.
برای ایجاد افزونه ، در پوشه plugins از سایت زیر پوشه ی plugin1 را ایجاد کنید و فایل php را در داخل آن ایجاد کنید محتوای این فایل را بصورت زیر وارد کنید، تمام دستورات در انتهای این فایل قرار خواهند گرفت :
/*
Plugin Name : plugin1
Plugin URI : http://blog.webaca.ir
Description : A new plugin for you
Version :1.0
*/
با دستور زیر اقدام my_init_menu را به تابع plugins_loaded وردپرس قلاب کنید:
add_action('plugins_loaded' , 'my_init_menu');
تابع my_init_menu را بصورت زیر پیاده سازی کنید:
{
add_action( ‘admin_menu’, ‘my_admin_menu’ );
}
تا تابع my_admin_menu را به تابع admin_menu از وردپرس قلاب کند.
در ادامه تابع my_admin_menu را بصورت زیر پیاده سازی کنید:
function my_admin_menu() {
add_menu_page( 'page1','page item1','read','my_page1','page1_func' );
}
این تابع یک گزینه به منوی پیشخوان وردپرس اضافه می کند. تابع وردپرسی add_menu_page دارای پارامترهای زیر است به ترتیب:
- عنوان صفحه
- عنوان گزینه
- قابلیت دسترسی به گزینه
- نام کوتاه برای گزینه – اسلاگ
- نام تابعی برای نمایش محتوای صفحه و ذخیره کردن تغییرات ایجاد می شود
در ادامه باید تابع page1_func را پیاده سازی کنیم – این تابع در ابتدا دستوراتی برای ذخیره کردن تنظیمات وارد شده دارد و در ادامه تگهای html برای طراحی صفحه تنظیمات
function page1_func() {
//Save the field values
if ( isset( $_POST['form_submitted'] ) && $_POST['form_submitted'] == 'submitted' ) {
foreach ( $_POST as $key => $value ) {
if ( get_option( $key ) != $value ) {
update_option( $key, $value );
} else {
add_option( $key, $value, '', 'no' );
}}
}?>
<h2>my page</h2>
<?php if ( isset( $_POST['form_submitted'] ) && $_POST['form_submitted'] == 'submitted' ) { ?>
<div><p>تنظیمات با موفقیت ثبت شد</p></div>
<?php } ?>
<h3>my info </h3>
<p>
<form method="post" action="" id="factor_settings">
<input type="hidden" name="form_submitted" value="submitted">
name :
<input type="text" name="my_name" value="<?php echo stripslashes( get_option( 'my_name' ) ); ?>" />
<input type="submit" name="Submit" value=" save changes" />
</form>
</p><?php
}
در تابع page1_func قطع کد زیر بررسی می کند تا اگر فرم تنظیمات ارسال شد محتوای آنرا ذخیره کند.
//Save the field values
if ( isset( $_POST['form_submitted'] ) && $_POST['form_submitted'] == 'submitted' ) {
foreach ( $_POST as $key => $value ) {
if ( get_option( $key ) != $value ) {
update_option( $key, $value );
} else {
add_option( $key, $value, '', 'no' );
}}
}
در ادامه فرمی طراحی شده و دارای ورودی های زیر است:
- یک ورودی مخفی به نام form_submitted برای تشخیص فرستادن فرم
- یک ورودی my_name برای دریافت نام
- یک دکمه برای ثبت تغییرات
بعد از طراحی افزونه جدید می توانید آنرا به افزونه های وردپرس اضافه کنید تا گزینه جدید و تنظیمات جدید شما در محیط وردپرس بصورت زیر دیده شود:
برای نمایش تنظیمات فوق در پوسته وردپرس می توانید از تابع get_option استفاده کرده و در هر قسمت از آن نام یا پست الکترونیکی ثبت شده را نمایش داد:
دریافت فایل plugin1.zip حاوی افزونه آموزش داده شده