是否为自定义帖子类型重命名管理菜单部分中的菜单项?

时间:2010-09-06 作者:NetConstructor.com

我觉得这是一只虫子。

创建新的自定义帖子类型时,似乎无法修改第一个子菜单项文本。我指的是允许您查看帖子列表的链接。

据我所知,它似乎只是复制了创建的主帖子类型菜单的名称。

是否有人知道如何修改此文本,以便主菜单元素显示“文章”,而帖子列表子菜单名称显示“管理文章”?

我的印象是"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;
  }
 }

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

您好,NetConstructor。com:

我想你已经问过这个问题了,我给了你一个答案,也可以回答这个问题:

  • Changing the Order of Admin Menu Sections?a library 您可以使用使与管理菜单的交互超级简单。以下是您在这个问题上实现既定目标所必须做的:

    <?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 answers provided on that question 这是您一周前提出的问题,但您尚未返回选定的任何答案作为正确答案。既然你在这里问了很多问题,我知道这并不是说你不在;一旦你有了可行的答案,请花时间为你的问题选择最佳答案,否则人们可能会失去继续回答的积极性。这是我要考虑的。。。

SO网友:Tom J Nowell

这是一个语义问题。

\'edit_item\'   => __(\'Edit Article\'),
这是您编辑文章时显示的内容,就像编辑文章一样,以单数形式显示在顶部标题中。“帖子”列表菜单项之所以称为“帖子”,而不是“编辑帖子”,是因为这会产生误导。

你可以做的不仅仅是编辑帖子,还可以删除和移动帖子等。页面或任何其他类型的帖子也是如此。这就是为什么区段菜单使用的相同字段也用于初始子菜单项的原因。这是有道理的。我说过没有什么能阻止你\'show_ui\' => true, 错误并自己实施。

然而,如果您确实想出于任何原因对其进行编辑,则需要为函数添加一个挂钩。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\');

结束

相关推荐

WP-ADMIN似乎正在重定向

我的w-admin登录有一个奇怪的问题。这是从我升级到3.0以后才开始的,当我转到wp admin时,登录表单显示正常,但当我输入用户名并通过时,每次都会再次显示登录表单。使用密码恢复功能会导致电子邮件未找到错误。我知道用户名密码和电子邮件是正确的,b/c我可以访问mysql数据库,我可以看到值(至少用户名和电子邮件) 有人知道会出什么问题吗