前回はアクセスアップ関連の記事でアクセスアップについて記事を書いたのですが、その中でカテゴリーの最新記事だけ全文表示させるっていうのを書きました。
あまり需要があるとは思えないのですが、今回はそこで紹介した「最新記事だけを全文表示」させるカスタマイズについて紹介してみたいと思います。
WordPressに新しい条件分岐を追加する
WordPressには元々たくさんの条件分岐タグがあります。「もし個別ページなら」とか「もしカテゴリーページなら」とかそういうやつですね。ただ、「もし最新の記事なら」という条件分岐は今の所ありませんので、新しく作る必要があります。
作り方は簡単でfunctions.phpに数行の記述をするだけなんですが、私の場合は子テーマのfnctions.phpに追加しています。
初めて子テーマにfunctions.phpを追加する場合には注意点がありますので、そちらを参考に子テーマにfunctons.phpを作成しておいて下さい。
⇒子テーマにfunctions.phpを追加する時の注意点
functions.phpには次の記述を追加します。
//最初の記事だけ取得する関数 function is_first(){ global $wp_query; return ($wp_query->current_post === 0); }
これで保存すれば「is_first」という関数が作成されます。これを使う事で「もし最新の記事なら」という条件分岐ができるようになります。
条件分岐を使ってカテゴリーの最新記事だけを全文表示
先ほど作った関数はWordPressの他の条件分岐タグと同じように使えます。「is_first」を使って条件分岐をしていく訳です。
ここからはテーマによって記述が大きく違う部分になりますが、私の場合をサンプルにして紹介してみます。
普通多くのテーマではカテゴリーページはこんな感じで抜粋記事の一覧になっているテーマが多いと思います。
しかし私の使っているテーマTwenty Twelveでは元々カテゴリーページは抜粋記事にはなくて全文表示でした。デフォルトの状態であれば抜粋文の一覧になるのはサイト内検索のページだけ。
その部分はTwenty Twelveのcontent.phpに次のように書かれています。
<?php if ( is_search() ) : // Only display Excerpts for Search ?> <div class="entry-summary"> <?php the_excerpt(); ?> </div><!-- .entry-summary -->
- もし検索ページなら
- 抜粋文excerpt()を表示
という風になっていたのです。
ここに検索ページだけでなく、カテゴリーなどのアーカイブページなども抜粋にしてサムネイル画像も付けたいなと思ったのでこのように変更しました。
<?php if ( is_search() || is_home() || is_archive() && !is_first()) : // Only display Excerpts for Search ?> <div class="entry-post-thumbnail"> <?php the_post_thumbnail('thumbnail'); ?> </div> <div class="entry-summary"> <?php the_excerpt(); ?> </div><!-- .entry-summary -->
- もし検索ページ、トップページ、アーカイブページなら
- サムネイルサイズのアイキャッチ画像を表示
- 抜粋文も表示
という感じにしました。ちょっとコードを右にスクロールしてもらうと分かりますが、「is_archive() && !is_first()」という条件分岐にしてます。「 ! 」を付けるとそれ以外という条件分岐になるので、ここの「!is_first」というのは最新記事でない場合という条件分岐になります。
ちょっと複雑ですね。つまり、アーカイブページ(カテゴリー)の最新記事以外はサムネイル付けて抜粋文になるという感じになります。
後はスタイルシートで抜粋文の横に来る画像の位置調整をしておきました。
div.entry-post-thumbnail { float: left; margin: 0 10px 10px 0;}
これでカテゴリーの最新記事だけ全文表示させて、残りはサムネイル画像と抜粋文の一覧になるようになりました。このブログのカテゴリーを見てもらえると仕上がりが分かると思います。
今回はTwenty Twelveのテーマで紹介しましたが、これはテーマによって全く違ってくるので作成した関数「is_first」を工夫して使ってみて下さい。
コメント
しげぞう様
復活おめでとうございます
ご回答ありがとうございまいした。少し気になってしまい・・・
>ホントに最新の記事だけ全文表示させるという方法に関して
承知いたしました。
気長に待たせていただきます。今後も参考にされていただきます
dellatar様
大変おまたせしてすみません。ようやく復活しましたので回答していきますね。最新の記事だけ全文表示なんですが、ページが複数ある場合にはそのページの先頭の記事が全て全文表示になります。
なので、例えばカテゴリーページが10記事で1ページだとすると同じカテゴリーに20記事あれば2ページ目までありますよね。その場合、1ページ目の先頭と2ページ目の先頭の記事が全文表示になるかと思います。これをホントに最新の記事だけ全文表示させるという方法に関しては私もまだアイディアがありません。すみません!!
ちょっとこれから考えて色々試してみますね。もしできたら記事に追記でもしていきたいと思いますので、今後ともどうぞよろしくお願いいたします。
何時も参考にさせていただいております
こちらも早速取り入れてみまして上手く表示されるようになりまた
ありがとうございます
つきましては「過去の投稿」にページを送ったさいにも
最初の記事は抜粋にしたいのですが可能でしょうか?
(ホントに最新の記事(1つ)のみ全文で表示させたい)
復活されたらで構いませんのでよろしくお願い