これはカンタン! 記事をmoreタグの前後で分割して出力する方法

WordPressで書いている記事をmoreタグ (<-- more -->) の前後で分割して出力したい! と思う人は少なからずいるのではないかと思います。

以前に同様のことを実現するカスタマイズ方法を記事にしましたが、今回はもっとカンタンに、しかもどんなテンプレート環境でも確実に分割して出力できる方法をご紹介したいと思います。

前後で分割して出力
Bisected Photo by Wajahat Mahmood

カスタムするのはsingle.phpだけ!

以前書いたやり方だと、いじらなければならないファイルがfunctions.phpとsingle.phpの2つだったんですが、今回の方法ではsingle.phpのみをいじくるだけで実装することができます。

また、以前の方法にはちょっとした問題点もあって、テンプレート環境によって前後に分割されずに出力されてしまうこともあったんですね。

で、今回紹介する方法はおそらくどんなテンプレート環境であっても、まず間違いなく分割出力されるはずです。

実装方法

実装するコードは以下のとおり。

<?php if(strpos(get_the_content(),'id="more-')) : global $more; $more = 0; the_content(''); ?>
<!-- ここに挟みこみたい要素を挿入 -->
<?php $more = 1; the_content('', true); else : the_content(); endif; ?>

single.phpの中にある記事出力の関数である、

<?php the_content(); ?>

を見つけたら、上記のコードと差し替えるだけです。
前後それぞれのコードをdiv要素やsection要素で括ってid属性やclass属性を与えてやれば、いろいろとデザインもしやすいですよ。

また、以前の方法と同様に、分割したコードの間に広告や関連記事を挿入することも容易です。

今回この記事を書くに当たり、実際に当ブログのテンプレートでもこの方法を試してみたところ、しっかりとmoreタグの前後で分割して出力されることを確認しています。

まぁ、本格的に実装するとなると再度CSSをゴリゴリ変えなきゃならんので、分割出力されることを確認したあと戻しましたが。なにせ最近記事エリアのデザインを変えたばかりなのもあって、今すぐやるのはちとめんどいw

とりあえず次回の「Blog Crowd」のときにでも本格的な実装をしようかなと思っています。

「WordPressカスタマイズ」新着記事

ソーシャルメディアのトータルシェア数を条件にして記事をランダム表示する方法

ホシナ カズキ

チャット風の会話形式コンテンツをプラグインなしで実装する方法

ホシナ カズキ

【WordPress】パーマリンクからカテゴリーベースを取り除く方法

ホシナ カズキ

ディレクトリを切ってインストールしたWordPressをドメイン直下で表示させる方法

ホシナ カズキ

「RSS Footer」が開発終了したならfunctions.phpで同じことやればいいじゃない

ホシナ カズキ

もっと見る

モバデビはモバイルやウェブのネタ、ニュースMaciPhoneなどのApple関連、WordPressのことなど、いろいろ書く雑食系ブログメディア。
ためになるかもしれないし、ならないかもしれない。そこそこ更新してますそこそこ。

このブログについてもっと詳しく