web-dev-qa-db-ja.com

ワードプレスの投稿タイトルを変更するにはどうすればいいですか?

ワードプレスの投稿タイトルだけを変更し、メニュー項目は変更しない方法。

add_filter('the_title', 'wordpress_title');
function wordpress_title(){
  return 'New title';
}

enter image description here

3
qq3

カスタムナビゲーションメニューを使用している場合は、コードなしでこれを実行できます。 Appearance - > Menusに行き、違うメニュー項目の "Navigation Label"を変更してください。

1
SeventhSteel
add_filter('the_title', 'wordpress_title');
function wordpress_title($title){

    //Return new title if called inside loop
    if ( in_the_loop() )
        return 'New title';

    //Else return regular   
    return $title;

}

ループ内で呼び出された場合にのみ、in_the_loop()条件付きチェックで新しいタイトルを返すようにしましたか。つまり、ナビゲーションメニューは影響を受けません。

1
amit
<?php add_filter('the_title', function($title) { return '<b>'. $title. '</b>';}) ?> 
0
Mohit Bumb

あなたは正しい一連の連想が必要です。

  • ループの内側
  • 投稿のIDはURLのIDと一致します(少し複雑です)。
  • ・・・その他の任意条件

これをあなたのプラグインかテーマに入れてください:

add_filter( 'the_title', 'change_my_title');
function change_my_title ($title) {
    if ( in_the_loop() && get_the_ID() === url_to_postid(full_url($_SERVER))) {
        $title = $title . " added by plugin";
    }
    return $title;
}

// Function found here: http://stackoverflow.com/a/8891890/358906
function full_url($s) {
    $ssl = (!empty($s['HTTPS']) && $s['HTTPS'] == 'on') ? true:false;
    $sp = strtolower($s['SERVER_PROTOCOL']);
    $protocol = substr($sp, 0, strpos($sp, '/')) . (($ssl) ? 's' : '');
    $port = $s['SERVER_PORT'];
    $port = ((!$ssl && $port=='80') || ($ssl && $port=='443')) ? '' : ':'.$port;
    $Host = isset($s['HTTP_X_FORWARDED_Host']) ? $s['HTTP_X_FORWARDED_Host'] : isset($s['HTTP_Host']) ? $s['HTTP_Host'] : $s['SERVER_NAME'];
    return $protocol . '://' . $Host . $port . $s['REQUEST_URI'];
}
0
Nabil Kadimi