こんにちは、オトナ帝国です。
今回はアーカイブ関連のページについてのtitle問題を解決したかった件について。
wp_title()関数でheader.php内で表現していたのですが、Wordpressそもそもの仕様にかなり振り回されて、、何とも言えない感じになってました。
そもそも、何が問題かというと、主にカスタム投稿系のページなんですよね。
例えば、カスタム投稿タイプ「test」というものが作られた場合にどうなるのか、今までは下記のソースでやってました。
//phpファイル
<title>
<?php
global $page, $paged;
if (is_post_type_archive('test')) : //testアーカイブページ
wp_title('テスト|', true, 'right');
bloginfo('name');
?>
</title>
bloginfo('name');はここでは「オトナ帝国」になるので、ここで目指したい形は下記になります。
テスト|オトナ帝国
がタイトルで実現したい内容でした。
が、実際には
test テスト|オトナ帝国
となってしまいました。
カスタム投稿名のtestもくっついてきちゃうんですよね・・・困った通り越してうっとうしい・・
JSで無理やりtitleの文字列を変えることもできるのですが、そもそもブラウザ上で動かす領域ではないので、あまり気乗りしない・・
あ、そうだそもそも作りから変えていこうと思います。
まとめると、Wordpressの仕様に振り回されずに自由にタイトル設定を行いたいがやりたいことです!
そもそもwp_title()関数なんて使わなければいいか、となりました。よくよく調べてみると、非推奨の時期もあったようなので、この関数をまず諦めることにしました。
//phpファイル
<title>
<?php
global $page, $paged;
if (is_post_type_archive('test')) : //testアーカイブページ
echo("Topics|");
bloginfo('name');
elseif (is_tax("testTaxonomy", "testSlug")) : //testSlugアーカイブページ
echo("好きな文字列|");
bloginfo('name');
?>
</title>
echo()で文字列呼び出す、だと何か問題があるのだろうか、いやないとなりました(笑)
で、分岐の定義をしっかり行うことでやりたいことは解決するという判断です。
カスタム投稿タイプ:testは下記になります。
//phpファイル
if (is_post_type_archive('test')) : //testアーカイブページ
カスタム投稿のタクソノミー名:testTaxonomy・スラッグ:testSlugの場合下記になります。
//phpファイル
if (is_tax("testTaxonomy", "testSlug")) : //testSlugアーカイブページ
今回はアーカイブページのtitleの設定関連をまとめました。wp_title()関数はどうも非推奨みたいな話もあるみたいですね。そうでない話もありました。
いずれにせよ、少しwp_title()関数の中身を動かしに行く手法も考えたのですが、デフォルトの関数はあまりいじらないほうがいいので、今回は少しひねって解決しました。
もちろんfunction.phpをいじっていく方法もあると思いますが、個人的にはこっちのほうが簡単&function.phpは影響範囲が広いことを鑑みると、、こっちのほうがいいのかなと思います。
何かの参考になれば幸いです。
それでは~★
オトナ帝国では、昔のゲームなどの懐かしい体験ができる秘密基地を運営中。
浅草葦拠点では現在セールを実施しています。お部屋の詳細だけでも見てください~