web-dev-qa-db-ja.com

Wp_titleから "Taxonomy name:"を削除する方法

カスタム分類アーカイブページのwp_titleで生成された<title>には、コロンを含む単数形の分類名が含まれています。私はこれがどこから来ているのか(あるいはそれがWordpressのデフォルトの振る舞いであるのか)理解できないので、それを取り除きたいのです。たとえば、 'Flavors'という分類法の用語 'Vanilla'のアーカイブページでは、<title>は次のようになります。

味:バニラ私のサイト名

タイトルにしてほしいのは単に

バニラ私のサイト名

Header.phpのコードは次のとおりです。

<title><?php wp_title('|', true, 'right'); ?></title>

Functions.phpにはwp_titleにフックされた関数が1つだけあり、それは分類名とは無関係に見えます。私はこれがどこから来ているのか、どうやってそれを取り除くのかわからない。

どうすればこれを削除できますか?

wp_title()? で生成されたタイトルから親の分類名を削除するにはどうすればいいですか?)

3
supertrue

出力を制御するために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 );
5
Mamaduka

私はあなたがあなたのすべてのタイトルを管理するために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;
}
0
chrisguitarguy