是否更改管理菜单项的措辞?

时间:2012-06-06 作者:Rob

我正在使用插件Jigoshop 我想将管理菜单的措辞改为“产品”以外的内容:

enter image description here

我该怎么做?哪些文件需要编辑?

4 个回复
最合适的回答,由SO网友:tamilsweet 整理而成

在插件文件夹中检查文件:jigoshop\\u taxonomy。phpLine编号:120

你会看到

register_post_type( "product",
    array(
        \'labels\' => array(
            \'name\'              => __( \'Products\', \'jigoshop\' ),
            \'singular_name\'     => __( \'Product\', \'jigoshop\' ),
            \'all_items\'         => __( \'All Products\', \'jigoshop\' ),
            \'add_new\'           => __( \'Add Product\', \'jigoshop\' ),
            \'add_new_item\'      => __( \'Add New Product\', \'jigoshop\' ),
            \'edit\'              => __( \'Edit\', \'jigoshop\' ),
            \'edit_item\'         => __( \'Edit Product\', \'jigoshop\' ),
            \'new_item\'          => __( \'New Product\', \'jigoshop\' ),
            \'view\'              => __( \'View Product\', \'jigoshop\' ),
            \'view_item\'         => __( \'View Product\', \'jigoshop\' ),
            \'search_items\'      => __( \'Search Products\', \'jigoshop\' ),
            \'not_found\'         => __( \'No Products found\', \'jigoshop\' ),
            \'not_found_in_trash\'=> __( \'No Products found in trash\', \'jigoshop\' ),
            \'parent\'            => __( \'Parent Product\', \'jigoshop\' )
        ),
        \'description\'        => __( \'This is where you can add new products to your store.\', \'jigoshop\' ),
        \'public\'             => true,
        \'show_ui\'            => true,
        \'capability_type\'    => \'post\',
        \'publicly_queryable\' => true,
        \'exclude_from_search\'=> false,
        \'hierarchical\'       => false, // Hierarchial causes a memory leak http://core.trac.wordpress.org/ticket/15459
        \'rewrite\'            => array( \'slug\'=> $product_base, \'with_front\'=> false, \'feeds\'=> $base_slug ),
        \'query_var\'          => true,
        \'supports\'           => array( \'title\', \'editor\', \'thumbnail\', \'comments\', \'excerpt\',/*, \'page-attributes\'*/ ),
        \'has_archive\'        => $base_slug,
        \'show_in_nav_menus\'  => false,
    )
);
根据需要进行更新。

SO网友:Stephen Harris

正如Geert所指出的那样,您不应该编辑插件文件:更改将被更新所覆盖(…并且您真的应该让插件保持最新…)。最好的办法是。。。

Ask the plug-in developers to add a hook to filter the label

但是,现在您可以做以下两件事之一:

在注册帖子类型以更新帖子类型对象时使用钩子,利用标签可翻译的事实方法1:

add_action(\'registered_post_type\',\'wpse54367_alter_post_type\',10,2);

function wpse54367_alter_post_type($post_type, $args){
     if( $post_type != \'product\' )
         return;

     //Get labels and update them 
     $labels = get_post_type_labels( get_post_type_object( $post_type ) );
     $labels->name = \'Some things\';
     $labels->singular_name= \'Some thing\';

     //update args
     $args->labels = $labels;
     $args->label = $labels->name;

     //update post type
     global $wp_post_types;
     $wp_post_types[$post_type] = $args;
}
方法2:由于标签是“可翻译的”,您可以使用gettext 滤器

add_filter( \'gettext\', \'54367_change_label\', 10, 2 );

function wpse51861_change_help_text( $translation, $text ) {

if ( $text == \'Products\' )
    return __(\'Something else\',\'jigoshop\');

return $translation;
}

SO网友:marcochiesi

您可以使用Admin Menu Editor 插件。

SO网友:Geert

虽然Stephen’s answer 是处理当前情况的一种很好的方法,如果插件开发人员进行简单的更改,就会有一个更干净的解决方案。

<小时>

Action to be taken by the plugin developers:

首先,注册帖子类型时应设置the menu_name label. 此标签专门用于菜单;如果没有设置name 默认情况下使用标签。

当设置menu_name 标签_x() translation function 应使用。这样,翻译人员就可以只为菜单名提供特定的翻译。否则,“产品”的翻译将适用于name 还有标签。

register_post_type(\'product\', array(
    \'labels\' => array(
        \'name\'      => __( \'Products\', \'jigoshop\' ),
        \'menu_name\' => _x( \'Products\', \'Admin menu name\', \'jigoshop\' ),
        // ...
更新:我打开了pull request on GitHub 因为WooCommerce的这些变化。Jigoshop的代码可能非常相似。

<小时>

Action to be taken by the plugin user:

加载带有菜单名称字符串特定翻译的自定义翻译mo文件。在采购订单文件中,条目如下所示:

msgctxt "Admin menu name"
msgid "Products"
msgstr "My Productzz"
要加载自定义翻译文件,您可以hook into the load_textdomain() function. 一个构建良好的插件还允许您将自定义翻译文件放入wp-content/languages/{plugin_name}/ 目录WooCommerce allows this, 我不确定Jigoshop的情况。

结束

相关推荐

将错误传递给ADMIN_NOTICES执行“快速编辑”/保存_POST操作

我目前有add_action(\'admin_notices\',\'my_notice_function\'); 无论何时刷新页面(检查某个页面是否有某个父页面),但使用“快速编辑”时,不会触发my admin\\u通知,因此都会正确更新。尝试将同一函数挂接到add_action(\'save_post\',\'my_notice_function\')); 它会中断格式化的表,并且不会以正常方式显示错误消息admin_notices 页面顶部的节。任何帮助都将不胜感激。目前的代码:public fun