آموزش کدهای وردپرس, افزونه وردپرس

آموزش ساخت افزونه وردپرس اختصاصی به صورت گام به گام

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

در این آموزش ساخت افزونه وردپرس ، می آموزید که چگونه به صورت کامل یک افزونه وردپرس را ایجاد کنید. مهمترین دلیل ساخت افزونه این است که به شما امکان می دهد کدهای خود را از کد های اصلی وردپرس جدا کنید. در این حالت اگر مشکلی در افزونه پیش آمد با غیر فعال کردن آن سایت شما به درستی کار خواهد کرد.

تغییر کد هسته وردپرس می تواند فاجعه بار باشد. با ویژگی های پیشرفته افزونه ارائه شده توسط وردپرس، شما حتی قادر به طراحی پلاگین هایی هستید که نحوه عملکرد توابع هسته را تغییر می دهد بدون اینکه در واقع کد آنها تغییر کند.

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

برای طراحی افزونه به چه چیزهایی نیاز داریم؟

برای انجام مراحل در این آموزش ساخت افزونه وردپرس ، به ویرایشگر متنی مانند Notepad++ یا NetBeans نیاز دارید. همچنین باید به صورت مستقیم یا از طریق FTP به فایل های نصب وردپرس خود در هاست دسترسی داشته باشید

این آموزش ایجاد افزونه وردپرس برای افرادی در نظر گرفته شده است که از قبل دانش پایه ای در مورد PHP دارند.

گرفتن بک آپ از سایت وردپرس خود را فراموش نکنید تا در صورت هر گونه مشکلی سایت را به راحتی به نسخه قبل برگردانید.

افزونه های وردپرس چیست؟

افزونه وردپرس مجموعه ای از کدهای مستقل است که عملکرد وردپرس را تقویت و گسترش می دهد.

با استفاده از هر ترکیبی از PHP ، HTML ، CSS ، JavaScript / jQuery یا هر زبان برنامه نویسی وب دیگر، یک افزونه می تواند ویژگی های جدیدی را به هر قسمت از وب سایت شما، از جمله پیشخوان مدیریت اضافه کند. می توانید رفتارهای پیش فرض وردپرس را تغییر دهید یا رفتار ناخواسته ای را حذف کنید. افزونه ها به شما امکان می دهند تا به راحتی وردپرس را متناسب با نیاز خود شخصی سازی کنید.

از آنجا که افزونه های وردپرس مستقل هستند، هیچ کدی از هسته اصلی وردپرس را تغییر نمی دهند. همچنین می توان آنها را به راحتی برای سایت های دیگر خود استفاده کرد.

 یک روش دیگر جایگزین برای ایجاد تغییرات در وردپرس و نوشتن توابع جدید در فایل وردپرس functions.php موجود در پوشه /wp-includes/ یا فایل functions.php قالب وردپرس شما است، اما این با مشکلات احتمالی همراه است!

وردپرس و قالب های آن به صورت منظم بروزرسانی می شوند و اینگونه تمام تغییرات شما از بین می رود و دوباره باید کد ها را بنویسید، مگر اینکه از چایلد تم استفاده کنید که کد های شما باقی می ماند. همچنین اگر شما در فایل functions.php تمام کارکردها را می نویسید و یکی از آنها با خطا مواجه شود، و نتوانید آن را حل کنید، مجبور می شوید که تمام تغییراتی که ایجاد کرده اید را حذف کنید. در این صورت که عملکردهای شما از فایل حذف می شود، وب سایت شما ممکن است با خطاهای PHP که در آن سعی می کند توابع گمشده را فراخواند، پوشانده شود.

افزونه ها هنگام نصب بروزرسانی های وردپرس هرگز به صورت خودکار رونویسی یا حذف نمی شوند. اگر افزونه شما دارای خطای کد نویسی است، به راحتی می توانید آن را در پیشخوان سایت خود غیرفعال کنید. و همچنین اگر افزونه خطای جدید داشته باشد، وردپرس به صورت خودکار آن را غیرفعال می کند تا سایت شما بدون هیچ مشکلی به کار خود ادامه دهد.

Hooks چیست؟

افزونه های وردپرس با استفاده از هوک (قلاب) با کد اصلی ارتباط برقرار می کنند. 2 نوع هوک مختلف وجود دارد:

