Cum să modifici titlul paginii 404

12 oct. 2011, 15:00:50
Vizualizări: 21.9K
Voturi: 10

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?

0
Toate răspunsurile la întrebare 3
3
17

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.

12 oct. 2011 16:19:54
Comentarii

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?

realcoder realcoder
12 oct. 2011 16:57:12

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.

Chip Bennett Chip Bennett
12 oct. 2011 18:56:37

Adăugarea unei priorități mai mari a funcționat pentru mine.

Alex Alex
21 apr. 2017 17:44:26
1

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' );
20 dec. 2017 18:15:09
Comentarii

Mulțumesc, știi dacă au schimbat ceva în WP 6.4? Nu reușesc să îl fac să funcționeze. Acest cod se pune în functions.php, corect?

Violet Giraffe Violet Giraffe
30 nov. 2023 12:42:38
3

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>
12 oct. 2011 16:03:33
Comentarii

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>.

Chip Bennett Chip Bennett
12 oct. 2011 16:20:53

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

realcoder realcoder
12 oct. 2011 16:56:58

Dar acum am încă o problemă - pagina mea 404 returnează un răspuns cu header 404. Cum pot schimba asta?

realcoder realcoder
12 oct. 2011 16:58:10