So ändern Sie den 404-Seitentitel

8

Ich habe viele Methoden ausprobiert, nachdem ich im Internet gesucht habe, aber nicht in der Lage war, nichts zu finden

Sogar ich habe uns dies in meinem 404-Seiten-Header if( is_404() ) echo '404 message goes here | '; else wp_title( '|', true, 'right' );

Ich habe auch die PHP-Titelfunktion und fünf eigene Header, aber immer noch nicht geändert, warum?

Realcoder
quelle

Antworten:

16

Ich würde den wp_titleFilterhaken verwenden:

function theme_slug_filter_wp_title( $title ) {
    if ( is_404() ) {
        $title = 'ADD 404 TITLE TEXT HERE';
    }
    // You can do other filtering here, or
    // just return $title
    return $title;
}
// Hook into wp_title filter hook
add_filter( 'wp_title', 'theme_slug_filter_wp_title' );

Dies funktioniert gut mit anderen Plugins (z. B. SEO-Plugins) und ist relativ vorwärtskompatibel ( Änderungen am Dokumenttitel folgen in Kürze ).

BEARBEITEN

Wenn Sie einen SEO-Plugin-Filter überschreiben müssen, müssen Sie Ihrem Anruf wahrscheinlich nur eine niedrigere Priorität hinzufügen add_filter(). zB wie folgt:

add_filter( 'wp_title', 'theme_slug_filter_wp_title', 11 );

Der Standardwert ist 10. Niedrigere Zahlen werden früher ausgeführt (z. B. höhere Priorität) und höhere Zahlen werden später ausgeführt (z . B. niedrigere Priorität). Angenommen, Ihr SEO-Plugin verwendet die Standardpriorität (dh 10), verwenden Sie einfach eine Zahl, die 11 oder höher ist.

Chip Bennett
quelle
Danke, das hat sich aufgrund meines SEO-Plugins nicht geändert, aber danke für die Antwort :) Aber jetzt habe ich noch ein Problem. Meine 404-Seite gibt eine 404-Header-Antwort. Wie kann ich das ändern?
Realcoder
Das SEO Plugin verwendet mit ziemlicher Sicherheit den wp_titleFilter. Wenn Sie es überschreiben müssen, fügen Sie Ihrem Anruf eine Priorität hinzuadd_filter() . Siehe Antwortaktualisierung.
Chip Bennett
Das Hinzufügen einer höheren Priorität hat den Trick für mich getan.
Alex
2

WordPress 4.4 und höher

Die akzeptierte Antwort funktioniert nicht mehr, da wp_titlesie in WordPress 4.4 und höher veraltet ist ( siehe hier ). Wir müssen jetzt stattdessen den Filter-Hook document_title_parts verwenden.

Hier wird die akzeptierte Antwort zur Verwendung umgeschrieben document_title_parts.

function theme_slug_filter_wp_title( $title_parts ) {
    if ( is_404() ) {
        $title_parts['title'] = 'ADD 404 TITLE TEXT HERE';
    }

    return $title_parts;
} 

// Hook into document_title_parts
add_filter( 'document_title_parts', 'theme_slug_filter_wp_title' );
Swen
quelle
0

Der folgende Code funktioniert gut mit dem Thema elfundzwanzig:

if ( is_404() ) { 
  echo __('Nothing Found','mytheme')
}

Der Titelcode sieht also wie folgt aus:

<title>
<?php 

global $page, $paged;

if ( is_404() ) { 
  echo __('Nothing Found | ','mytheme');
}
else {
  wp_title( '|', true, 'right' );
} 

?>
</title>
Dwaser
quelle
3
Ich empfehle dringend, immer <title>Text mit der wp_title()Funktion auszugeben , entweder durch Übergeben eines Arguments oder mithilfe des wp_titleFilter-Hooks, damit der Code gut mit anderen Plugins funktioniert, die versuchen, <title>Text zu ändern .
Chip Bennett
Danke, das hat sich wegen meines SEO-Plugins nicht
geändert,
Aber jetzt habe ich noch ein Problem. Meine 404-Seite gibt eine 404-Header-Antwort. Wie kann ich das ändern?
Realcoder