Post Type Label Name

时间:2011-03-27 作者:Vitor Argos

我刚刚创建了一个新的帖子类型。它的名字是Academias,所以第一个菜单选项也是Academias。但我想把它改成“看所有的学院”(只是一个例子),这可能吗?

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

功能register_post_type() 接受参数\'labels\'. 这是一个数组,其中一个可能的键名为…tada…\'menu_name\'.

示例代码

register_post_type(
    \'academias\'
,   array (
        \'can_export\'          => TRUE
    ,   \'exclude_from_search\' => FALSE
    ,   \'has_archive\'         => TRUE
    ,   \'hierarchical\'        => TRUE
    ,   \'label\'               => \'Academias\'
    ,   \'labels\'              => array ( \'menu_name\' => \'See All Academias\' )
    ,   \'menu_position\'       => 5
    ,   \'public\'              => TRUE
    ,   \'publicly_queryable\'  => TRUE
    ,   \'query_var\'           => \'academias\'
    ,   \'rewrite\'             => array ( \'slug\' => \'academias\' )
    ,   \'show_ui\'             => TRUE
    ,   \'show_in_menu\'        => TRUE
    ,   \'show_in_nav_menus\'   => TRUE
    ,   \'supports\'            => array ( \'editor\', \'title\' )
    )
);
更新现在,我已经更好地理解了你的问题,似乎只有一种方法可以实现你想要的:加入attribute_escape.

测试插件

<?php
/*
Plugin Name: *WPSE13210
*/
! defined( \'ABSPATH\' ) and exit;

add_action( \'init\', \'register_academia\' );

/**
 * Registers te post type academias
 *
 * @return void
 */
function register_academia()
{
    register_post_type(
        \'academias\'
    ,   array (
            \'can_export\'          => TRUE
        ,   \'exclude_from_search\' => FALSE
        ,   \'has_archive\'         => TRUE
        ,   \'hierarchical\'        => TRUE
        ,   \'label\'               => \'Academias\'
        ,   \'labels\'              => array (
                \'menu_name\' => \'See All Academias\'
            ,   \'name\' => \'Academias\'
            )
        ,   \'menu_position\'       => 5
        ,   \'public\'              => TRUE
        ,   \'publicly_queryable\'  => TRUE
        ,   \'query_var\'           => \'academias\'
        ,   \'rewrite\'             => array ( \'slug\' => \'academias\' )
        ,   \'show_ui\'             => TRUE
        ,   \'show_in_menu\'        => TRUE
        ,   \'show_in_nav_menus\'   => TRUE
        ,   \'supports\'            => array ( \'editor\', \'title\' )
        )
    );
}

add_filter( \'attribute_escape\', \'rename_second_menu_name\', 10, 2 );

/**
 * Renames the first occurence of \'See All Academias\' to \'Academias\'
 * and deactivates itself then.
 * @param $safe_text
 * @param $text
 */
function rename_second_menu_name( $safe_text, $text )
{
    if ( \'See All Academias\' !== $text )
    {
        return $safe_text;
    }

    // We are on the main menu item now. The filter is not needed anymore.
    remove_filter( \'attribute_escape\', \'rename_second_menu_name\' );

    return \'Academias\';
}

不是很优雅,但至少有一个解决方案…

2010年5月12日更新ticket 17378 新参数all_items 已提议。一旦它成为核心的一部分,应该会工作得更好…

结束

相关推荐

Posts wont expire

我在安排帖子自动过期(要么删除,要么起草)方面遇到了一些麻烦,我尝试过的每个插件都没有做任何事情,当它达到预定时间时,什么都没有发生,这让我觉得这可能是我一直忽视的一件简单的事情。。我想我可能对wp-cron有问题,但我似乎在通过wordPress设置未来的发布日期方面没有任何问题。我运行了最新版本的Wordpress,并设置了多个站点。所有插件都是目前可用的最新版本。有人有什么想法吗??我没有东西可以尝试了。。。提前感谢塔夫芝