Cum să modifici titlul paginii 404
Am încercat mai multe metode după ce am căutat pe internet, dar nu reușesc să elimin "Nothing Found" din titlul paginii mele 404. Cum pot face acest lucru, vă rog să mă ajutați?
Am folosit chiar și acest cod în header-ul paginii 404:
if( is_404() ) echo '404 message goes here | ';
else wp_title( '|', true, 'right' );
Am eliminat și funcția PHP pentru titlu și am pus propriul meu header, dar tot nu se schimbă. De ce?

Aș folosi cârligul de filtrare wp_title
:
function theme_slug_filter_wp_title( $title ) {
if ( is_404() ) {
$title = 'ADAUGĂ TEXTUL TITLULUI PENTRU 404 AICI';
}
// Poți face alte filtrare aici, sau
// pur și simplu returnează $title
return $title;
}
// Conectează-te la cârligul de filtrare wp_title
add_filter( 'wp_title', 'theme_slug_filter_wp_title' );
Aceasta va funcționa bine cu alte plugin-uri (de ex. Plugin-uri SEO) și va fi relativ compatibilă în viitor (modificări la titlul documentului vor veni în curând).
EDITARE
Dacă trebuie să suprascrii un filtru al unui Plugin SEO, probabil că trebuie doar să adaugi o prioritate mai mică la apelul tău add_filter()
; de exemplu, astfel:
add_filter( 'wp_title', 'theme_slug_filter_wp_title', 11 );
Valoarea implicită este 10
. Numerele mai mici se execută mai devreme (adică au prioritate mai mare), iar numerele mai mari se execută mai târziu (adică au prioritate mai mică). Deci, presupunând că Plugin-ul tău SEO folosește prioritatea implicită (adică 10
), pur și simplu folosește un număr care este 11 sau mai mare.

Mulțumesc, asta nu se schimba din cauza pluginului meu de SEO, dar mulțumesc pentru răspuns :) Dar acum am încă o problemă pagina mea 404 oferă un răspuns header 404, cum pot schimba asta?

Pluginul de SEO folosește aproape sigur filtrul wp_title
. Dacă trebuie să îl suprascrieți, adăugați o prioritate la apelul vostru add_filter()
. Consultați actualizarea răspunsului.

WordPress 4.4 și versiuni superioare
Răspunsul acceptat nu mai funcționează deoarece wp_title
este învechit în WordPress 4.4 și versiuni superioare (vezi aici). Acum trebuie să folosim hook-ul de filtrare document_title_parts în schimb.
Iată răspunsul acceptat rescris pentru a utiliza document_title_parts
.
function theme_slug_filter_wp_title( $title_parts ) {
if ( is_404() ) {
$title_parts['title'] = 'ADAUGĂ TEXTUL TITLULUI PENTRU 404 AICI';
}
return $title_parts;
}
// Conectare la document_title_parts
add_filter( 'document_title_parts', 'theme_slug_filter_wp_title' );

Următorul cod funcționează corect cu tema Twenty Eleven:
if ( is_404() ) {
echo __('Nu s-a găsit nimic','mytheme')
}
Deci codul pentru titlu arată astfel:
<title>
<?php
global $page, $paged;
if ( is_404() ) {
echo __('Nu s-a găsit nimic | ','mytheme');
}
else {
wp_title( '|', true, 'right' );
}
?>
</title>

Eu recomand cu tărie să folosești întotdeauna funcția wp_title()
pentru afișarea textului din <title>
, fie prin transmiterea unui argument, fie folosind hook-ul de filtrare wp_title
, astfel încât codul să funcționeze corect cu alte plugin-uri care încearcă să modifice textul din <title>
.

Mulțumesc, nu se schimba din cauza plugin-ului meu de SEO, dar apreciez răspunsul :)
