it-swarm.com.de

Wie kann ich den Seitentitel des Suchergebnisses anpassen?

Ich möchte den Seitentitel der Suchergebnisseite anpassen:

von:

<title>Search Results for “search string” – Page 2 – Sitename</title>

zu:

<title>“search string” result page – Page 2 – Sitename</title>

In meiner search.php-Vorlage ist get_header() wahrscheinlich diejenige, die aufgerufen wird, um das <title> -Tag zu generieren.

Gibt es einen Filter, den ich anwenden kann, um diese Anpassung vorzunehmen?

2
KDX

Innerhalb der Funktion wp_get_document_title() haben wir:

// If it's a search, use a dynamic search results title.
} elseif ( is_search() ) {
        /* translators: %s: search phrase */
        $title['title'] = sprintf( 
            __( 'Search Results for &#8220;%s&#8221;' ), 
            get_search_query() 
        );

sie können sich also in den document_title_parts-Filter einhängen, um ihn an Ihre Bedürfnisse anzupassen.

Beispiel:

/**
 * Modify the document title for the search page
 */
add_filter( 'document_title_parts', function( $title )
{
    if ( is_search() ) 
        $title['title'] = sprintf( 
            esc_html__( '&#8220;%s&#8221; result page', 'my-theme-domain' ), 
            get_search_query() 
        );

    return $title;
} );

Hinweis: Dies setzt voraus, dass Ihr Thema title-tag unterstützt.

Update:

Kann ich im selben Filter auch den Teil des Titels anpassen?

In Bezug auf den Teil page können Sie ihn auf ähnliche Weise anpassen:

/**
 * 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;
} );
3
birgire