Wie man nur den Titel eines WordPress-Beitrags ändert, aber keine Menüpunkte.
add_filter('the_title', 'wordpress_title');
function wordpress_title(){
return 'New title';
}
Wenn Sie benutzerdefinierte Navigationsmenüs verwenden, können Sie dies ganz ohne Code tun. Gehen Sie zu Appearance
-> Menus
und ändern Sie die "Navigationsbezeichnung" für jeden Menüpunkt, den Sie anders gestalten möchten.
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;
}
Haben Sie diein_the_loop()
bedingte Prüfung versucht, um einen neuen Titel nur dann zurückzugeben, wenn er in der Schleife aufgerufen wird? Das bedeutet, dass Navigationsmenüs nicht beeinträchtigt werden.
<?php add_filter('the_title', function($title) { return '<b>'. $title. '</b>';}) ?>
Sie benötigen die richtigen Bedingungen:
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'];
}