WordPressのアクセス解析に使用しているプラグイン「StatPress Reloaded(日本語ファイル)」ですが、解析表示で独自パーマリンクだと個別ページ名が表示されず、ページ番号がそのまま出てしまいます。
※私の場合は、パーマリンクは%post_id%なので「/数字」と表示されています。
ソースを確認すると、表示時に「p=数字」のアクセスログであれば、該当する数字の個別ページタイトルをクエリして表示しているようです。
もうずいぶん更新されていないような雰囲気のプラグインなので、ソースを直接いじりました。
statpress.php本体の1300行付近で、リクエストURLからページ識別子を整形している関数があります。
そこに「/数字」なら標準の「p=数字」に戻す置換を追記します。
/wp-content/plugins/statpress-reloaded/statpress.php
1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 |
function iri_StatPress_URL() { $urlRequested = (isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : ''); if ($urlRequested == "") { // SEO problem! $urlRequested = (isset($_SERVER["REQUEST_URI"]) ? $_SERVER["REQUEST_URI"] : ''); } if (my_substr($urlRequested, 0, 2) == '/?') { $urlRequested = my_substr($urlRequested, 2); } // 数字のページは個別記事 if (preg_match("/\/([\d]+)/", $urlRequested, $hits)) { $urlRequested = "p=".$hits[1]; } if ($urlRequested == '/') { $urlRequested = ''; } return $urlRequested; } |
上記1312-1316行が追加したコードです。
応急処置的ですが、これで次回より個別ページへのアクセスがあれば、「p=数字」のカタチでデータが保存されますので、ページ名が正常に表示されます。
ついでに今までのアクセスログも置換しておきます。
「urlrequested」がページ識別子にあたるフィールドです。
正規表現「REGEXP」で「/で始まり、数字だけのデータ」を対象にしています。
1 2 3 |
UPDATE wp_statpress SET urlrequested=CONCAT('p=',MID(urlrequested,2,6)) WHERE urlrequested REGEXP '^/[[:digit:]]+$'; |
※statpressのデータテーブル名は「wp_statpress」としています。
時間があれば自分でアクセス解析プラグインを作りたいですね。