如何重新命名一个插件标题> WordPress的>仪表板

问题描述 投票:5回答:5

请,有人可以帮我吗?我需要改变安装在我的WordPress插件的名称(在管理栏只有名字是罚款)。谢谢!

预习:

enter image description here

wordpress wordpress-plugin
5个回答
10
投票

下面就来更改标签的过程中(我改变WooCommerce在我的例子“失速”)。你可以尝试用以下方式gettext filter

在你的functions.php文件,请使用此

function rename_header_to_logo( $translated, $original, $domain ) {

$strings = array(
    'WooCommerce' => 'Stall',
    'Custom Header' => 'Custom Stall'
);

if ( isset( $strings[$original] ) && is_admin() ) {
    $translations = &get_translations_for_domain( $domain );
    $translated = $translations->translate( $strings[$original] );
}

  return $translated;
}

add_filter( 'gettext', 'rename_header_to_logo', 10, 3 );

您还可以应用下面的代码

function my_text_strings( $translated_text, $text, $domain ) {
switch ( $translated_text ) {
    case 'WooCommerce' :
        $translated_text = __( 'Stall', 'woocommerce' );
        break;
}
return $translated_text;
}
add_filter( 'gettext', 'my_text_strings', 20, 3 );

enter image description here


3
投票

首先,看看你目前的管理菜单。我通常做的是用临时代码,我插入到我的主题的function.php

add_action( 'admin_menu', 'myRenamedPlugin' );

function myRenamedPlugin() {
    global $menu;
    print_r($menu);
}

现在,当你登录,您的管理员菜单的完整树是在源代码中看到,而且是这个样子:

Array
(
    [2] => Array
        (
            [0] => Dashboard
            [1] => read
            [2] => index.php
            [3] =>
            [4] => menu-top menu-top-first menu-icon-dashboard menu-top-last
            [5] => menu-dashboard
            [6] => div
        )

    [4] => Array
        (
            [0] =>
            [1] => read
            [2] => separator1
            [3] =>
            [4] => wp-menu-separator
        )
...

在这阵中,找到您要重命名的插件。例如,插件“WordPress的文件”

[101] => Array
    (
        [0] => Wordpress Files
        [1] => read
        [2] => pgl_wp_files
        [3] => WP Files
        [4] => menu-top menu-icon-generic
        [5] => toplevel_page_pgl_wp_files
        [6] => dashicons-admin-generic
    )

你看,在位置2是插件的唯一名称“pgl_wp_files”。通过使用插件的唯一名称,我们避免其他插件具有类似名称的打算改名。因此,该额外步骤是非常重要的。

现在,我们使用这个值在我们的函数作为搜索针。一旦发现,它可以代替插件的使用,我们喜欢的任何名称有名称(位置0)。

要长话短说:替换你的主题有以下function.php上述功能:

add_action( 'admin_menu', 'myRenamedPlugin' );

function myRenamedPlugin() {

    global $menu;
    $searchPlugin = "pgl_wp_files"; // Use the unique plugin name
    $replaceName = "New Name for Plugin";

    $menuItem = "";
    foreach($menu as $key => $item){
        if ( $item[2] === $searchPlugin ){
            $menuItem = $key;
        }
    }
    $menu[$menuItem][0] = $replaceName; // Position 0 stores the menu title
}

0
投票

还有,你可以在插件代码更改为编辑这一行!这很难说清楚它会,但因为它依赖于插件。

如果你的插件是侧边栏上的顶层(即它不是一个下拉菜单或任何东西),试图通过插件文件夹搜索(的wp-content /插件/不管-插件名称)的函数调用add_menu_page。该函数的第二个参数是“菜单标题”,所以才改变一切的存在,无论你希望它是。

详细信息:https://codex.wordpress.org/Function_Reference/add_menu_page

如果它是一个下拉菜单下,尝试搜索名为add_submenu_page功能。在此功能,在菜单中的文本是第三个参数,所以独自离开的第二个参数,改变第三个参数到你想要的称号。

如果你不能找到add_submenu_page,搜索add_plugins_pageadd_theme_page或他人的一个此列表:https://codex.wordpress.org/Function_Reference/add_submenu_page取决于什么子菜单插件的页面其实在不在。

重要编辑:如果插件使用的这些“快捷方式”功能中的一个,然后在侧边栏的页面名称再次是第二个参数。


0
投票

作为@ DrAnd1的改善,这里的重命名多个元素的功能:

function replace_admin_menu() {
    global $menu;
    //var_dump($menu);
    $translations = [
        "pgl_wp_files" => "new name for Plugin",
        "WooCommerce" => "Stall",
    ];
    foreach ($translations as $keyToTranslate => $valueTranslated) {
        $menuItem = null;
        foreach ($menu as $key => $item) {
            if ($item[2] === $keyToTranslate) {
                $menuItem = $key;
            }
        }
        if ($menuItem)
            $menu[$menuItem][0] = $valueTranslated;
    }
}

add_action('admin_menu', 'replace_admin_menu');

0
投票
add_action( 'admin_menu', 'rename_woocoomerce', 999 );
function rename_woocoomerce(){
    global $menu;

// Pinpoint menu item
    $woo = rename_woocommerce( 'WooCommerce', $menu );

    // Validate
    if( !$woo )
        return;
        $menu[$woo][0] = 'Store Settings';
        }

function rename_woocommerce( $needle, $haystack )
{
foreach( $haystack as $key => $value )
    {
        $current_key = $key;
        if(
            $needle === $value
            OR (
                is_array( $value )
                && rename_woocommerce( $needle, $value ) !== false
                )
        )
        {
            return $current_key;
        }
    }
    return false;
}
© www.soinside.com 2019 - 2024. All rights reserved.