Home > XOOPS | WordPress > XOOPS版WordPressで閲覧数を表示

XOOPS版WordPressで閲覧数を表示

旧おまかせブログは XOOPS で、おまかせブログ2.0は WordPress で構成されています。旧おまかせブログの XOOPS版WordPress にはもう記事を書かないと決めましたが、記事を移行しない限りアクセス数は圧倒的に旧ブログが多いです。

そこで、XOOPS版WordPressに閲覧数をカウントする仕組みを導入し、アクセス数の多い記事リストを おまかせブログ2.0のブロックに表示しようと考えました。導入は次のように行いました。

1.mySQLをいじる
面倒なのでphpMyAdmin を利用して、SQLコマンドを実行しました。
CREATE TABLE xoops_wp_mostAccessed ( postnumber int NOT NULL,
cntaccess int NOT NULL, primary key(postnumber), unique id(postnumber) );

2.my-hacks.phpをいじる
function add_count($p_number) {
if (ereg("Googlebot|Yahoo! Slurp|Nutch|Lycos_Spider|inktomi|InfoSeek Sidewinder
|ArchitextSpider|Cowbot|NaverRobot|DiaGem|Voyager|looksmart|tkensaku",
$_SERVER['HTTP_USER_AGENT'])) {
return;
}
$result = mysql_query("select postnumber, cntaccess from xoops_wp_mostAccessed where postnumber = '$p_number'&quote;);
$test = 0;
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$row[1] += 1;
@mysql_query("update xoops_wp_mostAccessed set cntaccess = '$row[1]' where postnumber = '$row[0]'");
$test = 1;
}
if ($test == 0) {
@mysql_query("insert into xoops_wp_mostAccessed(postnumber, cntaccess) values('$p_number', '1')");
}
}
function show_pop_posts() {
global $wpdb, $siteurl, $tableposts;
$results = $wpdb->get_results("select postnumber, cntaccess from xoops_wp_mostAccessed ORDER BY cntaccess DESC LIMIT 10");
foreach ($results as $result) {
$postnumber = $result->postnumber;
$post = @$wpdb->get_row("SELECT ID, post_title FROM $tableposts WHERE '$postnumber' = ID");
//$post_title = substr($post->post_title, 0, 20);
$post_title = $post->post_title;
//$url = get_permalink($post->ID);
echo "
<li><a href=\"$siteurl"."index.php?p=".$post->ID."&more=1&c=1\" title=\"$text\" />$post_title</a> <font color=\"#0066CC\">($result->cntaccess)</font></li>
";
}
}
function show_post_count($postcountID, $before="(Visited ", $after=" times)") {
global $wpdb, $wp_id;
$resultscount = $wpdb->get_results("select postnumber, cntaccess from xoops_wp_mostAccessed WHERE postnumber = $postcountID");
if (isset($resultscount)) {
foreach ($resultscount as $resultcount) {
$postcount = $resultcount->cntaccess;
echo $before.$postcount.$after;
}
}
}

3.テーマをいじる
comments-template.php に次の一行を追加します。
<?php add_count($post->ID); ?>

index-template.php の表示させたいところに次のコードを挿入します。
<?php show_post_count($post->ID, $before="閲覧数 (", $after=") "); ?>

4.サイドブロックでPHPを実行させる
$conn = mysql_connect("localhost","ユーザ名","パスワード");
mysql_select_db("DB名");
$sql = 'select m.postnumber, m.cntaccess ,p.post_title FROM xoops_wp_mostAccessed m INNER JOIN xoops_wp_posts p ON m.postnumber = p.ID ORDER BY m.cntaccess DESC LIMIT 10';
$res = mysql_query($sql);
$rank=0;
echo "<ol>";
while ($value = mysql_fetch_assoc($res)) {
$rank = $rank + 1;
$out = "<a href=\"URL(パーマリンク)".$value['postnumber']."/\">".$value["post_title"]."</a> (".$value["cntaccess"]." Hit)";
$out = mb_convert_encoding($out, "UTF-8", "EUC-JP");
echo "<li>".$out."</li>";
}
echo "</ol>";

Comments:3

OtaQueen 08-08-12 (火) 13:39

お世話になります。
わからないところがあるので、教えていただけますか?
「4.サイドブロックでPHPを実行させる」
というのは、カスタムブロックを新規作成し、そこにPHPコードを書き込んでwordpressのモジュールで表示させればよろしいでしょうか。
それと10行目の「パーマリンク」は何のURLを記述すればいいでしょうか。よろしくお願いいたします。

OtaQueen 08-08-12 (火) 14:23

いつも読ませていただいております。
すみません、前の記事のコメントの追加です。
1番目のphpmyadominで実行するコマンドですが、2行目のprimary key(postnumber), unique id(postnumber)のところで、 ( ) の中は両方postnumber でよろしいでしょうか。
どちらかが、cntaccessということはないですか? :oops:
閲覧数をどうしても表示させたく、ぜひ、ご指導のほどよろしくお願いいたします。

おまかせ 08-08-29 (金) 15:13

すみません。ブログを読んでくれる人はいないと思っていてコメントを全く気にしていませんでした。

さて、
http://onep.jp/wordpress1+index.htm
の開発をしたときにかなり勉強したのですが、はっきり言って少し忘れています。少なくとも、phpMyAdminで行う SQLコマンドは Primary と ID が同じ値であるため phpMyAdmin に怒られます。しかし、これで動いています。

(4)に関してはPHPブロックであり、ご想像通りです。パーマリンクというのは、ここのサイトで言えば http://blog.ispace.co.jp/ です

Comment Form
Remember personal info

Trackback+Pingback:0

TrackBack URL for this entry
http://blog.ispace.co.jp/25/trackback/
Listed below are links to weblogs that reference
XOOPS版WordPressで閲覧数を表示 from おまかせブログ2.0

Home > XOOPS | WordPress > XOOPS版WordPressで閲覧数を表示

おまかせSearch
おまかせブログ 人気記事
おまかせFeeds
おまかせブログ Meta
おまかせLinks
おまかせPR
CoRichブログランキング
ブログランキング
blogram投票ボタン
This Page Counter: 11,067

Page Top