سفارشی کردن بخش مدیریت در آقای وردپرس

درود بر کاربران عزیز آقای وردپرس

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

  • تغییر نام منوهاشاید شما بخواهید نام منوهای ادمین خود را تغییر دهید. به عنوان مثال شما یک سایت مربوط به انتشار دستورهای غذایی دارید – Recipe که در آن می خواهید از “Posts” برای لیست کردن دستورهای غذایی استفاده کنید.
    برای این کار باید از دستور admin_menu استفاده کنید. این روش برای اضافه کردن زیرمنو به منوی ادمین و یا کارهای دیگری که به منو مرتبط است، استفاده می شود.
    تغییر نام منوهای بالا دستی و یا اصطلاحاً Top Level
  • در ابتدا شما باید یک فانکشن بسازید و بعد آن را به به اکشن هوک داخل functions.php قالب وصل کنید.
function edit_admin_menus() {
    global $menu;
}
add_action( 'admin_menu', 'edit_admin_menus' );
  • ادمین وردپرس با یک آرایش و ترتیب مشخص ذخیره شده است ($menu). با دیدن edit_admin_menus از $menu برای گرفتن ترتیب منوها استفاده کنید. حالا لازم است تا شما کلید مرتبط با منویی که می خواهید تغییر نام دهید را مشخص کنید.
    در آخر این مطلب آموزشی، لیست کاملی از منوها و زیرمنوها به شما عزیزان ارائه خواهد شد.
    چون ما می خواهیم “Posts” را به “Recipes” تغییر دهیم باید از ۵ استفاده کنیم.
function edit_admin_menus() {
    global $menu;

    $menu[5][0] = 'Recipes'; // Change Posts to Recipes
}
add_action( 'admin_menu', 'edit_admin_menus' );
  • چه باور کنید و چه نکنید، کار ما تمام شد، به همین راحتی! حالا functions.php را ذخیره کرده و صفحه ادمین را اصطلاحاً ریفرش کنید. لطفاً توجه داشته باشید در این حالت زیرمنوها با نام جدید همانگ نیستند. تغییر نام زیرمنوها
    تغییر نام زیرمنوها تقریباً با راهی که بالا رفتیم یکی است، فقط لازم است $submenu را اضافه کنید و همچنین از لینک URI استفاده کنید. به عنوان مثال تغییر “All Posts” به “All Recipes” به صورت زیر خواهد بود:
$submenu['edit.php'][5][0] = 'All Recipes';

  • شما می توانید این کار را برای هر زیرمنو انجام دهید. همه با هم edit_admin_menus اینگونه خواهند بود:
function edit_admin_menus() {
    global $menu;
    global $submenu;

    $menu[5][0] = 'Recipes'; // Change Posts to Recipes
    $submenu['edit.php'][5][0] = 'All Recipes';
    $submenu['edit.php'][10][0] = 'Add a Recipe';
    $submenu['edit.php'][15][0] = 'Meal Types'; // Rename categories to meal types
    $submenu['edit.php'][16][0] = 'Ingredients'; // Rename tags to ingredients
}
add_action( 'admin_menu', 'edit_admin_menus' );
  • حالا منوی posts به recipe تغییر پیدا کرد. این روند برای تمام منوهای داشبورد و تنظیمات و همچنین زیر مجموعه های آنان قابل انجام هستند.تغییر ترتیب منوها
    در اینجا می خواهیم به شما آموزش دهیم چگونه می توان ترتیب منوها و جداسازها (Separators) را تغییر داد. ما ترجیح می دهیم Media و Links بیشتر در انتها قرار داشته باشند چرا که کمتر به آن نیاز پیدا می کنیم.
    برای تغییر ترتیب منوهای ادمین باید از فیلتر menu_order استفاده کرد. اگرچه برای استفاده از فیلتر menu_order لازم است در ابتدا custom_menu_order را فعال کنید. پس اول این کد را در functions.php قرار دهید.
function custom_menu_order($menu_ord) {
    if (!$menu_ord) return true;

    return array(
        'index.php', // Dashboard
        'separator1', // First separator
        'edit.php', // Posts
        'upload.php', // Media
        'link-manager.php', // Links
        'edit.php?post_type=page', // Pages
        'edit-comments.php', // Comments
        'separator2', // Second separator
        'themes.php', // Appearance
        'plugins.php', // Plugins
        'users.php', // Users
        'tools.php', // Tools
        'options-general.php', // Settings
        'separator-last', // Last separator
    );
}
add_filter('custom_menu_order', 'custom_menu_order'); // Activate custom_menu_order
add_filter('menu_order', 'custom_menu_order');
  • ترتیب منوها از بالا به پایین است، پس هر منویی را در بالای لیست قرار دهید مطمئناً اولین آیتم در منو خواهد بود. اگر هرکدام از استانداردهای منو را در ترتیب منوها قرار ندهید، آن آیتم به آخر لیست اضافه می شود، اما از منو حذف نمی شود.

    برداشتن منوها

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

