記事のタイトルに西暦を入れるとクリックされやすいとか、SEO的に有利とか言われていますよね。
そうでなくとも、記事の内容が最新であることを伝えるために、Wordpressで記事を書くときにXXXX年版とか入れることはあります。
しかし、その手の記事が増えてくるとメンテナンスが結構面倒になってきます。
と言っても1年に一回なんだから面倒くさがらずにやれという話なんですが、正直面倒です。
記事タイトルに入れた西暦を自動更新できないかと調べたら簡単に出来たのでシェアします。
Cocoonの場合はサイドバーや関連記事などのタイトルをフックを使ってショートコード展開させることができないため、ショートコードがそのまま表示されてしまいます。
SWELLは大丈夫です。
記事タイトルの西暦を自動的に更新するカスタマイズ
基本的なアイデアは記事タイトルに西暦を出力するショートコードを埋める、というものです。
しかし、次のような問題があります。
- WordPressのタイトルは初期状態だとショートコードを受け付けないので、受け付けるようにします。
- SEOプラグインなどでtitleタグを出力している場合は、ショートコードを展開する必要があります。
必要なカスタマイズ
西暦を出力するショートコードを作る
これは簡単です。
//ショートコードで現在の西暦を自動取得
function seireki_func() {
return date('Y');
}
add_shortcode('seireki', 'seireki_func');
WordPressのタイトルをショートコードを受け付けるようにする
これは簡単です。
/*---------------------------------------------------------------------------------*/
//ショートコードをテキストウィジェットやタイトルで使用可能に設定
/*---------------------------------------------------------------------------------*/
add_filter('widget_text', 'do_shortcode' );
add_filter('the_title', 'do_shortcode' );
SEOプラグインなどでtitleタグを出力する時にショートコードを展開する
これは吐きだされたHTMLのheadタグを見て、ショートコードが残っているか確認してから、必要であれば対応します。
SEO SIMPLE PACKを使っている場合は、do_shortcodeをかませます。
function overwrite_ssp_title($ssp_title) {
// 特定のページ以外はそのまま出力
return do_shortcode($ssp_title);
}
add_filter('ssp_output_title', 'overwrite_ssp_title');
参考:https://loos.co.jp/documents/seo-simple-pack/
タイトルに[seireki]と入れればOK
今まで西暦を入れていた個所に[seireki]と入れれば、西暦に展開されます。
まとめ
Googleのガイドラインでは記事は常に最新の情報に更新してあることが望ましいとされています。
ですので、古い情報はなるべくアップデートした方がよいのです。