2006-04-03 Mon
自動で関連記事を表示してくれるとても便利な「NP_Related」ですが、ローカル記事の表示順は新しいものからとなり、当サイトのように作家名などをタイトルに利用していると、ほとんど新しい記事しか表示されなくなります。せっかくなので、古い関連記事も読んでもらいたいなぁ…となれば表示記事数を増やす、という手がまっさきに思い浮かぶのですが、当サイトのサイドメニューは「position: fixed;」なんてやっちゃった関係で、あんまり長くなると下の方が見えなくなってしまいます。それではまったく意味がないので「ランダム表示させるぞ」と改造してみました。
今回の改造はとても簡単で、一発で成功したので気分いいのですが、なんせ Google で検索したサイトを斜め読みして実現しただけなので、なんかちょっと怖いです。もし、同じような改造をされる方は、十分に調べてからにしてくださいね。僕はまったく責任とれませんので。
doTemplateVar 関数内の「case 'local':」内に次のような個所があります。
$result = mysql_query("SELECT inumber, ititle, itime, ibody FROM ". sql_table("item")
." WHERE ($str_where)" . $str_iblog
." AND idraft=0 AND inumber<>'$id'"
." AND itime<=" . mysqldate($b->getCorrectTime())
." ORDER BY inumber DESC LIMIT 0,$max");
詳細はわかりませんが、おそらくここが関連記事を引っ張ってくるのに必要な命令だと思います。前半で関連記事を選び、後半では新しいもん順に並べているみたいですね。というわけで、以下のようにしてみました。
$result = mysql_query("SELECT inumber, ititle, itime, ibody FROM ". sql_table("item")
." WHERE ($str_where)" . $str_iblog
." AND idraft=0 AND inumber<>'$id'"
// pushman
// ." AND itime<=" . mysqldate($b->getCorrectTime())
// ." ORDER BY inumber DESC LIMIT 0,$max");
." ORDER BY RAND() LIMIT 0,$max");
// namhsup
「pushman」から「namhsup」の間が修正個所です。「inumber DESC」を「RAND()」に変えただけですね。なんかまだ不要な命令があるような気がしないでもないのですが、これで動いちゃったのでそのまま放置してます。
いつまで感を頼りに修正してんだか…もうちょっとちゃんと基礎を学びたいと思う年度初めでした。
« Old 2006-03-28
if(skintype,error) の記述順
2006-04-12 New »
NP_ChoppedDisc|タグを半角スペースに変換
トラックバックありがとうございます。
ORDER BY RAND() ... はじめて知りました。
なるほど~
2006-04-09 Sun 13:34
yu さん
こんにちは。NP_Related はほんとにおもしろいプラグインですね。訪問者のためというよりも、自分で使っていてとてもおもしろいです。ありがとうございます。
プラグインの改造は、関係ありそうな単語の羅列で Google 検索して、テストもせずに修正するというかなり乱暴な方法で実践しておりますが(笑)、誰かのお役に立てれば嬉しいです。
2006-04-09 Sun 15:08