1. هوک اکشن (برای اضافه کردن و حذف توابع)

2. هوک فیلتر (برای تغییر داده هایی که توسط توابع تولید می شوند)

هوک اکشن

زمانی که به هر صفحه از وب سایت خود مراجعه می کنید، مجموعه ای از توابع PHP (اقدامات نامگذاری شده) در نقاط مختلف فراخوانی می شوند و به هوک های اکشن وصل می شوند. با استفاده از هوک اکشن ارائه شده توسط وردپرس، می توانید کارکردهای خود را به لیست عملکردهایی که هنگام فراخوانی هر هوک اکشن اجرا می شود اضافه کنید، همچنین می توانید عملکردهای قبلی را از هر هوک اکشن حذف کنید. قلاب های اکشن وقتی فراخوانی می شوند دیکته می کنند. قبل از تگ بستن </head> هر صفحه، قلاب عمل wp_head() نامیده می شود و عملکردهایی که به wp_head() قلاب شده اند اجرا می شود.

قلاب های اکشن متنی (contextual) هستند – برخی از آنها در هر صفحه وب سایت شما فراخوانی می شوند، برخی دیگر فقط هنگام مشاهده پنل مدیریت و … فراخوانی می شوند. لیست کاملی از قلاب های اکشن و Context را می توانید در صفحه WordPress Plugin API/Action Reference  پیدا کنید.

افزودن توابع به هوک اکشن با استفاده از add_action()

برای اضافه کردن یک عملکرد به هر هوک اکشن، افزونه شما باید عملکرد وردپرس با نام add_action() را با حداقل دو پارامتر فراخوانی کند.

// Hook to the 'init' action, which is called after WordPress is finished loading the core code
add_action( 'init', 'add_Cookie' );
 
// Set a cookie with the current time of day
function add_Cookie() {
  setcookie("last_visit_time", date("r"), time()+60*60*24*30, "/");
}
  • اولین پارامتر مورد نیاز نام هوک اکشن است که می خواهید به آن وصل شوید
  • دومین پارامتر مورد نیاز نام تابعی است که می خواهید آن را اجرا کنید
  • پارامتر سوم (اختیاری) اولویت عملکردی است که می خواهید اجرا کنید. می توانید هر تعداد کارکرد مختلف را به هوک اکشن مشابه وصل کنید و به هر روشی که دوست دارید ترتیب دهید. اولویت پیش فرض 10 است، عملکرد شخصی خود را بعد از عملکردهای داخلی وردپرس قرار دهید. یک تابع با اولویت 11 اجرا می شود بعد، و غیره.
  • پارامتر چهارم (اختیاری) تعداد آرگومان ها است، این بدان معنی است که چند پارامتر عملکرد سفارشی شما قادر به گرفتن است. پیش فرض 1 است.

مثال کد افزونه برای نمایش متن فوتر از هر صفحه

این افزونه هوک اکشن wp_footer() را قلاب می کند، که درست قبل از بسته شدن برچسب </body> هر صفحه خوانده می شود و یک عملکرد جدید به نام mfp_Add_Text() اضافه می کند. از آنجا که این بخشی از افزونه است و قالب نیست، اگر قالب کاملاً متفاوتی را فعال کنید، این به کار خود ادامه خواهد داد.

شما می توانید کد زیر را به عنوان یک فایل PHP ذخیره کنید، آن را در پوشه wp-content/plugins/ بارگذاری کرده و سپس در پیشخوان وردپرس آن از قسمت افزونه ها فعال کنید تا تغییر را مشاهده کنید. ( اسم افزونه Add Text To Footer می باشد)

<?php
/*
Plugin Name: Add Text To Footer
*/
 
// Hook the 'wp_footer' action hook, add the function named 'mfp_Add_Text' to it
add_action("wp_footer", "mfp_Add_Text");
 
// Define 'mfp_Add_Text'
function mfp_Add_Text()
{
  echo "<p style='color: black;'>بعد از بارگیری پاورقی متن من اضافه می شود!</p>";
}

نتیجه نهایی:

مثال کد افزونه برای نمایش متن فوتر از هر صفحه

حذف توابع از هوک اکشن با استفاده از remove_action()

