Wordpress 2.5: Popularity Contest が「重大なエラー」になる / 日本語表示できない
« 前記事: Wordpress 2.5: アップグレード手順まとめ
人気記事をいろいろな要素から採点するプラグイン Popularity Contest ですが、けっきょく色々手を入れて使っていますので、まとめておきます。
「重大なエラー」を回避する
Wordpress 2.5 日本語版で、Popularity Contest 1.3b3 をインストールしようとすると、「重大なエラー」で使用することができません。現時点でバージョンアップはされていないようですが、一行書き換えれば使用できます。
なお「重大なエラー」になったからといって、データベースが壊れてしまうわけではないようです。
前提条件
- Wordpress 2.3.3 日本語版 + Popularity Contest 1.3b3 をインストールして動作していた
- その後、Wordpress 2.5 日本語版にアップグレードした
修正方法
以下の箇所を、
if (!isset($wpdb)) {
require('../../wp-blog-header.php');
akpc_init();
}
このように書き換えます。
require('../wp-blog-header.php');
wp-blog-header.php の場所によって、上の “../” の階層の深さや位置は調節する必要があります。
たとえば /blog/ フォルダの下にあるような場合は、
require(’../../blog/wp-blog-header.php’);
のように場所を変える必要があります。
forum を見ると色々ハマっている人が書いています。
SQL DB が作成されない? – 解決方法その1
前提条件の通りアップグレードしてきた組は、Blogvaria を見ているとこれだけで済むのですが、
どうも Wordpress 2.5 で空の SQL DB を作り初めて Popularity Contest を導入した場合は、ふつう自動的に作成されるはずのテーブルが SQL DB に作られないようです。
確かに phpMyAdmin で見ると、アップグレードした場合は wp_ak_popularity, wp_ak_popularity_options という 2つのテーブルが作成されていることが分かります。
現時点で新規インストールした Wordpress 2.5 ブログ + Popularity Contest 1.3b の組合せは試していないので、ここから先は未確認ですが、Ken McGuire のブログを見ていると手動で上記のテーブル 2つを作成しているようです。PREFIX_ の部分は wp_ などに読み替えて考えてください。 (wp-config.php で $table_prefix に定義した接頭語)
CREATE TABLE IF NOT EXISTS `PREFIX_ak_popularity` ( `post_id` int(11) NOT NULL, `total` int(11) NOT NULL, `feed_views` int(11) NOT NULL, `home_views` int(11) NOT NULL, `archive_views` int(11) NOT NULL, `category_views` int(11) NOT NULL, `single_views` int(11) NOT NULL, `comments` int(11) NOT NULL, `pingbacks` int(11) NOT NULL, `trackbacks` int(11) NOT NULL, `last_modified` datetime, KEY `post_id` (`post_id`) ) ENGINE=MyISAM; CREATE TABLE IF NOT EXISTS `PREFIX_ak_popularity_options` ( `option_name` varchar(50) NOT NULL, `option_value` varchar(50) NOT NULL ) ENGINE=MyISAM;
SQL DB が作成されない? – 解決方法その2
WordPress Guy を見ると、popularity-contest.php を直接修正して解決しているようです。
- if (isset($_GET['activate']) && $_GET['activate'] == 'true') {
+ if (isset($_GET['action']) && $_GET['action'] == 'activate') {
修正済みのプラグインも配布しているようです。これはラクでいいですね。
サブフォルダに置くと日本語表示できない
Wordpress のバージョンには関係なしです。
wp-content/plugins
直下に展開すると雑然としてしまうのと、なぜか .mo, .po ファイルが popularity-contest-ja.mo ではなく alexking.org-ja.mo のようになっていて関連性が分かりにくいので、
wp-content/plugins/popularity-contest
のようなサブフォルダを作って置いていますが、このままでは管理画面の [設定] – [Popularity] とメニュー内部が日本語にならないので、シンボリックリンクを貼って使っています。
# cd ......../wp-content/plugins/popularity-contest # ln -s alexking.org-ja.mo .. # ln -s alexking.org-ja.po ..
人気度 15% [?] を消す
MMRT daily life を参考にさせていただいています。
変更履歴
2008/4/2: 接頭語 wp_ について追記。mushi さんコメントありがとうございました。
続き: WordPress: セキュリティを一発チェックする WP Security Scan »








2008 年 4 月 2 日 4:04 PM
>現時点で新規な Wordpress 2.5 ブログ + Popularity Contest 1.3b
>の組合せは試していないので、ここから先は未確認ですが、Ken
>McGuire のブログを見ていると手動でこれを作成しているようです。
情報ありがとうございます。
確認しました。
やっぱりDB作成されませんでした。
記載のSQL実行で解決後、プラグインを有効にすることができました。
※SQL文中のPREFIXをwpに変えることが必要でした。これは個々で違うとは思いますが、デフォルトだとwpなはず。