レンサバ比較とWordPress

レンタルサーバー比較とWordPressのたブログ 初心者におすすめのレンタルサーバーの選び方

テンプレート

トップページやカテゴリーの記事一覧をランダムに表示する方法

投稿日:

トップページやカテゴリーは、記事の一覧になっていて投稿順に表示されています。常に最新の記事が先頭に表示されるようになっています。これは、ブログは更新されることが前提になっているってことだと思います。更新されないブログはブログではないってことなのかもしれません。

だけど、頻繁に更新されるブログであっても、必ずしも投稿順で常に最新の記事が先頭でいいってことではないと思うんです。ワードプレスには、特定の記事を先頭に表示する機能があります。トップページやカテゴリーの記事一覧を投稿順ではなく更新順にカスタマイズすることもできます。

記事一覧ページは投稿順でなくてもいいんです

ワードプレスでは、カスタマイズしたりプラグインを使わなくても、トップページやカテゴリーの記事一覧で常に特定の記事を先頭に表示することができるんです。この方法で注意することは、「1ページに表示する最大投稿数」より多く表示されるってことです。10件に設定していても11件表示されるんです。

トップページやカテゴリーの記事一覧をランダム表示にしたり、更新順に変更するには、テンプレートをカスタマイズする必要がありますが、functions.phpに追記するカスタマイズが簡単です。

この他にも、特定のカテゴリーを除外したり、特定のカテゴリーだけを表示することもできます。特定のカテゴリーを除外するのも、特定のカテゴリーだけを表示するのも同じことなんです。除外するカテゴリーが少ないときは除外して、除外するカテゴリーが多いときは特定のカテゴリーだけ表示するカスタマイズをするだけなんです。

トップページの記事一覧をランダムに表示する

function category_rand_orderby( $orderby, $query ){
    if ( !is_admin() && $query->is_main_query() ) {
        if ( $query->is_home() ) {
            $seed = strtotime( date( 'Y-m-d H:00:00' ) );
            mt_srand( $seed );
            $orderby = 'RAND(' . mt_rand() . ')';
        }
    }
    remove_filter( current_filter(), __FUNCTION__ );
    return $orderby;
}
 
add_filter( 'posts_orderby', 'category_rand_orderby', 10, 2 );

カテゴリーの記事一覧をランダムに表示する

function category_rand_orderby( $orderby, $query ){
    if ( !is_admin() && $query->is_main_query() ) {
        if ( $query->is_category() ) {
            $seed = strtotime( date( 'Y-m-d H:00:00' ) );
            mt_srand( $seed );
            $orderby = 'RAND(' . mt_rand() . ')';
        }
    }
    remove_filter( current_filter(), __FUNCTION__ );
    return $orderby;
}
 
add_filter( 'posts_orderby', 'category_rand_orderby', 10, 2 );

ほとんど同じなんだけど、3行目のis_homeとis_categoryが違うんです。

WordPress 記事をランダムに表示してページングする方法 | Design Hack and Slash

詳細は →

WordPressテーマ「ハミングバード」


-テンプレート

Copyright© レンサバ比較とWordPress , 2018 All Rights Reserved.