برای حذف یک عمل از هوک اکشن، باید یک تابع جدید بنویسید که remove_action () را فراخوانی می کند، سپس با استفاده از add_action() با عملکردی که نوشتید تماس بگیرید. مثال زیر این موضوع را واضح تر می کند.

شما باید حداقل دو بخش از اطلاعات را به عنوان پارامتر remove_action() بدهید.

// Hook the 'init' action, which is called after WordPress is finished loading the core code, add the function 'remove_My_Meta_Tags'
add_action( 'init', 'remove_My_Meta_Tags' );

// Remove the 'add_My_Meta_Tags' function from the wp_head action hook
function remove_My_Meta_Tags()
{
remove_action( 'wp_head', 'add_My_Meta_Tags');
}
  • اولین پارامتر مورد نیاز نام هوک اکشن است که تابع به آن قلاب شده است
  • دومین پارامتر مورد نیاز نام عملکردی است که می خواهید حذف کنید
  • پارامتر سوم (اختیاری) اولویت عملکرد اصلی است. این پارامتر باید با اولویتی که در ابتدا با اضافه کردن عمل به هوک اکشن تعریف شده بود، یکسان باشد. اگر اولویت را در عملکرد سفارشی خود تعیین نکردید، این پارامتر را هم وارد نکنید.

مثال: تصور کنید که نمی خواهید متنی که در مثال قبلی به پاورقی اضافه کردیم، در روز دوشنبه ظاهر شود. یک روش برای انجام این کار، استفاده از تابع PHP تاریخ برای دریافت روز جاری است. پس از آن از جمله شرطی برای آزمایش اینکه آیا دوشنبه است یا خیر استفاده می کنیم و اگر دوشنبه است remove_action() فراخوانی شود. شما این تابع را با استفاده از add_action() وصل می کنید و قلاب هر هوک اکشن را که قبل از هوک اکشنی که می خواهید روی آن تأثیر بگذارد، قلاب می کنید. اگر در این مثال سعی کنید هوک اکشن را که بعد از wp_footer رخ می دهد قلاب کنید، عمل همانطور که قبلاً اجرا شده است از قلاب حذف نمی شود.

<?php

// Hook the 'wp_footer' action, run the function named 'mfp_Add_Text()'
add_action("wp_footer", "mfp_Add_Text");

// Hook the 'wp_head' action, run the function named 'mfp_Remove_Text()'
add_action("wp_head", "mfp_Remove_Text");

// Define the function named 'mfp_Add_Text('), which just echoes simple text
function mfp_Add_Text()
{
echo "<p style='color: #FFF;'>بعد از بارگیری پاورقی متن من اضافه می شود!</p>";
}

// Define the function named 'mfp_Remove_Text()' to remove our previous function from the 'wp_footer' action
function mfp_Remove_Text()
{
if (date("l") === "Monday") {
// Target the 'wp_footer' action, remove the 'mfp_Add_Text' function from it
remove_action("wp_footer", "mfp_Add_Text");
}
}

فیلترها و هوک فیلتر

یک عملکرد فیلتر به شما امکان می دهد تا داده های حاصل را که توسط توابع موجود برگردانده شده اصلاح کنید و باید به یکی از هوک های فیلتر وصل شود. لیست کاملی از هوک فیلتر و Context را می توانید در صفحه WordPress Plugin API/Filter Reference پیدا کنید.

افزودن فیلترها با استفاده از add_filter()

برای اضافه کردن یک تابع فیلتر به هر هوک فیلتر، افزونه شما باید عملکرد وردپرس با نام add_filter() را با حداقل دو پارامتر فراخوانی کند.

// Hook the 'the_content' filter hook (content of any post), run the function named 'mfp_Fix_Text_Spacing'
add_filter("the_content", "mfp_Fix_Text_Spacing");

