カスタム分類アーカイブページのwp_titleで生成された<title>
には、コロンを含む単数形の分類名が含まれています。私はこれがどこから来ているのか(あるいはそれがWordpressのデフォルトの振る舞いであるのか)理解できないので、それを取り除きたいのです。たとえば、 'Flavors'という分類法の用語 'Vanilla'のアーカイブページでは、<title>
は次のようになります。
味:バニラ私のサイト名
タイトルにしてほしいのは単に
バニラ私のサイト名
Header.phpのコードは次のとおりです。
<title><?php wp_title('|', true, 'right'); ?></title>
Functions.phpにはwp_titleにフックされた関数が1つだけあり、それは分類名とは無関係に見えます。私はこれがどこから来ているのか、どうやってそれを取り除くのかわからない。
どうすればこれを削除できますか?
( wp_title()? で生成されたタイトルから親の分類名を削除するにはどうすればいいですか?)
出力を制御するためにwp_title
フィルタを使う
function mamaduka_remove_tax_name( $title, $sep, $seplocation ) {
if ( is_tax() ) {
$term_title = single_term_title( '', false );
// Determines position of separator
if ( 'right' == $seplocation ) {
$title = $term_title . " $sep ";
} else {
$title = " $sep " . $term_title;
}
}
return $title;
}
add_filter( 'wp_title', 'mamaduka_remove_tax_name', 10, 3 );
私はあなたがあなたのすべてのタイトルを管理するためにSEOプラグインを使うことを勧めます。 WordPress SEO Yoastによると非常に良いです。
あるいは、wp_title
にフィルタを追加して出力を変更することもできます。
<?php
add_filter( 'wp_title', 'wpse29020_fix_title', 10, 3 );
function wpse29020_fix_title( $title, $sep, $seplocation )
{
// If this isn't our flavors taxonomy, just return the title
if( ! is_tax( 'flavors' ) ) return $title;
// Get the term
$obj = get_queried_object();
// Get the terms name
$name = sanitize_term_field( 'name', $obj->name, $obj->term_id, 'flavors', 'display' );
// construct the title
$title = $name . " $sep " . bloginfo( 'name' );
return $title;
}