首页 > 解决方案 > 如何重命名 wordpress 插件的菜单标签?

问题描述

我正在尝试在 wordpress 管理菜单中重命名插件标签。重命名后,插件不再起作用。

改名前:

function bookacti_create_menu() {
    // Add a menu and submenus
    $icon_url = 'dashicons-calendar-alt';
    add_menu_page( __( 'Booking Activities', BOOKACTI_PLUGIN_NAME ), _x( 'Booking Activities', 'Name of the tab in the menu', BOOKACTI_PLUGIN_NAME ), 'bookacti_manage_booking_activities', 'booking-activities', null, $icon_url, '56.5' );
    add_submenu_page( 'booking-activities', _x( 'Booking Activities', 'Landing page title', BOOKACTI_PLUGIN_NAME ), _x( 'Home', 'Landing page tab name', BOOKACTI_PLUGIN_NAME ),'bookacti_manage_booking_activities',           'booking-activities',   'bookacti_landing_page' );
    add_submenu_page( 'booking-activities', __( 'Calendar editor', BOOKACTI_PLUGIN_NAME ),                          __( 'Calendar editor', BOOKACTI_PLUGIN_NAME ),              'bookacti_manage_templates',                    'bookacti_calendars',   'bookacti_templates_page' );
    add_submenu_page( 'booking-activities', __( 'Booking forms', BOOKACTI_PLUGIN_NAME ),                            __( 'Booking forms', BOOKACTI_PLUGIN_NAME ),                'bookacti_manage_forms',                        'bookacti_forms',       'bookacti_forms_page' );
    add_submenu_page( 'booking-activities', __( 'Bookings', BOOKACTI_PLUGIN_NAME ),                                 __( 'Bookings', BOOKACTI_PLUGIN_NAME ),                     'bookacti_manage_bookings',                     'bookacti_bookings',    'bookacti_bookings_page' );
    add_submenu_page( 'booking-activities', __( 'Settings', BOOKACTI_PLUGIN_NAME ),                                 __( 'Settings', BOOKACTI_PLUGIN_NAME ),                     'bookacti_manage_booking_activities_settings',  'bookacti_settings',    'bookacti_settings_page' );
}
add_action( 'admin_menu', 'bookacti_create_menu' );

改名后:

function bookacti_create_menu() {
    // Add a menu and submenus
    $icon_url = 'dashicons-calendar-alt';
    add_menu_page( __( 'Testname', BOOKACTI_PLUGIN_NAME ), _x( 'Testname', 'Name of the tab in the menu', BOOKACTI_PLUGIN_NAME ), 'bookacti_manage_booking_activities', 'booking-activities', null, $icon_url, '56.5' );
    add_submenu_page( 'booking-activities', _x( 'Booking Activities', 'Landing page title', BOOKACTI_PLUGIN_NAME ), _x( 'Home', 'Landing page tab name', BOOKACTI_PLUGIN_NAME ),'bookacti_manage_booking_activities',           'booking-activities',   'bookacti_landing_page' );
    add_submenu_page( 'booking-activities', __( 'Calendar editor', BOOKACTI_PLUGIN_NAME ),                          __( 'Calendar editor', BOOKACTI_PLUGIN_NAME ),              'bookacti_manage_templates',                    'bookacti_calendars',   'bookacti_templates_page' );
    add_submenu_page( 'booking-activities', __( 'Booking forms', BOOKACTI_PLUGIN_NAME ),                            __( 'Booking forms', BOOKACTI_PLUGIN_NAME ),                'bookacti_manage_forms',                        'bookacti_forms',       'bookacti_forms_page' );
    add_submenu_page( 'booking-activities', __( 'Bookings', BOOKACTI_PLUGIN_NAME ),                                 __( 'Bookings', BOOKACTI_PLUGIN_NAME ),                     'bookacti_manage_bookings',                     'bookacti_bookings',    'bookacti_bookings_page' );
    add_submenu_page( 'booking-activities', __( 'Settings', BOOKACTI_PLUGIN_NAME ),                                 __( 'Settings', BOOKACTI_PLUGIN_NAME ),                     'bookacti_manage_booking_activities_settings',  'bookacti_settings',    'bookacti_settings_page' );
}
add_action( 'admin_menu', 'bookacti_create_menu' );

我在日志中找不到任何有用的东西。

你可以在这里找到完整的文件:https ://github.com/bookingactivities/booking-activities/blob/master/booking-activities.php

标签: phpwordpress

解决方案


您可以尝试将此添加到您的functions.php文件中吗

function kl_rename_plugin_menus() {
    global $menu;

    // Define your changes here
    $updates = array(
        "bookacti_manage_booking_activities" => array(
            'name' => 'Testname',
            'icon' => 'dashicons-lock'
        )
    );

    foreach ( $menu as $k => $props ) {

        // Check for new values
        $new_values = ( isset( $updates[ $props[0] ] ) ) ? $updates[ $props[0] ] : false;
        if ( ! $new_values ) continue;

        // Change menu name
        $menu[$k][0] = $new_values['name'];

        // Optionally change menu icon
        if ( isset( $new_values['icon'] ) )
            $menu[$k][6] = $new_values['icon'];
    }
}
add_action( 'admin_init', 'kl_rename_plugin_menus' );

推荐阅读