J'aimerais personnaliser le titre de la page de résultats de recherche:
de:
<title>Search Results for “search string” – Page 2 – Sitename</title>
à:
<title>“search string” result page – Page 2 – Sitename</title>
Dans mon modèle search.php, get_header()
est probablement celui appelé pour générer la balise <title>
.
Existe-t-il un filtre que je peux lui appliquer pour effectuer cette personnalisation?
Dans la fonction wp_get_document_title()
, nous avons:
// If it's a search, use a dynamic search results title.
} elseif ( is_search() ) {
/* translators: %s: search phrase */
$title['title'] = sprintf(
__( 'Search Results for “%s”' ),
get_search_query()
);
vous pouvez donc vous connecter au filtre document_title_parts
pour l’ajuster à vos besoins.
Exemple:
/**
* Modify the document title for the search page
*/
add_filter( 'document_title_parts', function( $title )
{
if ( is_search() )
$title['title'] = sprintf(
esc_html__( '“%s” result page', 'my-theme-domain' ),
get_search_query()
);
return $title;
} );
Remarque: Cela suppose que votre thème prend en charge title-tag
.
Mettre à jour:
Puis-je également personnaliser la partie du titre dans le même filtre?
En ce qui concerne la partie page , vous pouvez l’ajuster de la même manière avec:
/**
* Modify the page part of the document title for the search page
*/
add_filter( 'document_title_parts', function( $title ) use( &$page, &$paged )
{
if ( is_search() && ( $paged >= 2 || $page >= 2 ) && ! is_404() )
$title['page'] = sprintf(
esc_html__( 'This is %s page', 'my-theme-domain' ),
max( $paged, $page )
);
return $title;
} );