Изменить формулировку пункта меню администратора?


Я использую плагин Jigoshop и я хотел бы изменить формулировку меню администратора на что-то другое, кроме "Продукты":

enter image description here

Как я могу это сделать? Какие файлы нуждаются в редактировании?

Author: Rob, 2012-06-06

4 answers

Внутри папки плагина проверьте наличие файла: jigoshop_taxonomy.php Номер строки: 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,
    )
);

Обновите его по мере необходимости.

 -3
Author: tamilsweet, 2016-10-13 10:39:19

Как было отмечено Гертом, вы не должны редактировать файлы подключаемых модулей: изменения будут переопределены обновлением (...и вам действительно следует обновлять свои подключаемые модули...). Самое лучшее, что можно сделать, это...

Попросите разработчиков плагинов добавить крючок для фильтрации метки

Для теперь однако вы можете сделать одну из двух вещей:

  • Используйте крючок, когда тип записи зарегистрирован, чтобы обновить объект типа записи
  • Воспользуйтесь тем фактом, что метка переводима

Способ 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;
}
 7
Author: Stephen Harris, 2012-06-07 07:19:32

Вы можете использовать плагин Редактор меню администратора .

 1
Author: marcochiesi, 2012-06-06 15:15:07

Хотя Ответ Стивена является отличным способом работы с текущей ситуацией, более чистое решение существовало бы, если бы разработчики плагина внесли простое изменение.


Действия, которые должны быть предприняты разработчиками плагинов:

Прежде всего, при регистрации типа записи вы должны установить метку menu_name. Эта метка специально используется для меню; если она не установлена, по умолчанию используется метка name.

При установке метки menu_name _x() следует использовать функцию перевода. Таким образом, переводчики могут предоставить конкретный перевод только для названия меню. В противном случае перевод "Продукты" будет применяться и к обычной этикетке name.

register_post_type('product', array(
    'labels' => array(
        'name'      => __( 'Products', 'jigoshop' ),
        'menu_name' => _x( 'Products', 'Admin menu name', 'jigoshop' ),
        // ...

Обновление: Я открыл запрос на вытягивание на GitHub для этих изменений в WooCommerce. Код Jigoshop, вероятно, очень похож.


Действие, которое должен предпринять пользователь плагина:

Загрузите пользовательский mo-файл перевода с конкретный перевод строки названия меню. В вашем po-файле запись будет выглядеть так:

msgctxt "Admin menu name"
msgid "Products"
msgstr "My Productzz"

Чтобы загрузить пользовательский файл перевода, вы можете подключиться к функции load_textdomain() . Хорошо построенный плагин также позволит вам помещать пользовательские файлы перевода в каталог wp-content/languages/{plugin_name}/. WooCommerce позволяет это, я не уверен насчет Jigoshop.

 0
Author: Geert, 2017-04-13 12:37:42