カテゴリアーカイブでは、カテゴリタイトルとは異なるタイトルを表示したいのですが。
この目的のためにif文を使って関数を作成しました。
function category_titles_change() {
if (is_category('name1')) { ?>
new title 1
<?php }
elseif (is_category('name2')) { ?>
new title 2
<?php }
elseif (is_category('name3')) { ?>
new title 3
<?php }
}
これを使用して<title></title>
に表示されている<head></head>
を変更する方法
私はこれを試しました:
function head_category_titles_change() {
if (is_category()) { ?>
<title>
<?php category_titles_change(); ?>
</title>
<?php }}
add_action( 'wp_head', 'head_category_titles_change' );
しかし、これはデフォルトのタイトルに加えて2番目の<title>
を<head>
に広告します。カテゴリアーカイブのデフォルトのタイトルを希望のタイトルに置き換えるにはどうすればよいですか。
よくこの質問を投稿した後私はこれをやったこの質問をありがとう
function category_title( $title ){
if( is_category('name1') ){
$title = 'name1 title';
}elseif( is_category('name2') ){
$title = 'name2 title';
}
return $title;
}
add_filter( 'get_the_archive_title', 'category_title' );
お役に立てれば
あなたはwp_head
アクションを使うべきではありません - それはあなたにすでに印刷されているタイトルを修正する機会をあなたに与えません。しかしWordPressにはそのための特別なフックがあります: wp_title
。
以下のコードでうまくいくはずです。
function my_change_category_title( $title, $sep ) {
if ( is_category('name1') ) {
return 'Cat 1 title';
}
if ( is_category('name2') ) {
return 'Cat 2 title';
}
...
return $title;
}
add_filter( 'wp_title', 'my_change_category_title', 10, 2 );
同じフィルタ関数で pre_get_document_title
フックを使ってみることもできます。