検索結果ページのページタイトルをカスタマイズしたいです。
から:
<title>Search Results for “search string” – Page 2 – Sitename</title>
に:
<title>“search string” result page – Page 2 – Sitename</title>
私のsearch.phpテンプレートでは、get_header()
はおそらく<title>
タグを生成するために呼び出されているものです。
このカスタマイズをするために私がそれに適用できるフィルタがありますか?
wp_get_document_title()
関数内には、次のものがあります。
// 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()
);
それであなたはそれをあなたの好みに合わせるためにdocument_title_parts
フィルタにフックすることができます。
例:
/**
* 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;
} );
注: これはあなたのテーマがtitle-tag
をサポートしていることを前提としています。
更新:
同じフィルタでタイトルの一部もカスタマイズできますか?
page 部分に関しては、以下のようにしてそれを調整することができます。
/**
* 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;
} );