Cómo cambiar el título de la página 404

8

He intentado muchos métodos después de buscar en Internet pero no puedo encontrar nada de mi título de la página 404 cómo hacerlo, por favor, ayúdenme

incluso nos tenemos esto en mi encabezado de página 404 if( is_404() ) echo '404 message goes here | '; else wp_title( '|', true, 'right' );

También ramove php función de título y cinco su propio encabezado pero todavía no cambian ¿por qué?

realcoder
fuente

Respuestas:

16

Yo usaría el wp_titlegancho de filtro:

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' );

Esto funcionará muy bien con otros complementos (por ejemplo, complementos de SEO) y será relativamente compatible con el reenvío ( próximamente se realizarán cambios en el título del documento ).

EDITAR

Si necesita anular un filtro de Complemento SEO, probablemente solo necesite agregar una prioridad más baja a su add_filter()llamada; por ejemplo, como sigue:

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

El valor por defecto es 10. Los números más bajos se ejecutan antes (por ejemplo, mayor prioridad), y los números más altos se ejecutan más tarde (por ejemplo, menor prioridad) Entonces, suponiendo que su plugin de SEO use la prioridad predeterminada (es decir 10), simplemente use un número que sea 11 o superior.

Chip Bennett
fuente
Gracias, eso no cambió debido a mi plugin de SEO, pero gracias por la respuesta :) Pero ahora tengo un problema más, mi página 404 da una respuesta de encabezado 404, ¿cómo puedo cambiar eso?
realcoder
El plugin de SEO casi seguramente está usando el wp_titlefiltro. Si necesita anularlo, agregue una prioridad a su add_filter()llamada. Ver respuesta actualizada.
Chip Bennett
Agregar una mayor prioridad hizo el truco para mí.
Alex
2

WordPress 4.4 y superior

La respuesta aceptada ya no funciona, ya que wp_titleestá en desuso en WordPress 4.4 y versiones posteriores ( ver aquí ). Ahora debemos usar el gancho de filtro document_title_parts en su lugar.

Aquí está la respuesta aceptada, reescrita para usar 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
fuente
0

El siguiente código funciona bien con el tema veintiocho:

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

Entonces el código del título se ve así:

<title>
<?php 

global $page, $paged;

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

?>
</title>
Dwaser
fuente
3
Yo recomiendo siempre la salida de <title>texto usando la wp_title()función, ya sea haciendo pasar un argumento, o utilizando el wp_titlegancho de filtro, de modo que el código juega muy bien con otros plugins que intentan modificar <title>el texto.
Chip Bennett
Gracias, eso no cambió debido a mi plugin de SEO, pero gracias por la respuesta :)
realcoder
Pero ahora tengo un problema más, mi página 404 da una respuesta de encabezado 404, ¿cómo puedo cambiar eso?
realcoder