wp_title() でタイトルを取得できない。WordPressテーマを自主制作

テーマを作成してみているのですがタイトルが出ず困りました。

以下のコードをheader.phpに書いておりました。

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

実際の表示をブラウザで見てみると以下のようになっており、タイトルが行方不明です。

<title></title>

困ってググるとwp_title()は非推奨ややっぱりwp_title()というような記事を見かけ、結局どうしたらいいかわからず。呼んでもついていけなかったのでメモを残します。

やりたいこと

やりたいことはサイトの名前を表示したい。それだけです。
後々はタイトルとページ名を表示させたいと思っていますが、まずタイトルをどこで取得してくるのかがわからず詰んでいます。

解決策

解決したコードは以下です。

サイトタイトルのみを表示

<title>
<?php bloginfo('name'); ?>
</title>

bloginfo('name'); はダッシュボードの「設定」→「一般設定」→「サイトのタイトル」にあたる部分を表示してくれます。

目標達成ですが、やはりページタイトルも表示させたい。

ページタイトルとサイトタイトルを表示

トップページは上記でいいものの、ページに移った時にタイトルをページのタイトルに変えたいなと奮闘。参考記事のコードを使うとアーカイブもページもシングルも全て記事タイトルとサイトタイトルを追加できたので採用させていただきました。

<title>
<?php wp_title(' '); ?><?php if(wp_title(' ', false)) { echo ' | '; } ?><?php bloginfo('name'); ?>
</title>

トップページの時は「サイトタイトル」のみ、記事ページへ行けば「記事タイトル|サイトタイトル」のように表示されるようになりました。

正直、前半部分はよくわかっていないので、詳細は参考元をお読みいただければと思います。
(雰囲気タイトルを取ってきていて、取れなかったら非表示のような動き)

参考記事:How to Generate Perfect WordPress Title Tags without a Plugin

おわり

WordPress久しぶりに触ったら忘れていたり、バージョンの変化もありで大混乱です。
ただググると情報が見つかるのでまだ致命的ではなくなんとか開発できています。
情報が多くて開発しやすいのはありがたいですね。

Wordpress

Posted by Nakamoto