XPressME Integration Kit

フォーラム

Re: 人気記事リスト(***_popular_posts_block.html)の表示について

永らくありがとうございました フォーラム 使い方全般 人気記事リスト(***_popular_posts_block.html)の表示について Re: 人気記事リスト(***_popular_posts_block.html)の表示について

#2965
toemon
キーマスター

ちなみに、この人気記事リストブロックですが、月単位での表示ではなく、

今日の人気記事リストを表示させることは可能でしょうか。

人気記事リストブロックは閲覧数をもとに作成されていますが、閲覧数は、日付ごとの集計をとれるようなデータ構成になっていないため、無理です。

アクセスログを取るプラグインを使用し、プラグインが作成するデータベースをクエリーして目的のデータを取得するというのが一番近道かと思います。

<設置例>

アクセスログのプラグインでCounterize IIを使う場合

拡張ブロックを利用して、

以下のようなコードを置けば、過去24時間以内のログからアクセスの多い記事を取得できると思います。

<br />
<?php<br />
if (function_exists('counterize_renderstats_vertical')){<br />
$number = 3;<br />
$onedayago = date("Y-m-d", time()-86400);<br />
$wpdb =& $GLOBALS;<br />
$sql = "SELECT p.count as amount, p.url as url, p.url as label, p.postID as post_id , COUNT(m.id) as  day_count"<br />
. " FROM " .counterize_logTable(). " m, " . counterize_pageTable(). " p "<br />
. " WHERE m.pageID = p.pageID and p.postID IS NOT NULL and "<br />
. " m.timestamp >= '$onedayago'"<br />
. " GROUP BY p.url "<br />
. " ORDER BY day_count DESC LIMIT $number";<br />
$rows = $wpdb->get_results($sql);<br />
foreach($rows as $row){<br />
$postid = $row->post_id;<br />
$post_data = get_post($postid);<br />
$title = $post_data->post_title;<br />
echo '<a href="' . $url . '" title="'. $title . '">'. $title . '</a>';<br />
echo ' today(' . $row->day_count .')';<br />
echo ' total(' . $row->amount . ')';<br />
}<br />
} else {<br />
echo 'not installd Counterize II plugin';<br />
}<br />
?><br />