web-development-kb-pt.site

Renomeando o item de menu na seção Menu do administrador para um tipo de postagem personalizada?

Eu tenho a sensação de que isso é um erro.

Quando você cria um novo tipo de postagem personalizada, não parece possível modificar o texto do item do primeiro submenu. Estou me referindo ao link que permite visualizar a lista de postagens.

Para o que eu posso dizer, parece estar duplicando o nome do nome do principal tipo de menu que foi criado.

Alguém sabe como modificar este texto para que eu possa ter o elemento de menu principal diz "Artigos" e o nome do submenu da lista de postagens para dizer "Gerenciar Artigos"

Fiquei com a impressão de que "edit_item" controlaria o texto a ser exibido no submenu, mas por algum motivo isso não está sendo registrado.

Aqui está o código que estou usando atualmente:

//////////////////////////////////////////////////////////////////////////////
// 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

Oi @ NetConstructor.com :

Eu acho que você já perguntou sobre isso e eu te dei uma resposta que iria abordar essa questão também:

Nessa resposta eu te dei uma biblioteca que você pode usar para fazer interagir com os menus do admin super fácil . Veja o que você precisa fazer para atingir sua meta declarada nesta questão:

<?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');`  
}

P.S. BTW, notei que havia 4 respostas fornecidas sobre essa questão que você pediu há quase uma semana, mas você não voltou um selecionado qualquer um dos respostas como a resposta correta. Desde que você esteve aqui fazendo muitas perguntas, eu sei que não é como se você não estivesse por perto; por favor, reserve um tempo para selecionar a melhor resposta para suas perguntas assim que tiver uma resposta viável, caso contrário as pessoas podem ficar desmotivadas para continuar respondendo. Algo isso considera ...

1
MikeSchinkel

Este é um problema semântico.

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

Isto é o que é exibido quando você edita o artigo, como no singular, assim como o post de edição, no título superior. A razão pela qual o item de menu de listagens de 'postagens' é chamado de 'postagens' e não 'editar mensagens' é porque isso seria enganoso.

Você pode fazer mais do que apenas editar postagens, excluí-las e movê-las, etc. O mesmo vale para páginas, ou qualquer outro tipo de postagem que você possa ter. É por isso que o mesmo campo usado para o menu de seção é usado para o item de submenu inicial também. Existe uma lógica real para isso. Tendo dito que não há nada que o impeça de configurar 'show_ui' => true, para false e implementá-lo você mesmo.

No entanto, se você realmente quisesse editá-lo por qualquer motivo, você precisaria adicionar um hook ao functions.php para processar o menu depois, procurando a entrada de submenu necessária na matriz e alterando seu nome.

Algo ao longo destas linhas faria, embora possa precisar de alguma modificação:

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