- WEBデザイン&WEBプログラミング -sei2の日記- - http://blog1.dd-company.com -

フィルターフック the_content の使用例。

春

フィルターフック the_content の具体的な使用例を紹介します。
フィルターフックについては、

apply_filters と add_filter の使用方法。

で、紹介しておりますので、併せてご覧ください。
今回の例では、記事上部に季節に合わせた画像を貼り付けます。
どんな感じかというと、今ご覧の記事(PC表示のみ)のようになります。この記事上部の画像が、季節によって変わるようになります。
では、コードをご覧ください。

1行目で、フィルターフック the_content に、関数 change_content() をフックします。

2行目で、関数定義し、フィルターフック the_content から記事本文の文字列を、関数の引数($content)として受け取ります。
この時、フックから渡される文字列は、単一記事ページの時は、記事本文全文で、アーカイブページなどの時は、記事本文の冒頭からの既定の文字数、及び、morelinkです。
既定の文字数とは、110字で、 <!--more-->タグを入れたときはそこまでになります。
また、morelink とは、抜粋された本文の後の 続きを読む の事です。

あとは、関数内で3,4,5月の時、6,7,8月の時、9,10,11月の時、12,1,2月の時で振り分け、 <img>タグのリンク画像を変えています。
その、 <img>タグを、$content_plus に代入したあと、そのタグの後に、フックから受け取った $content を足し算ています。

最後に、32行目で、もともとの記事本文の前に <img>タグを追加した文字列 $content_plus をフックに返してます。
また、単一記事ページ以外の時は、フックから受け取った $content を加工せずに返してます。

以上、使用例ですが、当ブログの記事、

WordPress 記事の上下に ウィジェットエリア を追加する方法

でも、アクションフック the_content を使用した例がありますので、そちらも、参考にしてください。

※ 今回は、WordPress 4.9.5 、テーマ twentyseventeen の 子テーマ を使用し、functions.phpに追記しております。季節ごとの画像は、子テーマのディレクトリに img ディレクトリを作って、そこに入れてください。子テーマについては、下記リンクをご参照ください。

WordPress 子テーマ の作り方

ちなみに、季節による画像の切り替えをテストするときは、下のコードを4行目と5行目の間に入れてください。

$time = strtotime('2014-12-24'); //ここの月を変えてテスト