プラグインいらず!ワードプレスで過去記事をランダムで表示させよう

私と違い、何百も何千もブログを更新されている方には、
過去に良質な記事がたくさん埋もれている、という方もいらっしゃるかもしれません。

本日こちらの記事を参考に、
過去の記事をランダムでtwitterで呟く設定をしました。

【関連】Twitterで過去記事を自動で呟くのをやってみた。凄く簡単「Tweetily」の使い方

 

そこで今回は、ブログ本体のサイドバーにも過去のエントリをランダムで表示できないかということで、
プラグインを使わずに実装してみることにします。

 

完成図

check

 

このように、サイドバーに過去のエントリをランダムで表示させています。
stingerの追随ウィジェットコードのあたりに書いているので、
エントリを下まで読み進めながらもピッタリサイドバーにくっついてきます。

注意点

当たり前のことですが、事前にバックアップはとっておきましょう。

 

コード

以下のコードをfunction.phpに追加してください。

// ランダム
function random_post_list($show_num) {
    query_posts('posts_per_page=' . $show_num . '&orderby=rand');
    if(have_posts()) {
        while(have_posts()) {
            the_post();
            echo '<li style="padding-bottom:15px;">';
            the_post_thumbnail(array(60,60), array('style' => 'float:left;overflow: hidden;height: auto;padding-right:10px;'));
            echo '<a href="';
            the_permalink();
            echo '">';
            the_title();
            echo '</a><br><span>(';
            the_time('Y年m月d日');
            echo ')</span></li>';
        }
    }
    wp_reset_query();
}

 

そして、実際にランダムで記事を表示させたいところに
以下のコードを入れてください。

<div style="text-align:left;">
<ul>
<?php random_post_list(7); ?>
</ul>
</div>

 

私はsidebar.phpの、「<?php get_template_part(‘scroll-ad’);?>」の真下に書いています。

 

デザインの微調整

上のコードをそのままコピペすると、ちょうど当ブログで表示されているような感じになります。
(テーマはStinger3を使用)

この見た目を変えるのであれば
float:left;overflow: hidden;height: auto;padding-right:10px;
の部分を編集したり、新しくarrayでclassを追加してcssで整えると良いです。

また、表示するエントリの数は「<?php random_post_list(7); ?>」の数字を変更してください。

 

まとめ

探せば似たようなプラグインもあるとは思いますが、
できるだけプラグインは数多く入れたくないのでfunction.phpに書いてみました。

自分のブログを見にきた人に、
過去のエントリを「ついで読み」してほしいなと思う方は一度お試しあれ。

 

では!