// Automatically correct double spaces from any post
function mfp_Fix_Text_Spacing($the_Post)
{
$the_New_Post = str_replace(" ", " ", $the_Post);

return $the_New_Post;
}
  • اولین پارامتر مورد نیاز نام هوک فیلتر است که می خواهید قلاب کنید
  • دومین پارامتر مورد نیاز نام تابع فیلتر است که می خواهید اجرا کنید
  • پارامتر سوم (اختیاری) اولویت عملکردی است که می خواهید اجرا کنید. می توانید هر تعداد کارکرد فیلتر مختلف را به هوک فیلتر وصل کنید. اولویت پیش فرض 10 است، بعد از هر کارکرد داخلی ، عملکرد سفارشی خود را قرار می دهید. یک تابع با اولویت 11 اجرا می شود بعد، و غیره.
  • پارامتر چهارم (اختیاری) تعداد آرگومان ها است، بدین معنی که چند پارامتر عملکرد فیلتر دلخواه شما قادر به گرفتن است. پیش فرض 1 است.

مثال افزونه ای برای تغییر گزیده ای از یک پست

وردپرس تابعی دارد که گزیده ای به نام get_the_excerpt () را از مطلبی بازیابی می کند، که آن نیز هوک فیلتر است. این جایی است که فیلتر اعمال می شود و گزیده ای قبل از نمایش تغییر می یابد. این افزونه یک تابع فیلتر را تعریف می کند که گزیده را به عنوان تنها پارامتر ورودی آن می برد، مقداری متن را قبل از آن اضافه می کند، و هر بار که get_the_excerpt() فراخوانی می شود مقدار جدید را برمی گرداند. از آنجا که مقدار بازگشتی از تابع get_the_excerpt() متن گزیده ای است، به طور خودکار هنگام استفاده از add_filter() به عنوان پارامتر توابع $old_Excerpt وارد می شود. تابعی که تعریف می کنید باید مقدار جدید را برگرداند.

<?php
/*
Plugin Name: Add Excerpt 
*/

// Hook the get_the_excerpt filter hook, run the function named mfp_Add_Text_To_Excerpt
add_filter("get_the_excerpt", "mfp_Add_Text_To_Excerpt");

// Take the excerpt, add some text before it, and return the new excerpt
function mfp_Add_Text_To_Excerpt($old_Excerpt)
{
$new_Excerpt = "<b>Excerpt: </b>" . $old_Excerpt;
return $new_Excerpt;
}

نتیجه نهایی:

مثال افزونه ای برای تغییر گزیده ای از یک پست

حذف فیلتر بسیار ساده تر از حذف یک اکشن است زیرا می توانید بدون تعیین یک عملکرد جدید، با عملکرد remove_filter() تماس بگیرید. برای این مثال، ما یک بار دیگر یک شرط بسیار ساده اضافه خواهیم کرد، که اگر روز جاری پنجشنبه باشد متن حذف شود.

// Hook the get_the_excerpt filter hook, run the function named mfp_Add_Text_To_Excerpt
add_filter("get_the_excerpt", "mfp_Add_Text_To_Excerpt");

// If today is a Thursday, remove the filter from the_excerpt()
if (date("l") === "Thursday") {
  remove_filter("get_the_excerpt", "mfp_Add_Text_To_Excerpt");
}

// Take the excerpt, add some text before it, and return the new excerpt
function mfp_Add_Text_To_Excerpt($old_Excerpt)
{
  $new_Excerpt = "<b>Excerpt: </b>" . $old_Excerpt;
  return $new_Excerpt;
}

طراحی افزونه وردپرس

حالا که بعد از توضیحات و مثال های بالا درک اساسی در مورد قلاب ها و فیلترها دارید، بیایید به ساخت یک افزونه وردپرس ساده بپردازیم که لینک و صفحه جدیدی به کنترل پنل مدیریت اضافه می کند.

مرحله 1 – ذخیره افزونه

اولین قدم برای ساخت افزونه وردپرس ایجاد پوشه ای جهت ذخیره کلیه فایل های شما است. افزونه ها در مسیر /wp-content/plugins/ نصب می شوند و شما هم باید در آنجا پوشه خود را ایجاد کنید. همچنین باید برای پوشه ایجاد شده نامی منحصربفرد انتخاب کنید تا با افزونه های دیگر شما تداخل نداشته باشد.

برای انجام کارهای بالا لازم است تا:

1. وارد هاست خود شوید و یا به وسیله FTP وصل شوید.

2. سپس باید وارد روت اصلی سایت خود یعنی همانجایی که وردپرس نصب شده است شوید.

3. به پوشه wp-content و سپس plugins بروید.

4. حالا در آنجا یک پوشه جدید ایجاد کنید و نام آن را به دلخوه وارد کنید (من نام پوشه را my-first-plugin قرار دادم)

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

