サポート » プラグイン » 過去のエントリをランダムでピックアップするプラグイン

  • 解決済 lanyal

    (@lanyal)


    こちらは初めて書き込ませてもらいます。
    wordpressのプラグインで、

    過去のエントリをランダムでピックアップして
    表示させてくれるようなものを探しています。
    もしwordpress自体にそういう事をさせることが
    出来る定義があるのでしたら、ご教授願えませんでしょうか?

    よろしくお願いします。

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • モデレーター IKEDA Yuriko

    (@lilyfan)

    wordpressのプラグインで、
    過去のエントリをランダムでピックアップして
    表示させてくれるようなものを探しています。

    まさに、わたしが作った「エイプリルフールプラグイン」が該当ですね;-) エッセンス部分だけ抜き出したコードがありますので、これを参考にしてみてください。参考コードは、どんな URL で呼び出してもランダム表示になってしまうので、通常利用するには多少工夫が必要です。random_pickup の if 文を if (@$_GET['random'] == 'true') {...みたいにするとか。

    トピック投稿者 lanyal

    (@lanyal)

    lilyfanさん、貴重なヒント、ありがとうございます。

    通常のエントリ表示も行いつつ、1件だけランダムで
    表示させる~という形のものを探していたので、
    挑戦してみます。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    ちなみに、WordPress 2.5 では、wp() および query_posts で orderby に rand という指定が可能になっています。これだと、プラグインを一切使わずテーマファイルだけの調整で可能です。

    トピック投稿者 lanyal

    (@lanyal)

    2.5は周囲で動作がおかしくなってしまった人がいて、
    手が出しづらいんですけど、その指定は大変魅力的ですね…。

    実はphpでやっている事は大体把握出来るのですが、分からない所が
    数点あります。

    random_pickup の if 文を if (@$_GET[‘random’] == ‘true’) {

    この部分はlilyfanさんがブログで公開されているphpプログラムの
    最初の部分に導入するのか、もう1箇所の所に導入するのかという所
    に迷っています。

    おそらく、後者だと思うのですが。

    もう一点。これはWPの独自タグだと思うのですがtemplate_redirectは
    どのような意味を持つのでしょうか?

    WPの指南書を丁度知人に貸しておりまして、確認できず迷っております。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    この部分はlilyfanさんがブログで公開されているphpプログラムの最初の部分に導入するのか、もう1箇所の所に導入するのかという所に迷っています。

    最初の方です。2番目の if 文は、ランダム表示対象が、投稿かページかで処理を分けるためのものなので、ここを変更するとうまく動きません。

    もう一点。これはWPの独自タグだと思うのですがtemplate_redirectは
    どのような意味を持つのでしょうか?

    wp-includes/template-loader.php にあるアクションです。初期化処理を終えて、現在の URL に応じたテンプレートを読み込む直前で実行されます。したがって、普段使用されるテンプレートを読ませずに、その処理を横取りして、別の処理をさせることが可能になるわけです。

    トピック投稿者 lanyal

    (@lanyal)

    丁寧な指導ありがとうございます。

    プラグインはうまく動くようになりましたが、indexに
    表示されるように表示させるには、別途プログラムを作る必要があるのでしょうか?

    初めてWPのプラグインを自分で何とかしようと
    しているので、ドキドキと同時にお手数をおかけして
    申し訳ない気持ちでいっぱいです。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    ランダム表示をどのように使うのか、がよく分からないので、何とも言い難いです。
    提案した修正は、http://blog.example.jp/?random=true という URL にしたときのみランダム表示にするというものです。

    通常の記事の下にランダム表示させるならば、index.php テンプレートにおいて、WordPress ループのあとにランダム表示関数 (random_pickup) の中身を書いてやるとか、そういう方法が取れます。
    ランダム表示処理をどこに組み込むかは、使っているテーマのテンプレート構造にも左右されるので、そこは腕の見せどころでしょう。

    トピック投稿者 lanyal

    (@lanyal)

    phpの本を見たり格闘中です。

    ランダム表示をどのように使うのか、がよく分からないので、何とも言い難いです。

    http://not8found.biz/o2/

    このブログのインデックス部分に表示されている
    通常の新規投稿されたエントリがあります。
    このような感じで表示が出来たら、過去のエントリに
    改めて興味を持っていただけるのではないかな?
    と、思ったもので色々調べています。

    トピック投稿者 lanyal

    (@lanyal)

    久し振りに書き込みします。
    lilyfanさんが以前仰っていた

    ちなみに、WordPress 2.5 では、wp() および query_posts で orderby に rand という指定が可能になっています。これだと、プラグインを一切使わずテーマファイルだけの調整で可能です。

    という件を思い出して、思い切って新しい
    ブログを用意して試しているのですが、プログラムに
    疎いうえに、上記のwp()が何でどこを指しているのか?
    という所が分からず困惑しております。申し訳ありませんが
    ご指摘願えませんしょうか?お忙しいのにもうしわけありません。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    wp(), query_posts() というのは、新たな検索条件で WordPress ループを開始してしまうという関数です。「WordPress ループ」で調べてみてください。

    http://not8found.biz/o2/
    みたいな表示をするならば、get_posts() を使って、WordPress ループを壊さずに投稿データーを取得した方がいいですね。

    トピック投稿者 lanyal

    (@lanyal)

    丁寧な説明ありがとうございます。
    今夜早速試してみます!成功しましたら、改めてご報告
    させていただきますね!

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • トピック「過去のエントリをランダムでピックアップするプラグイン」には新たに返信することはできません。