ワードプレスの投稿タイトルだけを変更し、メニュー項目は変更しない方法。
add_filter('the_title', 'wordpress_title');
function wordpress_title(){
return 'New title';
}
カスタムナビゲーションメニューを使用している場合は、コードなしでこれを実行できます。 Appearance
- > Menus
に行き、違うメニュー項目の "Navigation Label"を変更してください。
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()
条件付きチェックで新しいタイトルを返すようにしましたか。つまり、ナビゲーションメニューは影響を受けません。
<?php add_filter('the_title', function($title) { return '<b>'. $title. '</b>';}) ?>
あなたは正しい一連の連想が必要です。
これをあなたのプラグインかテーマに入れてください:
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'];
}