2018/06/05 改訂版 「親を捨てよ 家を出よう」「大学には行った方がいいの?」「好きなことをして生きるは正解か」を追記

ウィジェット『最近の投稿』を更新日順や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の順番に並びます。

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

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

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

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

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

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

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

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

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

Top