it-swarm-es.com

¿Cómo cambiar el nombre del elemento del menú dentro de la sección del menú de administración para un tipo de publicación personalizada?

Tengo la sensación de que esto es un error.

Cuando creas un nuevo tipo de publicación personalizada, no parece posible modificar el primer texto del elemento del submenú. Me refiero al enlace que le permite ver la lista de mensajes.

Por lo que puedo decir, simplemente parece estar duplicando el nombre del menú principal de tipo de publicación que se creó.

¿Alguien sabe cómo modificar este texto para que pueda tener el elemento del menú principal que dice "Artículos" y el nombre del submenú de la lista de entradas para decir "Administrar artículos" ?

Tenía la impresión de que "edit_item" controlaría el texto que se mostrará en el submenú pero por alguna razón esto no se está registrando.

Aquí está el código que estoy usando actualmente:

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

Hola @ NetConstructor.com :

Creo que ya preguntaste sobre esto y te di una respuesta que también abordaría esta pregunta:

En esa respuesta te di una biblioteca que puedes usar para hacer que la interacción con los menús de administración sea muy fácil . Esto es lo que tendrías que hacer para lograr tu objetivo declarado en esta pregunta:

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

PD Por cierto, noté que hubo 4 respuestas proporcionadas en esa pregunta que pidió hace casi una semana, pero no ha regresado ninguna de las respuestas seleccionadas. Las respuestas como la respuesta correcta. Ya que ha estado aquí haciendo muchas preguntas, sé que no es como si no hubiera estado cerca; Tómese el tiempo para seleccionar la mejor respuesta para sus preguntas tan pronto como tenga una respuesta viable, de lo contrario, las personas podrían desmotivarse para seguir respondiendo. Algo que esto considere ...

1
MikeSchinkel

Este es un problema semántico.

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

Esto es lo que se muestra cuando edita el artículo, como en singular, al igual que la publicación de edición, en el título superior. La razón por la que el elemento del menú de la lista de 'publicaciones' se denomina 'publicaciones' y no 'editar publicaciones' es porque sería engañoso.

Puedes hacer más que solo editar publicaciones, puedes eliminarlas y moverlas, etc. Lo mismo ocurre con las páginas o con cualquier otro tipo de publicación que puedas tener. Por este motivo, el mismo campo que se usa para el menú de sección también se usa para el elemento del submenú inicial. Hay una lógica real en ello. Una vez dicho esto, no hay nada que le impida configurar 'show_ui' => true, en falso e implementarlo.

Sin embargo, si realmente desea editarlo por cualquier razón, deberá agregar un enlace a functions.php para procesar el menú posteriormente, buscando la entrada del submenú necesaria en la matriz y cambiando su nombre.

Algo en estas líneas haría, aunque puede necesitar alguna modificación:

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