اگر تا به امروز به نوار مدیریت وردپرس (admin bar یا toolbar) مشکی رنگ بالای سایت وردپرسی خود توجه کرده باشید، دیدهاید که آیتمهای زیادی در آن جای گرفتند و اگر از کاربران قدیمی وردپرس باشید قطعا تایید میکنید که بسیاری از این آیتمها و موارد بلااستفاده هستند و تا امروز شاید یک بار نیز از آنها استفاده نکرده باشید.
بسیاری از آیتمهای موجود در ادمین بار وردپرس مال خود هسته وردپرس هستند و بعضا افزونههایی وجود دارند که با نصب آنها بر روی سایت وردپرسی خود، آیتم و گزینهای به نوار مدیریت وردپرس اضافه میکنند و اگر در نهایت افزونه وردپرسی زیادی روی سایت وردپرسی خود داشته باشید، خواهید دید که نوار ادمین سایت وردپرسی شما بسیار شلوغ و بهمریخته شده است.
اما اکنون میخواهیم یاد بگیریم که چگونه با یک تکه کد PHP ساده هر کدام از آیتمهایی که نیازی به آن در نوار مدیریت وردپرس (toolbar) نداریم را حذف کنیم تا ادمین بار (Admin Bar) تمیزتر و خلوت تری داشته باشیم. برای این کار کافی است کدهای php که در پایین قرار دارند را در فایل functions.php قالب یا پوسته فرزند یا افزونه مدیریت تکهکدها (نظیر FluentSnippets یا Code Snippets) قرار دهید. برای این کار حتما مقاله افزودن کد سفارشی PHP و CSS و JS به وردپرس را مطالعه کنید.
حذف کردن آیتمهای ادمین بار وردپرس با استفاده از کد PHP
شما میتوانید آیتمهایی همچون لوگو وردپرس (wp-logo)، اسم سایت (site-name)، تعداد کامنتهای پاسخ داده نشده (comments)،آپدیتها (updates)، افزودن محتوای جدید (new-content)، سلام مدیر سایت (my-account)، جستجو (search)، ویرایش (edit) و سفارشیسازی (customize) و غیره و غیره و کلیه آیتمهایی که توسط افزونهها به نوار مدیریت وردپرس افزوده شده است را حذف کنید.
برای این کار کد php زیر را کپی کنید و در فایل functions.php قالب فرزند و یا افزونه مدیریت تکهکدها سایت خود قرا دهید:
// Remove items from the admin bar
function remove_items_from_admin_bar($wp_admin_bar) {
// WordPress Core Items
$wp_admin_bar->remove_node('wp-logo');
$wp_admin_bar->remove_node('site-name');
$wp_admin_bar->remove_node('updates');
$wp_admin_bar->remove_node('customize');
$wp_admin_bar->remove_node('comments');
$wp_admin_bar->remove_node('new-content');
$wp_admin_bar->remove_node('edit');
$wp_admin_bar->remove_node('my-account');
$wp_admin_bar->remove_node('search');
// Example of removing item generated by plugin. Full ID is #wp-admin-bar-rank-math
$wp_admin_bar->remove_node('rank-math');
}
add_action('admin_bar_menu', 'remove_items_from_admin_bar', 999);
کد بالا کلیه آیتمهای موجود در نوار ادمین مشکی رنگ بالای سایت را در Backend و Frontend حذف میکند. برای حذف نشدن هر یک از موارد و آیتمهای دلخواه تنها کافی است که خط کد مربوط به آن را از کد بالا حذف نمایید.
همچنین از کد زیر نیز میتوانید برای حذف هر المانی از نوار ادمین استفاده کنید:
// Remove item from the toolbar
add_action( 'wp_before_admin_bar_render', 'delete_item_from_toolbar', 99 );
function delete_item_from_toolbar() {
global $wp_admin_bar;
$wp_admin_bar->remove_menu('mymenu');
}
این کد همچنین قادر است آیتمهایی که توسط سایر افزونهها (نظیر پلاگین رنک مث یا المنتور و لایتاسپید کش و غیره) به نوار مدیریت وردپرس اضافه شده است را حذف نماید.
برای این کار کافی است دقیقا طبق رویه زیر عمل نمایید:
1. یافتن شناسه (ID) آیتم مورد نظر
اولین کاری که باید انجام دهیم این است که شناسه (ID) آیتمی از نوار مدیریت را که میخواهیم حذف کنیم، تعیین کنیم. برای این کار از قابلیت inspect مرورگر کروم یا فایرفاکس استفاده میکنیم.
2. تشخیص صحیح تگ li المان مورد نظر
برای این کار ما به دنبال id تگ li آیتم مورد نظر میگردیم. بطور مثال در تصویر بالا ما میخواهیم آیتم اضافه شده به ادمین بار توسط افزونه UpdraftPlus را حذف کنیم. با inspect گرفتن و رفتن روی تگ li آیتم مورد نظر میبینیم که تگ المان مورد نظر ما بصورت زیر است:
<li id="wp-admin-bar-updraft_admin_node" class="menupop">...</li>
3. کپی کردن دقیق شناسه node آیتم مورد نظر
شناسه (id) این المان و کلیه آیتمهای موجود در نوار مدیریت از دو بخش تشکیل شده است. همانطور که در کد بالا مشاهده میکنید بخش اول این کد که برای تمامی آیتمها ثابت و یکسان است wp-admin-bar-
است که ما کاری با این قسمت نداریم. اما بخش دوم که برای ما مهم است و قسمت اختصاصی هر آیتم و المان میباشد در ادامه هر wp-admin-bar-
آمده است. بطور مثال برای افزونه UpdraftPlus موجود در تصویر بالا این بخش دوم همان updraft_admin_node
میباشد. ما تنها این بخش را کپی میکنیم و در کد اصلی php خود بصورت زیر قرار میدهیم:
$wp_admin_bar->remove_node('updraft_admin_node');
4. جایگذاری شناسه node به کد php
اگر به فرض بخواهیم تنها این آیتم افزونه UpdraftPlus را از ادمین بار حذف کنیم، کد php ما بصورت زیر در میآید:
function webzoj_remove_toolbar_node($wp_admin_bar) {
$wp_admin_bar->remove_node('updraft_admin_node');
}
add_action('admin_bar_menu', 'webzoj_remove_toolbar_node', 999);
5. کد جایگزین حذف المانهای دلخواه از ادمین بار (toolbar) وردپرس
اگر احیانا کد بالا برای حذف آیتم بعضی افزونههای خاص از ادمین بار جواب نداد، میتوانید از کد جایگزین زیر استفاده نمایید.
function webzoj_remove_toolbar_menu() {
global $wp_admin_bar;
// replace 'ABCDEFGH' with your node id
$wp_admin_bar->remove_menu('ABCDEFGH');
}
add_action('wp_before_admin_bar_render', 'webzoj_remove_toolbar_menu', 999);
در کد بالا تنها احتیاج است تا همانگونه که در روند بالا آموزش داده شد node آیتم مورد نظر خود را یافته و جایگزین ABCDEFGH نمایید.
6. روش سوم در حذف گزینههای اضافی نوار ابزار وردپرس
همچنین اگر نمیخواهید از دو روش بالا استفاده نمایید، میتوانید کد زیر را قبل از عبارت That’s all, stop editing! Happy blogging.
موجود در فایل wp-config.php
روت وردپرس خود قرار دهید:
define('UPDRAFTPLUS_ADMINBAR_DISABLE', true);
نکته خوب در مورد این روش سوم این است که بدون در نظر گرفتن اینکه کدام تم در حال حاضر فعال است، همواره کار میکند. توجه داشته باشید که کد بالا فقط برای مثال است و این کد UPDRAFTPLUS_ADMINBAR_DISABLE
تنها آیتم موجود در ادمین بار افزونه UpdraftPlus را حذف میکند.
اکنون اگر به Frontend و یا Backend سایت خود مراجعه کنید و سایت وردپرسی خود را مجددا بارگذاری نمایید، خواهید دید که دیگر اثری از آیتمهایی که شما با کد php آنها را حذف کردید نیست و نوار مدیریت مشکی رنگ بالای سایت وردپرسی شما خلوتتر و منظمتر شده است.