WordPressの人気テーマ・Stinger6では手間暇かけずともサイドバーにNEW POST(新着記事)が使えるようになっている。今まで使っていたテーマのようにウィジェットで「新着記事」を設定する必要はないので、すごく有難い。
デフォルトの状態でも有難いのだが、ただほんの少し手を加えると、NEW POST(新着記事)の価値がさらに上がる!と信じるので、私が行ったカスタマイズを3点だけ以下に紹介する。
前もって断っておくが、私は、自分でコードをいじれる程のスキルは持ち合わせていない。ただ自分がこうあってほしいと願う状態を先にイメージして検索を繰り返し、それを実現している先達の知恵(公開されているコード)を見つけ出しては試してみる。
試した結果、自分の環境でもうまく作動した場合は有難く拝借し、望む状態へと近づけていく、それが私の手法なのだ。
「NEW POST」にこうあってほしいと感じたことは、次の3つ。
- WordPressではフロントページの設定を最新の投稿にした場合、トップページでは新着記事が重複するので「NEW POST」は表示しない。
- NEW POST(私の場合の設定数は5)で表示中の記事をメインで表示しているページでは、その記事は「NEW POST」から除外する。
- 「NEW POST」を見栄え良くしたい。
トップページでは「NEW POST」を表示しない設定
トップページで「NEW POST」を非表示にするためには、sidebar.phpの書き替えで可能となる。18行目の ・・・//最近のエントリ ?>を探し出し、
<?php get_template_part( 'newpost' ); //最近のエントリ ?>
その行を以下のコードで上書きするとよい。私は万一に備えsidebar.phpを子テーマにコピーしそれを上書きした。この手順を経ることで不具合が出た際に子テーマのsidebar.phpを削除することで即復旧が可能となる。
<!-- 最近のエントリ --> <?php if (!is_front_page()) : ?> <?php get_template_part('newpost');?> <!-- /最近のエントリ -->
if (!is_front_page()) :というコードの意味はフロントページ(トップページ)でない場合は、という意味。そしてその下の行は、NEW POSTをゲットせよ!という指示だとか!参考にさせていただいたページの中から以下のページを代表して掲示させていただく。
現在表示中の記事はNEW POSTから除外する設定
現在表示中の記事ではサイドバー/NEW POSTにその記事を表示しない設定は、newpost-thumbnail-on.phpを編集することで可能となる。
<div id="kanren"> <?php $args = array( 'posts_per_page' => 5, 'post__not_in' => array($post->ID) ); $st_query = new WP_Query( $args ); ?>
5行目の’post__not_in’ => array($post->ID)が新たに付け加えられたコード。参考にさせていただいたのは以下のサイト。
http://finderslog.com/?p=712″]
NEW POSTをカード形式で表示する方法
このサイトのコードをコピペすることで「NEW POST」をカード形式で格好良く表示できるようになった。感謝!!
コメント