برای اینکه کارها در آینده به طور قابل توجهی آسانتر شود، بهتر است فایل های مختلفی که افزونه وردپرس شما را تشکیل می دهند جدا کرده و به جای اینکه تمام فایل های افزونه خود را در پوشه اصلی داشته باشید، زیر پوشه های مخصوص خود را به آنها اختصاص دهید. اینکار چون بعد از اینکه افزونه رشد می کند و فایل های زیادی خواهد داشت، پیدا کردن فایل مرودنظر شما وقتی جای خود را داشته باشد، بسیار ساده تر است. مثلا اگر افزونه شما از CSS استفاده می کند، شما یک پوشه CSS ایجاد کنید و کلیه فایل های CSS را در آنجا ذخیره کنید.

مرحله 2 – ایجاد فایل اول

گام دوم برای ساخت افزونه وردپرس، ساخت اولین فایل افزونه است که بسیار مهم می باشد. این شامل تمام اطلاعاتی است که وردپرس برای نمایش افزونه در لیست افزونه ها نیاز دارد و به شما امکان می دهد افزونه را فعال کنید.

در پوشه my-first-plugin یک فایل PHP با نام my-first-plugin.php ایجاد کنید. بهتر است که این فایل هم نامی همانند پوشه افزونه داشته باشد، با این حال می توانید نام دیگری را هم وارد کنید. محتوای این فایل با <?php شروع می شود و در آن نام، توضیحات مربوط به افزونه و… قرار داده می شود.

اولین کدی که باید به my-first-plugin.php اضافه کنید نام افزونه شما است.

<?php
/*
Plugin Name: My First Plugin
*/

فایل را ذخیره کنید و به صفحه افزونه ها در پیشخوان وردپرس خود مراجعه کنید. حالا در آنجا افزونه ای را در لیست با نام My First Plugin که لینک هایی برای فعال سازی، ویرایش و حذف افزونه هم دارد، مشاهده می کنید.

همچنین شما می توانید توضیحات، نام نویسنده افزونه، نسخه افزونه و … را وارد کنید.

فایل my-first-plugin.php را ویرایش کنید و کد زیر را در آن قرار دهید، در پایین کد بالا هم قرار دارد پس می توانید، کل محتوای فایل را بازنویسی کنید.

<?php
/*
Plugin Name: My First Plugin
Description: این اولین افزونه من است! این یک لینک منوی جدید ایجاد می کند!
Author: نام شما
*/

در کد بالا علاوه بر نام افزونه، توضیحات و نام نویسنده را هم اضافه کردیم.

حالا اگر به صفحه افزونه ها بروید آنها را مشاهده خواهید کرد:

ساخت افزونه سفارشی

مرحله 3 – نوشتن توابع افزونه

همانطور که قبلاً گفته شد، بهترین روش در هنگام ساخت یک افزونه جدا کردن مرتب کد شما در فایل ها و پوشه های مناسب است. از آنجا که کار اصلی اولین فایل، نگه داشتن اطلاعات افزونه است، منطقی است که بقیه کد افزونه را در فایل های جداگانه در زیر پوشه خود قرار دهید.

هر فایل ذخیره شده در زیر پوشه ها مستقیماً توسط کد ما و فقط با کد ما خوانده می شوند، بنابراین نامهای زیر پوشه نیازی به پیشوند ندارند. با این حال، توصیه می شود که پیشوندهای منحصر به فردی به نام همه فایل ها ، توابع و متغیرهای خود بدهید تا از درگیری با سایر افزونه ها جلوگیری کنید. در این حالت، ما از mfp به عنوان پیشوند استفاده می کنیم، که مخفف نام “My First Plugin” است.

خب حالا در پوشه اصلی افزونه خود، یک پوشه جدید با نام includes ایجاد کنید. هر فایلی که توسط فایل دیگری “شامل شده” باشد، در این پوشه قرار خواهد گرفت. یک فایل PHP جدید را در پوشه includes ایجاد کنید و آن را به نام mfp-functions.php ذخیره کنید. تگ <?php را در ابتدای آن قرار دهید. این فایل جدید جایی است که تمام توابع افزونه شما در آن ذخیره می شود.

