2018/07/15 改訂版 「『あなたの悩み、分かるわ』詐欺に気を付けろ」「周りの人をカウンセラーにしない」「人生なんて相談しても仕方がないことが多い」

ウィジェット『最近の投稿』を更新日順やID順に変更する WP Queryの応用

ウィジェット『最近の投稿』を更新日順やID順に変更する WP Queryの応用
以下の記事は、LION MEDIA(LIONE BLOG)のカスタマイズです。
お使いのテーマによっては、同じ方法でウィジェット『最近の投稿』の並び順をカスタマイズできると思いますので、参考にどうぞ。

高機能なWordPressテーマ『LION MEDIA(LION BLOG)』の場合、デフォルトのウィジェット『最近の投稿』を使えば、サムネイル付きの綺麗なタイトル一覧が表示されますが、サイトの目的によっては、ID順、更新日順、特定のカテゴリーのみ、など、好きにカスタマイズしたい場合がありますね。

記事リスト系のプラグインはたくさんありますが、外部のプラグインを使うと、どうしてもスタイルが崩れて、自分では修正できない場合があります。

そんな場合は、親テーマのfunctions.php にちょっと追記するだけで、思う通りの表示ができるようになりますので、ぜひ試してみて下さい。

なお、親テーマのfunctions.phpを書き換えた場合、テーマを自動アップデートすると、改変した部分も消えてしまうので、必ずバックアップを取るようにして下さい。

こんなサイトにおすすめ

よくリライトするので、カテゴリーやタグアーカイブなど、標準の記事の並び順を更新日順にしている。
『最近の記事』はリライトした過去記事を優先したい

特にプロモートしたいカテゴリーやカスタム投稿タイプがある。

『最近の記事』から除外したいカテゴリーやタグ、記事IDがある。

『最近の投稿』をID順にする

まず親テーマのfunctions.phpをエディタで開き、次のパートを探します。

//////////////////////////////////////////////////
//新着記事ウィジェットアイテムのフォーマット変更(サムネイル追加)
//////////////////////////////////////////////////

$r = new WP_Query( apply_filters( ‘widget_posts_args’, array( ‘posts_per_page’ => $number, ‘no_found_rows’ => true, ‘post_status’ => ‘publish’, ‘ignore_sticky_posts’ => true ) ) );
if( $r->have_posts() ) :

LION MEDIA functions.php

『最近の投稿』の記事の並び順は、WP_Queryでコントロールしているので、ここを改変すれば、ID順、更新日順、カテゴリー限定など、いろいろ応用できます。

new WP_Query( apply_filters( ‘widget_posts_args’, array( ‘posts_per_page’ => $number, ‘no_found_rows’ => true, ‘post_status’ => ‘publish’, ‘ignore_sticky_posts’ => true

記事をID順に表示したい場合。

‘orderby’=>’ID’ を追記すれば、記事IDの順番に並びます。

        $r = new WP_Query( apply_filters( 'widget_posts_args', array( 'posts_per_page' => $number, 'no_found_rows' => true, 'post_status' => 'publish', 'ignore_sticky_posts' => true, 'orderby'=>'ID' ) ) );
        if( $r->have_posts() ) :

関数リファレンス/WP Queryを参考に、orderby を modified(更新日)、title(タイトル)などに置き換えれば、いろいろ応用がききます。

カスタム投稿タイプで限定したい場合は、’post_type’ => ‘カスタム投稿名’

カテゴリーに限定したい場合は、’category_name’ => ‘カテゴリー名’

複数のタグに限定したい場合は、’tag’ => ‘movie,book’ などタグ名をコンマで併記

特定のメタキーに限定したい場合は、 ’meta_key’ => ‘メタ値’,

特定のタグを除外したい場合は、’tag__not_in’ => ‘タグ名’

また続きの部分、サムネイルと記事タイトルを表示する部分に excerpt(抜粋) などを追記することも可能だと思います。

 <?php if ( has_post_thumbnail()): ?>
                  <?php the_post_thumbnail('thumbnail'); ?>
                <?php else: ?>
                  <img src="<?php echo get_template_directory_uri(); ?>/img/img_no_thumbnail.gif" alt="NO IMAGE">
                <?php endif; ?>
                </span></a>
                <h3 class="imgListWidget__title">
                  <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
                  <?php if( !empty( $instance['show_date'] )): ?><span class="post-date"><?php the_time('Y.m.d'); ?></span><?php endif; ?>
                </h3>
                <?php the_excerpt(); ?> //ここに追記//
           </li>
              <?php endwhile; ?>
            </ol>
            <?php
            echo $after_widget;
         
        wp_reset_postdata();        
        endif;
    }
}

同じ要領で、タグやカテゴリー名を追記することも可能かと思います。
腕に自信のある方は試してみて下さい。

LION MEDIA(LION BLOG)のカスタマイズ

Tags: , , ,

初回公開日:2018.05.21

海洋小説『曙光』MORGENROOD

CTA-IMAGE
海洋科学、鉱業、建築などをモチーフにした新感覚の人間ドラマ。『生の哲学』をテーマに人生、恋愛、仕事について描く長編小説です。Kindle Unlimitedなら読み放題。