- آموزش زمان بندی رویدادها با WP Cron در وردپرس
- مقدمه ای بر توسعه افزونه
- افزونه چیست ؟
- مبانی افزونه
- نیازمندی های هدر
- درج یک مجوز نرم افزار در افزونه
- قلاب های فعال و غیر فعال سازی
- متدهای حذف در سایت های وردپرس
- امنیت افزونه
- بررسی قابلیت های کاربر
- اعتبار سنجی داده ها
- امنیت ورودی
- امنیت خروجی
- Nonce ها
- قلاب ها
- اکشن ها (Actions)
- فیلترها (Filters)
- ایجاد قلاب های سفارشی
- تاپیک های پیشرفته
- منوهای مدیریت
- منوهای سطح بالا
- زیر منوها
- کدهای کوتاه
- مبانی کدهای کوتاه
- کدهای کوتاه جفتی
- کدهای کوتاه پارامتردار
- تنظیمات
- API های تنظیمات
- ایجاد و استفاده از گزینه ها
- گزینه های تکی و آرایه ای
- صفحه تنظیمات سفارشی
- فراداده (Metadata)
- ایجاد و مدیریت فراداده نوشته
- ایجاد متاباکس های سفارشی
- دریافت فراداده
- انواع نوشته سفارشی
- ایجاد پست تایپ سفارشی
- کار با داده های پست تایپ ها
- طبقه بندی یا Taxonomy در وردپرس
- ایجاد و کار با طبقه بندی های سفارشی
- کار با متادیتا (Metadata) کاربران در وردپرس
- ایجاد و مدیریت کاربران در وردپرس
- نقش ها و قابلیت های کاربران در وردپرس
- آموزش استفاده از سرویس HTTP API در وردپرس
- آموزش استفاده از ایجکس (Ajax) در وردپرس
- آموزش استفاده از Transients برای کش کردن در وردپرس
- آموزش WP-Cron وردپرس
- آموزش استفاده از جیکوئری (jQuery) در وردپرس
- آموزش کار با PHP سمت سرور و Enqueue در وردپرس
- قلاب کردن WP-Cron وردپرس به سیستم زمان بندی سرور
مثال ساده : اضافه کردن یک منوی سطح بالا
برای منوهای سطح بالا و اگر می خواهید یک منوی جدید (یا یک صفحه جدید) به قسمت مدیریت وردپرس اضافه کنید ، می توانید از تابع add_menu_page() استفاده کنید .
این مثال یک منو و یک صفحه را به قسمت مدیریت وردپرس اضافه می کند .
add_menu_page (
$page_title,
$menu_title,
$capability,
$menu_slug,
$function,
$icon_url,
$position
);
برای این مثال از یک افزونه به نام My Toolset استفاده شده است .
گام اول : ایجاد تابع تولیدکننده یک منو
function add_my_custom_menu() {
//add an item to the menu
add_menu_page (
'My Page',
'My Title',
'manage_options',
'my-page',
'my_admin_page_function',
plugin_dir_url( __FILE__ ).'icons/my_icon.png',
'۲۳.۵۶'
);
}
توضیح تابع :
$page_title = ‘My Page’
عنوان صفحه
$menu_title = ‘My Title’
متن نمایشی منو
$capability = ‘manage_options’
تعیین قابلیت دسترسی کاربر . قابلیت ها از ویژگی های امنیتی وردپرس هستند . در اینجا تنها کاربرانی که دارای قابلیت manage_optionsهستند ، قادر به مشاهده این منو هستند .
$menu_slug = ‘my-page’
نام یکتایی که توسط وردپرس برای مراجعه به این صفحه مورد استفاده قرار می گیرد . چنانچه از این کد در داخل یک کلاس استفاده شود باید به صورت یک آرایه و به شکل array( $this, ‘functionname’ ) مورد استفاده قرار گیرد .
نکته : شما همچنین می توانید یک فایل را که در ‘myplugin/myplugin-admin.php’ باشد را فراخوانی کنید .
$function = ‘my_admin_page_function’
نام تابعی که برای ایجاد منو فراخوانی می شود .
نکته : اگر نامک (slug) به یک نام فایل رجوع کند ، تابع فراخوان می تواند خالی باشد .
$icon_url = plugin_dir_url( __FILE__ ).’icons/my_icon.png’
آیکنی که در کنار نام منو نمایش داده می شود
$position = ‘۲۳.۵۶’
این مورد موقعیت منو در سلسله مراتب منو ها را مشخص می کند . چنانچه این مورد را تنظیم نکنید ، منوی شما در پایین ساختار منو نمایش داده می شود .
گام دوم : ثبت تابع ایجاد کننده منو
add_action( 'admin_menu', 'add_my_custom_menu' );
شما می توانید با استفاده از قلاب اکشن admin_menu ، تابع خود را ثبت کنید :
تکه کد مربوط به ثبت تابع را می توان قبل یا بعد از تابع کامل (تابع ایجاد کننده منو) قرار داد .
گام سوم (الف): ایجاد یک صفحه توسط یک تابع
تابع بالا نشان می دهد که یک تابع فراخوان به نام my_admin_page_function وجود دارد . بنابراین ما آن تابع را با محتوای شبیه به کد زیر ایجاد می کنیم :
function my_admin_page_function() {
?>
<div class="wrap">
<h2>My Plugin Options</h2>
your form and page content goes here
</div>
<?php
}
نکته : همیشه در صفحاتی که می سازید یک عنصر div با کلاس wrap و یک عنصر H2 در بالای آنها قرار دهید .
گام سوم (ب) : ایجاد یک صفحه توسط یک نام فایل
اگر تابع به جای فراخوانی نامک (slug) یک فایل را فراخوانی کند ، تابع فراخوان می تواند مانند زیر خالی باشد :
function add_my_custom_menu() {
//add an item to the menu
add_menu_page (
'My Page',
'My Title',
'manage_options',
'my-plugin/my-plugin-form.php',
'',
plugin_dir_url( __FILE__ ).'icons/my_icon.png',
'۲۳.۵۶'
);
}
سپس شما می توانید آن فایل را در مسیر افزونه و به شکل زیر ، ایجاد کنید :
<div class="wrap">
<h2>My Plugin Options</h2>
your form and page content goes here
</div>






