WordPress后台修改其他任意菜单标题名称

发布于:2020-11-15 最后编辑:2020-11-15 所属分类:后端 阅读次数:1595

有时候我们在交付客户之前,想要修改一下插件在WordPress后台添加的一些菜单名称,应该怎么操作呢?在操作之前,还要考虑到插件后期升级更新可能导致的兼容问题,尽量避免升级以后失效的情况出现。还要尽可能的精准修改,避免修改到前台或其他地方的东西。下面的代码是临时写的,效果还可以,仅供参考哈。

WordPress后台菜单

代码

<?php
/**
 * 修改表单数据插件名称
 * 这种方法适用于使用了本地化翻译功能的插件或主题
 * 不只是可以修改后台菜单标题,还可以修改其他使用本地化的字符串
 */
add_filter( 'gettext', function( $translated_text, $text, $domain ) {
    if ( ! is_admin() ) {
        return $translated_text;//不是后台的话,不做修改。
    }
    switch ( $translated_text ) {
        case 'Contact Forms' ://要修改的菜单标题名称
            $translated_text = __( '客户询盘', 'contact-form-cfdb7' );
            break;
        case 'Contact Forms List' ://还可以修改其他使用本地化的字符串
            $translated_text = __( '全部询盘', 'contact-form-cfdb7' );
            break;
    }
    return $translated_text;
}, 20, 3 );

/**
 * 使用JS方式修改
 * 有些插件或主题,没有使用本地化,这时可以用JQuery进行修改
 */
add_action( 'admin_footer', function() {
    ?>
    <script type="text/javascript">
        jQuery('.wp-menu-name').each(function(index, el) {
            if ( jQuery('.wp-menu-name')[index].innerHTML == 'Contact Forms' ) {
                jQuery('.wp-menu-name')[index].innerHTML = '客户询盘';
            }
        });
        jQuery('.wrap > h2').each(function(index, el) {
            if ( jQuery('.wrap > h2')[index].innerHTML == 'Contact Forms List' ) {
                jQuery('.wrap > h2')[index].innerHTML = '全部询盘';
            }
        });
    </script>
    <?php
} );

/* 删除某些不想要的子菜单 */
add_action( 'admin_menu', function() {
    remove_submenu_page( 'cfdb7-list.php', 'cfdb7-extensions' );
    remove_submenu_page( 'cfdb7-list.php', 'extensions' );//适配旧版本 2020.11.15 LaoGuo
}, 999 );
标签: