WordPressでMoreリンクありなしif条件分岐テーマ編集
1,556views/投稿 2014-04-07/更新 2019-04-30Moreリンク<!--more-->をWordPressで挿入してあるか、していないかでif elseを条件分岐するWordPressテーマカスタマイズPHPソースです。
Moreの一般的な使われ方は「続きを読む」の分割部分の決定や特定のコンテンツ挿入などにも使われる区切り線の事で、WordPressの投稿画面で挿入することができます。
if条件分岐
今回のテーマ編集PHPソースは、<!--more-->タグを入れてあるエントリーと入れていないエントリーが混在するようなWordPressカスタマイズにとても便利です。
<?php if ($pos=strpos($post->post_content, '<!--more-->')): ?>
Moreを入れてある投稿の時に表示
<?php else : ?>
Moreを入れてない投稿の時に表示
<?php endif; ?>
直接HTMLソースも書けますし、プレーンなテキストで表示させる箇所でも使えます。
ウィジェットのように使う
テーマファイルの編集を真っさらなところから行っている人向けの話になりますが、PHPを機能させるためにも使えます。いろいろなWordPressのカスタマイズがあるかと思いますが、私の場合はテーマフォルダにウィジェットのようにパーツのPHPファイルを入れて、それをget_template_partで読み込むようにして使ったりしています。
- ari.php
- nashi.php
というファイルをテーマフォルダに一緒に入れてアップロードすることで、WordPressテーマに、
<?php get_template_part( 'ari' ); ?>
<?php get_template_part( 'nashi' ); ?>
と記述すればそのウィジェットパーツを読み込めます。丁度、拡張子の.phpを取り除いたファイル名をget_template_partに書くだけです。ari.php等は、中身がPHPファイルなのでその中にまたPHPが記述できるし、HTMLやJavaScriptももちろん書けますので非常に便利で使っています。(過去に書いたget_template_partについて)
それを踏まえて今回のMoreリンクのあるかないかを条件分岐させてウィジェットっぽく読み込むためのソースが下記です。
<?php if ($pos=strpos($post->post_content, '<!--more-->')): ?>
<?php get_template_part( 'ari' ); ?>
<?php else : ?>
<?php get_template_part( 'nashi' ); ?>
<?php endif; ?>
投稿の形式としてはMoreリンクを入れるに統一するか、入れないで統一する方が思考的な投稿時のブレが少なくなるのでおすすめですが、別に後からMoreを入れていく事はできますし、まとまった時間があれば全エントリーにMoreLinkタグだけ追加したり精査することも案外簡単です。