web-dev-qa-db-ja.com

カスタム投稿タイプの「ここにタイトルを入力」ヘルプテキストを変更する

ディレクトリ用に作成されたカスタム投稿タイプがあり、その結果、アルファベット順に並べ替えられます。私はタイトルをアルファベット順にソートするので、タイトルが姓/名として入力されていることを確認します。カスタム投稿のデフォルトのヘルプテキスト「Enter Title Here」を変更する方法はありますか?

20
John Chandler

その文字列を明示的にカスタマイズする方法はありません。しかし、それは翻訳機能を通過するので、フィルタリングは簡単です。

このようなことを試してください(あなたの投稿タイプに変更することを忘れないでください):

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

私はここでパーティーに少し遅れていることを知っています、しかし私は 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を自分の投稿タイプ名とテキストドメインに合うように変更してください。

35
Dave Romsey

Graveからこの質問を掘り下げて申し訳ありませんが、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' );
6
Abhik

wp-admin/edit-form-advanced.php の246行目を見てください。 (329行、WP3.5以降)

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

必要なタイトル形式を取得する最善の方法は、タイトルを完全に削除し、適切なラベルを付けた名前部分に2つのカスタムフィールドを追加することです。投稿が保存されたら、PHPごとにタイトルを作成します。

2
fuxia