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

评论

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

#1 楼

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

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

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;
}


评论


在此处使用过滤器enter_title_here

–熊熊
16年1月18日在20:27

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

–马克
16-10-26在21:23

#2 楼

我知道我在这里参加聚会有点晚了,但是我想补充一下,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;
}

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

评论


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

– Philip Downer
13年2月9日在22:30

#3 楼

很抱歉从头开始挖掘这个问题,但是自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' );


评论


我们总是欢迎新的建设性答案。

–Pieter Goosen
2014年5月23日7:37

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

–汤姆·俄格(Tom Auger)
16 Dec 6'在16:55

#4 楼

在第246行(第329行,从WP3.5开始)中查看wp-admin/edit-form-advanced.php

<label class="screen-reader-text" id="title-prompt-text" for="title">
<?php echo apply_filters( 'enter_title_here', __( 'Enter title here' ), $post ); ?>
</label>


评论


需要明确的是,这是3.1中的新功能。

– Jan Fabry
2011-2-18 14:26

#5 楼

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