Como alterar o título da página 404


8

Eu tentei muitos métodos depois de pesquisar na internet, mas não consegui extrair nada encontrado no título da página 404, como fazê-lo, por favor me ajude

mesmo eu tenho isso no meu cabeçalho de página 404 if( is_404() ) echo '404 message goes here | '; else wp_title( '|', true, 'right' );

Eu também ramove função de título php e cinco seu próprio cabeçalho, mas ainda não está mudando por quê?

Respostas:


16

Eu usaria o 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' );

Isso funcionará bem com outros plug-ins (por exemplo, SEO Plugins) e será relativamente compatível com o futuro (as alterações no título do documento estão chegando em breve ).

EDITAR

Se você precisar substituir um filtro de SEO Plugin, provavelmente precisará adicionar uma prioridade mais baixa à sua add_filter()chamada; por exemplo:

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

O padrão é 10. Números mais baixos são executados mais cedo (por exemplo, prioridade mais alta ) e números mais altos são executados mais tarde (por exemplo, prioridade mais baixa ). Portanto, supondo que o seu SEO Plugin use a prioridade padrão (ou seja 10), basta usar um número 11 ou superior.


Obrigado que não estava mudando por causa do meu plugin seo, mas obrigado pela resposta :) Mas agora eu tenho mais um problema, minha página 404 dá uma resposta no cabeçalho 404, como posso mudar isso?
realcoder

O plugin SEO está quase certamente usando o wp_titlefiltro. Se você precisar substituí-lo, adicione uma prioridade à sua add_filter()chamada. Veja a atualização da resposta.
Chip Bennett

Adicionar uma prioridade mais alta fez o truque para mim.
Alex

2

WordPress 4.4 e superior

A resposta aceita não funciona mais, pois wp_titleestá obsoleta no WordPress 4.4 ou superior ( veja aqui ). Agora devemos usar o gancho de filtro document_title_parts .

Aqui está a resposta aceita reescrita para uso 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' );

0

O código a seguir funciona bem com o tema vinte e onze:

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

Portanto, o código do título se parece com o seguinte:

<title>
<?php 

global $page, $paged;

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

?>
</title>

3
Eu recomendo sempre a saída de <title>texto usando a wp_title()função, passando um argumento ou usando o wp_titlegancho de filtro, para que o código funcione bem com outros plugins que tentam modificar o <title>texto.
Chip Bennett

Graças que não foi mudando por causa da minha seo plugin, mas obrigado pela resposta :)
realcoder

Mas agora eu tenho mais um problema, minha página 404 dá resposta ao cabeçalho 404, como posso mudar isso?
realcoder
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.