حالا به پوشه اصلی افزونه خود برگردید. ما باید کاری کنیم که شامل فایل mfp-functions.php باشد تا در واقع بتوانیم از توابع جدید استفاده کنیم. از آنجا که این فایل اصلی افزونه است، mfp-functions.php در اینجا توابع را در دسترس هر فایل دیگری در افزونه شما قرار می دهد. از require_once استفاده کنید تا اطمینان حاصل شود که افزونه فقط در صورت موجود بودن پرونده عملکردها کار می کند.

ساده ترین روش برای درج فایل ها از پوشه افزونه شما، استفاده از عملکرد plugin_dir_path(__FILE__) است، که مسیر کامل را به دایرکتوری که افزونه ما در آن ذخیره می شود، می دهد، سپس از یک (period) برای اضافه کردن نام زیر پوشه ای که قبلاً ایجاد کردیم (includes) به دنبال نام فایلی که ایجاد کردیم (mfp-functions.php) استفاده می کنیم.

 فایل my-first-plugin.php را با کد زیر ویرایش کنید. پس از ذخیره فایل را فراموش نکنید.

<?php
/*
Plugin Name: My First Plugin
Description: این اولین افزونه من است! این یک لینک منوی جدید ایجاد می کند!
Author: نام شما
*/

// Include mfp-functions.php, use require_once to stop the script if mfp-functions.php is not found
require_once plugin_dir_path(__FILE__) . 'includes/mfp-functions.php';

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

تکرار – نوشتن یک عملکرد جدید شامل مراحل زیر است:

  • برای توصیف عملکرد، کامنتی بنویسید
  • تابع را نام گذاری کنید
  • عملکرد را بنویسید

در mfp-functions.php موارد زیر را بنویسید:

<?php
/*
* Add my new menu to the Admin Control Panel
*/

// Add a new top level menu link to the ACP
function mfp_Add_My_Admin_Link()
{
// My code goes here
}

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

چهار پارامتر مورد نیاز add_menu_page() همه در خط خود برای بهبود خوانایی ظاهر می شوند، به این ترتیب:

  • عنوان صفحه ای که بعد از کلیک بر روی لینک می بینید (در برگه در مرورگر شما نمایش داده می شود)
  • متن برای نمایش به عنوان لینک منو (نمایش داده شده در لیست ناوبری پیشخوان مدیریت)، این باید نام افزونه شما باشد
  • نیاز به کاربر برای مشاهده منو، در این مثال فقط کاربرانی که قابلیت ‘manage_options’ دارند می توانند به صفحه دسترسی پیدا کنند
  • فایلی که باید هنگام نمایش صفحه واقعی استفاده شود. در زیر پوشه ها ذخیره می شود و به نام mfp-first-acp-page.php نامگذاری می شود. نشانی اینترنتی وارد شده در اینجا به عنوان “نامک” شناخته می شود.

قبل از ادامه، توجه داشته باشید که یک روش جایگزین برای استفاده از این عملکرد وجود دارد. پارامتر چهارم به سادگی می تواند رشته ای از متن باشد که پس از ‘wp-admin/admin.php?page=’ در url نمایش داده می شود. اگر “my-plugin-page” را وارد کنید، URL شما به ‘wp-admin/admin.php?page=my-plugin-page’ تبدیل می شود.

پارامتر پنجم سپس باید نام تابعی باشد که چیزی را بیرون می آورد. شما می توانید تابعی بنویسید که فقط تکرار می شود – به عنوان مثال “به صفحه 1 خوش آمدید”. ایجاد یک فایل PHP برای نگه داشتن صفحه شما بسیار ساده تر است.

mfp-functions.php را ویرایش کنید، // My code goes here را حذف و add_menu_page() را جایگزین کنید و پارامترهای آن را مطابق شکل زیر ارائه دهید:

<?php
/*
 * Add my new menu to the Admin Control Panel
 */
 
// Add a new top level menu link to the ACP
function mfp_Add_My_Admin_Link()
{
      add_menu_page(
        'My First Page', // Title of the page
        'My First Plugin', // Text to show on the menu link
        'manage_options', // Capability requirement to see the link
        'includes/mfp-first-acp-page.php' // The 'slug' - file to display when clicking the link
    );
}

