Twenty Sixteen で、キャッチフレーズをタイトルから消す

[投稿日] 2016年5月19日
[最終更新] 2016年8月3日

現在のWordPressでデフォルトとなっているTwenty Sixteenでは、フロントページのタイトルが「サイト名 – キャッチフレーズ」となっています。キャッチフレーズが長いと、titleが無駄に長くなり、不都合がある場合もあります。他テーマだと、header.phpやらfunction.phpやらをいじればよいことが多いようですが、Twenty Sixteenではwp-includesにある関数をいじる必要があるようです。

スポンサーリンク

やり方

具体的には、wp-includes/general-template.phpにあるwp_get_document_title関数内にある、1008行目あたりの、以下の部分をコメントアウトします。

       // Append the description or site title to give context.
if ( is_front_page() ) {
// ここの部分をコメントアウト
//              $title['tagline'] = get_bloginfo( 'description', 'display' );
} else {
$title['site'] = get_bloginfo( 'name', 'display' );
}

名前が一般的なテンプレートですので、このテンプレートを利用する他のテーマにも影響があるだろうと思います。それがどれだけあるのかは、わかりませんが。

また、WordPressをアップデートした場合も初期化されますので、ご注意を。

ここに至るまでの軌跡

ここに至るまでの軌跡について書きます。というのは、WordPressはけっこう更新が激しいせいか、ディレクトリ構成などの変化も激しく、検索した情報がどれも古くて直接は使えなかったからです。ですが、探し方自体はそう変わるものでもありませんので、苦労の軌跡を書いておくことは、無駄ではなかろうと思います。以下、興味ある方だけどうぞ。

header.phpを調べる

まずは、Twenty Sixteenのheader.phpを調べました。これのheadタグを記述する部分に、それらしいものはないかと思ったのです。ソースコードと照らしあわせながら見ると、微妙ですが、可能性があるとすれば、wp_head()でしょうか。wp_head()は何するものぞ、とgrepコマンドで調べてみると、functions.php内でtwentysixtten_javascript_detection関数にフックしていました。名前からしてダメそうな感じがしつつ、同phpファイルで定義されているその関数の中身を見ると、やはりscriptタグを書き出しているだけみたい。wp_head()ではなさそう。

他にそれっぽい関数を探す

header.phpじゃなければなんだろう、と思い、今度はfgrepコマンドでheaderタグの中を記述してそうなphpファイルを検索しました。すると、index.phpがヒット。ああ、これは可能性あるな、と思ってみてみたら、get_header()関数なるものが。get_header()ってなんぞ、と思って探してみても、テーマディレクトリ内に定義したファイルがない。が、WordPressではWebの管理画面から、関数を調べることができます。普通にググってもよいですが。調べると「get_header() | Function | WordPress Developer Resources」より、wp-includes/general-template.phpがソースファイルであることがわかりました。どおりでテーマディレクトリ内にないわけです。

それで、今度は当該ファイルのget_header()の中身を見ました。なんだかよくわかりません。とりあえず、ここをいじってもダメな気がする。

wp-includes内を調べる

ではどうしようかと思いましたが、wp-includesディレクトリ内のファイルをいじればよい、というのは間違えていない気がします。ということで、headerに関係ありそうなファイルを、findコマンドで探しました。すると、theme-compat/header.phpなるものが見つかりました。それらしいです。ヒントがあるかもしれません。

中身を見ると、果たして、titleタグ内を記述しているところがありました。そこで使われているのが、wp_get_document_tile()関数です。おお、なんだかとてもそれらしい名前だ。これはなんだろうとググってみると、「wp_get_document_title() | Function | WordPress Developer Resources」より、get_header()と同じgeneral-template.phpで定義されていることがわかりました。

wp_get_document_title関数を調べる

再び当該phpファイルより、wp_get_document_title関数を見ていきます。ざっと眺めた感じ、なんだか有望そうです。特に臭いのが、キャッチフレーズを示すdescriptionを付加していると思われるところ、すなわち前節で示した部分です。ここをコメントアウトしてみると、どうか?何かあっても嫌なので、仮想環境下で試してみると、なるほど、タイトルからキャッチフレーズの部分が消えました。どうやら、これであっていたようです。

以上より、目的を達成することができました。titleからキャッチフレーズを外すなんて簡単だと思っていたのですが、手こずりました。

関連コンテンツ

関連記事

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。