WordPressでプラグインを使わずにmoreタグのところにコンテンツを表示させる方法

WordPressでプラグインを使わずにmoreタグのところにコンテンツを表示させる方法

以前に「Master Post Advert」というプラグインを使ってたんですが、出力されるHTMLもいじりたくなってしまって、プラグイン無しで実装できる方法で代用しました。

この方法がなかなか具合が良いいので、僕が使ってる「プラグイン無しでmoreタグのところにコンテンツを表示させる方法」をご紹介します。

プラグインを使わないで記事の途中にコンテンツを表示させる

mbdbでこの方法を知ってから当ブログでもずっと使ってます。

テーマのテンプレートファイルから「the_content」の記述を探す

まずsingle.php(記事ページ用のテンプレートファイル)内にある下記の記述を探します。(記事本文を出力するテンプレートタグです。)

<?php the_content(); ?>

the_contentを置き換える

見つかったらそれを丸ごと下記の記述と置き換えましょう。

<?php if(strpos(get_the_content(),'id="more-')) :
  global $more; $more = 0;
  the_content(''); ?>
<?php get_template_part('more-contents');?>
<?php $more = 1;
  the_content('', true );
  else : the_content();
endif; ?>

呼び出すテンプレートファイルを作成する

上記ソースで「more-contents」と書いてるところが読み込むファイルのファイル名です。single.phpと同じ階層に「more-contents.php」というファイルを作って、その中に表示させたい記述を書きましょう。(ファイル名は好みのものに変更してください。)

ファイルの中身は自由に入れたいものを入れましょう。

スマホとパソコンの表示を分けるならこちらの記事を参照して条件分岐させてください。

最後に

僕はプラグインを使わない方が簡単で自由度が高くなるものは極力プラグインを使わずに実装してます。

プラグインを外したい方や、そもそもこっちの方が手軽だと感じるようなPHPをいじり慣れてる方はぜひお使いください。

キーワード
WordPress