LION MEDIA functions.php

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

LION MEDIA functions.php
以下の記事は、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 functions.php
更新情報や引用など
>海洋小説『曙光』MORGENROOD

海洋小説『曙光』MORGENROOD

宇宙文明の根幹を支える稀少金属ニムロディウムをめぐる企業と海洋社会の攻防を舞台に描く人間ドラマ。生きる道を見失った潜水艇パイロットと愛を求めるフォルトゥナの娘の恋を通して仕事・人生・社会について問いかける異色の海洋小説です。
Kindle Unlimitedなら読み放題。
Amazonの海洋学ランキングで一位を記録。

CTR IMG

Fatal error: Uncaught Error: Call to undefined function WP_Optimize() in /home/marier/novella.works/public_html/wp-content/plugins/wp-optimize/cache/file-based-page-cache-functions.php:145 Stack trace: #0 [internal function]: wpo_cache('\r\n<!DOCTYPE htm...', 9) #1 /home/marier/novella.works/public_html/wp-includes/functions.php(4469): ob_end_flush() #2 /home/marier/novella.works/public_html/wp-includes/class-wp-hook.php(288): wp_ob_end_flush_all('') #3 /home/marier/novella.works/public_html/wp-includes/class-wp-hook.php(312): WP_Hook->apply_filters('', Array) #4 /home/marier/novella.works/public_html/wp-includes/plugin.php(478): WP_Hook->do_action(Array) #5 /home/marier/novella.works/public_html/wp-includes/load.php(947): do_action('shutdown') #6 [internal function]: shutdown_action_hook() #7 {main} thrown in /home/marier/novella.works/public_html/wp-content/plugins/wp-optimize/cache/file-based-page-cache-functions.php on line 145