it-swarm-ru.tech

Переименование пункта меню в разделе меню администратора для пользовательского типа сообщения?

У меня такое чувство, что это ошибка.

Когда вы создаете новый пользовательский тип записи, кажется невозможным изменить текст первого элемента подменю. Я имею в виду ссылку, которая позволяет просматривать список сообщений.

Для того, что я могу сказать, это, кажется, дублирует имя имени основного меню типа сообщения, которое было создано.

Кто-нибудь знает, как изменить этот текст так, чтобы я мог иметь элемент главного меню с надписью "Статьи" и название подменю списка сообщений, чтобы сказать "Управление статьями" ?

У меня сложилось впечатление, что "edit_item" будет контролировать текст, который будет отображаться в подменю te, но по какой-то причине это не регистрируется.

Вот код, который я сейчас использую:

//////////////////////////////////////////////////////////////////////////////
// CUSTOM POSTTYPE FOR -- ARTICLES  
//////////////////////////////////////////////////////////////////////////////

add_action('init', 'articles');
function articles() {
 register_post_type('articles', array(
  'labels' => array(
   'name'   => __('Articles'),
   'singular_label'  => __('Article'),
   'new_item'   => __('Add Article'),
   'add_new'   => __('Add Article'),
   'add_new_item'  => __('Add Article'),
   'edit'   => __('Edit Article'),
   'edit_item'   => __('Edit Article'),
   'view'   => __('View Article'),
   'view_item'   => __('View Article'),
   'search_items'  => __('Search Articles'),
   'not_found'   => __('No Articles Found'),
   'not_found_in_trash' => __('No Articles Found in Trash'),
   ),
  'supports' => array(
   'thumbnail',
   'title',
   'editor',
   'author',
   'revisions',
   ),
  'rewrite' => array( 
   'slug'   => 'articles', 
   'with_front'   => false,
   ),
  'rewrite'    => true,
  'can_export'    => true,
  'show_ui'    => true,
  'menu_position'   => 3,
  'public'    => true,
  'query_var'    => true,
  'publicly_queryable'  => true,
  'exclude_from_search'  => false,
  'capability_type'   => 'post',
  'hierarchical'   => false,
 ));
 }


add_filter('manage_edit-articles_columns', 'add_new_articles_columns');
function add_new_articles_columns($articles_columns) {
 $new_columns['cb']     = '<input type="checkbox" />';
 $new_columns['article_thumbnail']   = _x('Image', 'column name');
 $new_columns['title']    = _x('Article Title', 'column name');
 $new_columns['article_excerpt']   = _x('Article Excerpt', 'column name');
 $new_columns['article_source']   = _x('Article Source', 'column name');
 $new_columns['author']    = __('Created by');
 $new_columns['date']    = _x('Last Action', 'column name');
 return $new_columns;
 }
add_action('manage_posts_custom_column', 'manage_articles_columns', 10, 2);
function manage_articles_columns($column_name, $id) {
 global $wpdb;
 switch ($column_name) { 
  case 'article_thumbnail':  
   the_post_thumbnail( array(50,50) );
   break; 
  case 'article_excerpt': echo substr(get_the_excerpt(),0,500); 
   break;
  case 'article_source':
         echo get_the_term_list($post->ID, 'content_sources', '', ', ','');
   break;
  default: break;
  }
 }
3
NetConstructor.com

Привет @ NetConstructor.com :

Я думаю, что вы уже спрашивали об этом, и я дал вам ответ, который бы ответил и на этот вопрос:

В этом ответе я дал вам библиотеку , которую вы можете использовать для упрощения взаимодействия с меню администратора. , Вот что вам нужно сделать, чтобы достичь поставленной цели в этом вопросе:

<?php
require_once('wp-admin-menu-classes.php');
add_action('admin_menu','my_admin_menu');
function my_admin_menu() {
  rename_admin_menu_section('Articles','Manage Articles');`  
}

Постскриптум Кстати, я заметил, что было предоставлено 4 ответа на этот вопрос , который вы задали почти неделю назад, но вы не вернулись ни к одному из ответы как правильный ответ. Так как вы здесь задавали много вопросов, я знаю, что вы не были рядом; пожалуйста, найдите время, чтобы выбрать лучший ответ на ваши вопросы, как только у вас будет жизнеспособный ответ, в противном случае люди могут потерять мотивацию продолжать отвечать. Что-то это считают ...

1
MikeSchinkel

Это проблема семантики.

'edit_item'   => __('Edit Article'),

Это то, что отображается при редактировании статьи, как в единственном числе, так же, как редактирование поста, в верхнем заголовке. Причина, по которой пункт меню "сообщения" называется "сообщения", а не "редактировать сообщения", заключается в том, что это может ввести в заблуждение.

Вы можете делать больше, чем просто редактировать посты, вы можете удалять и перемещать их и т.д. То же самое относится и к страницам, или к любым другим типам постов, которые у вас могут быть. Вот почему то же поле, которое используется для меню раздела, используется и для начального пункта подменю. В этом есть реальная логика. Сказав, что ничто не мешает вам установить 'show_ui' => true, в false и реализовать это самостоятельно.

Однако, если вы действительно захотите отредактировать его по какой-либо причине, вам потребуется добавить хук к functions.php для последующей обработки меню путем поиска необходимой записи подменю в массиве и изменения его имени.

Что-то в этом направлении подойдет, хотя может потребоваться некоторая модификация:

function edit_menus() {
    global $menu;
    end ($menu);
    while (prev($menu)){
        $value = explode(' ',$menu[key($menu)][0]);
        if(strpos($menu[key($menu)], "menu name" )){
            $menu[key($menu)] = str_replace("menu name", "newmenuname", $menu[key($menu)]);
            break;
        }
    }
}
add_action('admin_menu', 'edit_menus');
2
Tom J Nowell