在自定义帖子类型上更改“在此处输入标题”帮助文本


20

我为目录创建了一个自定义帖子类型,该目录最终将按字母顺序排序。我将按标题的字母顺序对帖子进行排序,因此我想确保标题是姓氏/名字。有没有办法将我的自定义帖子中的默认帮助文本(“在此处输入标题”)更改为其他内容?


1
对于现在(从WordPress 3.1开始)正在关注此问题的人们,请查看以下一些较新的答案,以寻求更好的解决方案(更多“ WordPress Way”解决方案)。
汤姆·奥格

Answers:


21

无法显式自定义该字符串。但是它是通过翻译功能传递的,因此很容易过滤。

尝试这样的操作(不要忘记更改您的帖子类型):

add_filter('gettext','custom_enter_title');

function custom_enter_title( $input ) {

    global $post_type;

    if( is_admin() && 'Enter title here' == $input && 'your_post_type' == $post_type )
        return 'Enter Last Name, Followed by First Name';

    return $input;
}

4
使用过滤器enter_title_here
Pbearne '16

2
很好,但是请在下面查看新答案。
2016年

35

我知道我在这里参加聚会有点晚了,但是我想补充一下,该enter_title_here过滤器是专门为此目的而在WordPress v3.1中添加的。

add_filter( 'enter_title_here', 'custom_enter_title' );
function custom_enter_title( $input ) {
    if ( 'your_post_type' === get_post_type() ) {
        return __( 'Enter your name here', 'your_textdomain' );
    }

    return $input;
}

更改your_post_typeyour_textdomain匹配您自己的帖子类型名称和文本域。


5
小澄清。不需要进行is_admin()检查,因为此过滤器本身仅在管理区域中才会触发。如果出于某种原因您有一个前端表单,则很可能想无论如何都要应用此过滤器。
菲利普·唐纳

7

很抱歉从头开始挖掘这个问题,但是自WordPress 3.1起提供了一个更好的解决方案。该enter_title_here过滤器。

function change_default_title( $title ){
    $screen = get_current_screen();

    // For CPT 1
    if  ( 'custom_post_type_1' == $screen->post_type ) {
        $title = 'CPT1 New Title';

    // For CPT 2
    } elseif ( 'custom_post_type_2' == $screen->post_type ) {
        $title = 'CPT2 New Title';

    // For Yet Another CPT
    } elseif ( 'custom_post_type_3' == $screen->post_type ) {
        $title = 'CPT3 New Title';
    }
    // And, so on

    return $title;
}

add_filter( 'enter_title_here', 'change_default_title' );

2
新的建设性答案总是受欢迎的。
Pieter Goosen 2014年

这是正确的(现代)答案,但是Martin-Al的答案记得使用了gettext本地化包装器功能,因此也应仔细研究:wordpress.stackexchange.com/a/6819/3687
Tom Auger


2

获得所需标题格式的最佳方法是完全删除标题,并为带有适当标签的名称部分添加两个自定义字段。保存帖子后,请按PHP创建标题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.