NP_Related|ランダム表示

NP_Related|ランダム表示

Author : pushman|Nucleus|2006-04-03 Mon 23:44

自動で関連記事を表示してくれるとても便利な「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()」に変えただけですね。なんかまだ不要な命令があるような気がしないでもないのですが、これで動いちゃったのでそのまま放置してます。

いつまで感を頼りに修正してんだか…もうちょっとちゃんと基礎を学びたいと思う年度初めでした。

Tag(s): NP_Related

[Nucleus] Next & Previous

Comments

Posted by yu2006-04-09 Sun 13:34

トラックバックありがとうございます。
ORDER BY RAND() ... はじめて知りました。
なるほど~

Posted by pushman|2006-04-09 Sun 15:08

yu さん
こんにちは。NP_Related はほんとにおもしろいプラグインですね。訪問者のためというよりも、自分で使っていてとてもおもしろいです。ありがとうございます。

プラグインの改造は、関係ありそうな単語の羅列で Google 検索して、テストもせずに修正するというかなり乱暴な方法で実践しておりますが(笑)、誰かのお役に立てれば嬉しいです。

Comment Form (policy)

(メールアドレスは非公開です)

Others
Newest 5 Items

NP_znItemFieldEXとNP_ifの連携

NP_znItemFieldEX|PHP 5で検索機能を有効にする

NP_GoogleMaps|最大ズームレベルを変更

NP_ImageExtractor|エラー修正

NP_ImageExtractor|画像を抽出するプラグイン

Web Service

Google Mapsで緯度と経度を測定

Nucleus CMS: Pure Publishing