برای اینکه این عملکرد در واقع عملی شود، باید از عملکرد وردپرس با نام add_action() با دو پارامتر استفاده کنیم، همانطور که در بخش “اضافه کردن توابع به هوک اکشن” در این آموزش توضیح داده شده است.

  • اولین پارامتر هوک اکشن است که می خواهید هدف گذاری کنید. اینجا هوک اکشن admin_menu است – این بدان معنی است که عملکرد من در هنگام تولید منوی ادمین اجرا می شود.
  • پارامتر دوم فقط نام تابعی است که باید اجرا شود. تابعی که نوشتیم mfp_Add_My_Admin_Link نامگذاری شده است. توجه داشته باشید که پرانتز در اینجا استفاده نمی شود. به یاد داشته باشید که PHP قبل از اجرا کل اسکریپت را ارزیابی می کند، به شما امکان می دهد قبل از تعریف عملکردی که در پارامتر 2 نامگذاری شده است از add_action() استفاده کنید.

حالا فایل نهایی ما به شکل زیر است:

<?php
/*
* Add my new menu to the Admin Control Panel
*/

// Hook the 'admin_menu' action hook, run the function named 'mfp_Add_My_Admin_Link()'
add_action( 'admin_menu', 'mfp_Add_My_Admin_Link' );

// Add a new top level menu link to the ACP
function mfp_Add_My_Admin_Link()
{
add_menu_page(
'My First Page', // Title of the page
'My First Plugin', // Text to show on the menu link
'manage_options', // Capability requirement to see the link
'includes/mfp-first-acp-page.php' // The 'slug' - file to display when clicking the link
);
}

می توانید فایل mfp-functions.php را باز کنید و تمام کدهای موجود را پاک کنید و کد بالا را در آن قرار دهید.

مرحله 4 – ایجاد صفحه جدید ادمین

حالا وقتی روی لینک موجود در پیشخوان وردپرس کلیک کنید صفحه نمایش داده می شود.

به زیر پوشه includes برگردید و یک فایل PHP با نام mfp-first-acp-page.php ایجاد کنید. نیازی به وارد کردن تگ باز کردن PHP نیست، چون ما اینجا فقط از HTML استفاده می کنیم.

کد زیر را در آن قرار دهید:

<div class="wrap">
  <h1>Hello!</h1>
  <p>This is my plugin's first page</p>
</div>

هنگام ایجاد صفحات مدیریت افزونه، وردپرس توصیه می کند که HTML خود را با div تقسیم کنید و کلاس “wrap” را همانطور که در بالا مشاهده می کنید، به آن اختصاص دهید. این تضمین می کند که تمام مطالب شما درست مانند هر صفحه مدیریت دیگر در مکان صحیح ظاهر می شوند. اگر آن را مانند این نپوشانید، صفحه می تواند بسیار بهم ریخته شود.

به پیشخوان وردپرس سایت خود و صفحه افزونه ها بروید و اگر افزونه خود را فعال نکرده اید، آن را فعال کنید. سپس اگر مجددا صفحه را بارگیری کنید، در انتهای منو پیشخوان گزینه ای با نام افزونه شما اضافه شده است. بر روی آن کلیک کنید تا صفحه مدیریت افزونه خود را مشاهده کنید!

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

جمع بندی

تبریک می گوییم، شما پس از مطالعه این آموزش ساخت افزونه وردپرس، اولین افزونه وردپرس خود را ایجاد کرده اید، لینک جدیدی به منو پیشخوان اضافه کرده اید و همچنین صفحه کاملا جدیدی برای صفحه مدیریت افزونه نمایش داده اید!

امیدواریم که به خوبی مطالب بالا را یاد گرفته باشید و الان ساخت افزونه وردپرس اختصاصی و جدید برای شما بسیار آسان باشد. همچنین ممکن است بخواهید مقالات ما را در مورد آموزش وردپرس ببینید تا سایت خود را گسترش دهید.

5/5 - (7 امتیاز)

(2) نظرات کاربران

  1. رضا گرگانی گفت:

    آموزش خوب بود ممنون.
    نکته مهم و خوبی ک در رابطه با ادد کردن سایر صفحات گفتید تمایز آموزشتون بود.

  2. محمدرضا گفت:

    سلام.ممنون بابت آموزش.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *