Nire.Com

2008 年 4 月 1 日

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 日本語版にアップグレードした

修正方法

以下の箇所を、
[code language=”php” firstline=”58″ highlight=”59″ gutter=”true”]
 if (!isset($wpdb)) {
require(‘../../wp-blog-header.php’);
  akpc_init();
}
[/code]

このように書き換えます。
[php]
require(‘../wp-blog-header.php’);
[/php]
wp-blog-header.php の場所によって、上の “../” の階層の深さや位置は調節する必要があります。
たとえば /blog/ フォルダの下にあるような場合は、
[php]
require(’../../blog/wp-blog-header.php’);
[/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 に定義した接頭語)

[code language=”sql” gutter=”true”]
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;
[/code]

SQL DB が作成されない? – 解決方法その2

WordPress Guy を見ると、popularity-contest.php を直接修正して解決しているようです。

[code language=”diff”]
– if (isset($_GET[‘activate’]) && $_GET[‘activate’] == ‘true’) {
+ if (isset($_GET[‘action’]) && $_GET[‘action’] == ‘activate’) {
[/code]

修正済みのプラグインも配布しているようです。これはラクでいいですね。 🙂

サブフォルダに置くと日本語表示できない

WordPress のバージョンには関係なしです。

[code]wp-content/plugins[/code]

直下に展開すると雑然としてしまうのと、なぜか .mo, .po ファイルが popularity-contest-ja.mo ではなく alexking.org-ja.mo のようになっていて関連性が分かりにくいので、

[code]wp-content/plugins/popularity-contest[/code]

のようなサブフォルダを作って置いていますが、このままでは管理画面の [設定] – [Popularity] とメニュー内部が日本語にならないので、シンボリックリンクを貼って使っています。

[code]
# cd ……../wp-content/plugins/popularity-contest
# ln -s alexking.org-ja.mo ..
# ln -s alexking.org-ja.po ..
[/code]

人気度 15% [?] を消す

MMRT daily life を参考にさせていただいています。

変更履歴

2008/4/2: 接頭語 wp_ について追記。mushi さんコメントありがとうございました。

続き: 'WordPress: セキュリティを一発チェックする WP Security Scan'

「WordPress 2.5: Popularity Contest が「重大なエラー」になる / 日本語表示できない」へのコメント/トラックバック (12)

  1. mushi は言いました:
    2008 年 4 月 2 日 4:04 PM

    >現時点で新規な WordPress 2.5 ブログ + Popularity Contest 1.3b
    >の組合せは試していないので、ここから先は未確認ですが、Ken
    >McGuire のブログを見ていると手動でこれを作成しているようです。

    情報ありがとうございます。
    確認しました。
    やっぱりDB作成されませんでした。
    記載のSQL実行で解決後、プラグインを有効にすることができました。

    ※SQL文中のPREFIXをwpに変えることが必要でした。これは個々で違うとは思いますが、デフォルトだとwpなはず。


トラックバック

  1. Opheliam
  2. Popularity Contestのバグ原因判明 - WordPressで企業サイト
  3. 「Popularity Contest」 設置説明 WPプラグイン | 頭脳外部メモリー 「独学で趣味を満喫」
  4. こみっと秋田県.com | プラグインその3
  5. WordPress2.21から2.51へ プラグインの一覧 - 松下健次郎のブログ
  6. SkyLocal.net - 人気記事表示システムを導入
  7. WordPress 2.6で人気記事表示に使えるプラグイン >> 病的溺愛シンドローム
  8. WordPress2.21から2.51へ、大体そのまま使えたプラグインの一覧 - 松下健次郎のブログ
  9. WordPress 2.6.3でPopularity Contest動かしてみた - trick1.net(α) | trick1の日記@サブ
  10. WordPress の移行は終了 - masatsu file
  11. WordPress 2.6日本語版に一気にアップデート | favLife with iPhone

コメントをどうぞ