برداشتن منوهای بالا یا Top Level Menus

برداشتن منوهای ادمین کار بسیار ساده ای است. خود وردپرس یک فانکشتن داخلی برای برداشتن منوها قرار داده است:

 

  • remove_menu_page();

 

 

اگر می خواهید منوی Tools را بردارید باید از این روش استفاده کنید:

remove_menu_page('tools.php');
  • زمانی که می خواهید منویی را برمی دارید، می توانید دوباره از همان فانکشن که در تغییر نام منوها استفاده کردید، استفاده کنیدد. در زیر مثال از فانکشنی می بینید که در ابتدای آموزش برای تغییر نام منوی Posts استفاده شد اما جلوتر برای برداشتن منوی Tools مورد استفاده قرار می گیرد.
function edit_admin_menus() {
    global $menu;
    global $submenu;

    $menu[5][0] = 'Recipes'; // Change Posts to Recipes
    $submenu['edit.php'][5][0] = 'All Recipes';
    $submenu['edit.php'][10][0] = 'Add a Recipe';
    $submenu['edit.php'][15][0] = 'Meal Types'; // Rename categories to meal types
    $submenu['edit.php'][16][0] = 'Ingredients'; // Rename tags to ingredients

    remove_menu_page('tools.php'); // Remove the Tools Menu
}
add_action( 'admin_menu', 'edit_admin_menus' );
  • برداشتن زیر منوبرداشتن زیر منوها هم کار بسیار ساده است و تقریباً روشی همانند روش بالا برای حذف دارد. در اینجا ویرایشگر قالب و یا همان Theme Editor در منوی Appearance پنهان می شود:
remove_submenu_page('themes.php','theme-editor.php');
  • در اینجا تنها تفاوت این است که شما باید اول اسلاگ (Slug) بالا دستی (پرنت) منو را فراهم آورید و بعد اسلاگ خود منو را. در مثال آخر به شما نشان داده می شود که چطور منوی Tools و زیرمنوهای Theme Editor حذف می شوند:
function edit_admin_menus() {
    global $menu;
    global $submenu;

    $menu[5][0] = 'Recipes'; // Change Posts to Recipes
    $submenu['edit.php'][5][0] = 'All Recipes';
    $submenu['edit.php'][10][0] = 'Add a Recipe';
    $submenu['edit.php'][15][0] = 'Meal Types'; // Rename categories to meal types
    $submenu['edit.php'][16][0] = 'Ingredients'; // Rename tags to ingredients

    remove_menu_page('tools.php'); // Remove the Tools menu
    remove_submenu_page('themes.php','theme-editor.php'); // Remove the Theme Editor submenu
}
add_action( 'admin_menu', 'edit_admin_menus' );
  • نتیجه گیری همانطور که دیدید، تغییر بَکند و سفارشی کردن آن در وردپرس کار ساده و جالبی است. شاید خیلی ها متوجه نشوند که شما چه کاری انجام داده اید اما دست آخر این کار می تواند کمک خوبی به شما کند. نظم و ترتیب همیشه کار خوبی است. شما ظاهر قالب خود را مرتب می کنید، چرا این کا را برای بکند خود انجام ندهید؟
    اگر این کار را برای سایتی که با کلاینت فعالیت می کند انجام دهید، بسیار مثمر ثمر خواهد بود. مخفی کردن منوهایی که آنها می توانند استفاده کنند، ممکن است باعث آسیب ناخواسته به سایت شود که معمولاً این یک کار بسیار بزرگ و فوق العاده مخرب خواهد بود. در درس های آتی، ما شما را بیشتر با تنظیماتی از این دست و سفارشی کردن وردپرس با استفاده از CSS یاد خواهیم داد.
  • پیروز باشید.

 

تیم آقای وردپرس

تیم تولید محتوا و پشتیبانی سایت آقای وردپرس

این پست دارای 3 نظر است

  1. سلام
    ببخشید من میخواستم به منوی ادمین یک بخش جدید به اسم فعالیت های ما اضافه کنم. این کارو چهطور میتونم انجام بدم ؟
    تشکر

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