フロントページの記事一覧が新しい順に表示されていると、古い記事がだんだん表示されなくなります。ページ送りで全部見ていただければ良いのですが、多くの方はフロントページだけ開いて、あとはカテゴリーやタグをクリックして興味のある記事を探しますね。そこで、フロントページをランダムにして、どの記事も読者の目に触れるようにしたいと考えたわけです。
追記 2017.12.30
前のテーマ(twentyseventeen)で上手くいったと思っていましたが、ページ送りを最後までめくってもまだ同じ記事が表示されますね。なかなか難しいです。以下がその内容です。
記事をランダムに表示する方法
もちろん私が考えられるわけがありません。ネットで探しまくりやってみて問題なく表示できたのがこのサイトのコードです。かなり時間を費やしました。
ここでは「functions.php」に以下のコードを追加するというものでした。
他に日付を非表示にする方法も書いてあります。
function home_random_posts( $query ) { if ( $query->is_home() && $query->is_main_query() ) { $query->set( 'orderby', 'rand' ); } } add_action( 'pre_get_posts', 'home_random_posts' );
このコードを使えば、「wordpress-設定-表示設定-1ページに表示する最大投稿数」に書いた数字と同じ数の記事が表示され、ページ送り機能も働きます。
やってみたこと
<?php query_posts(‘orderby=rand’);?>
index phpに追加したのですが、ページ表示が1のまま動かなかったり、再表示すると同じ記事が出てきたりします。
ページ送りをする人が少ないとはいうものの、ランダムでもページ送りで全記事を表示させたいですね。
<?php query_posts(‘showposts=10&orderby=rand’);?>
これは表示数を10記事にしたコードですが同じです。それにWordPressの表示設定で指定した表示数は無視されます。
上記と異なる他のコードを「functions.php」に追加
これはページ送りも、表示数の表示もうまくいって、よし!と思ったのですが、ウィジェットに表示していた最近の投稿5件に、ランダム表示の上位5件が表示されてしまいました。
他にランダムにならないものや、エラーになるものがたくさんありました。
まとめ
11月に子テーマを作ったおかげで、今回はプラグインを全く考えることなくうまくいきました。もうブログを改良することはないだろうと思っていましたが、いろいろ出てくるものです。読者が、ランダム表示と新しい順を自由に切り替えることができるボタンがあればもっと良いですね。
コメントを書く