WordPress Popular PostsをSQLite Integrationで動かす方法
2019/12/12
2015年09月現在、
このサイトのWordPressは
SQLite Integrationというプラグインで動いています。
サイドバーに人気の記事を表示させたいと思い、
Wordpress Popular Postsというプラグインを入れました。
が、
何日たっても人気記事が表示されません。
「そんだけ人気ないってこと!?」
と、枕を濡らしたりもしましたが、
どうやらそういう事じゃなかったみたいです。
WordPress Popular PostsはSQLiteではうまく動かないという事でした。
人気の記事?ないよ?(笑)
その時の表示はこれ。
Sorry. No data so far.
つまり、「データがないから見れないよ」ってことですよね。
でも、アクセス解析とか見ると、
そこそこにアクセスはあったんです。
おかしいと思って調べたところ、
いくつかの解決案が見つかりました。
SQLite Integrationが問題だった
JavaScriptを圧縮するようなプラグインを入れている人は
それを解除してみるとか
AjaxをEnableにするとか
色々やってみたんですが、ダメで、
ふと「これSQLiteのせいじゃね?」と思って調べたところ、
こんな記事に出会いました。
さて、SQLite Integrationで使う場合ですが、インストール、有効化は問題なくできますが、そのままでは意図したとおりに動作しません。原因は、エイリアスにシングル・クオートを使っているためです。
【参考】WordPress Popular Posts(ja) | ユニマージュ
なるほど、原因までは僕にはよく理解できませんでしたが、
エラーが出てしまう原因は”えいりあす”に”しんぐる・くぉーと”を使ってるせいだったんだな!
というわけで、
wordpress-popular-posts.phpというファイル内で
シングル・クォートでクエリを投げてそうなところをgrepしまして、
クォートを外したところ、
わーお。
表示されました。
具体的にやったこと
プラグインが展開されているディレクトリ直下に
wordpress-popular-posts.phpというphpファイルがあります。
これをエディターで開いて、
「AS ‘」で検索していきます。
(AS+半角スペース+シングル・クォートです)
こんな感じで該当箇所が見つかったら、
シングル・クォートで囲まれている文字列を、
シングル・クォートから外してあげます。
この場合なら、
AS ‘id’,
となっているところを
AS id ,
と書き換えるってこと。
こんな感じ。
このファイル内の全個所変更したら、保存してアップデートして終わり。
※WPのダッシュボードから[プラグイン]→[プラグイン編集]でもいいと思う
v3.1.1の変更済みファイル
上記の変更を全個所に施したファイルをここからダウンロードできるようにしました。
wordpress-popular-posts-mod.zip
僕の場合はこれでうまくいきましたが、
もしうまくいかなかったとしても、
ファイルの書き換えは自己責任でお願いします。
2019/12/12
Comment
はじめまして。オガと申します。
先週からWordpress Popular Postsの導入に挑戦していたのですが、どうやっても表示されず、ほとんど心が折れかけていましたが、こちらの記事の通りphpファイルを書き替えたらきちんと表示されました。表示された時は思わず天を仰ぎました。
もう人気記事の表示は諦めようかと思っていたので、本当に助かりました…。分かりやすく丁寧な記事をどうもありがとうございました。
オガさん
コメントありがとうございます!
お役に立てたようで何よりです。
ちなみに僕の場合800記事を超えたあたりから、記事数の問題かアクセス数の問題かWordpressがかなり重くなってきてSQLite Integrationでの運用を辞めてしまいました。
その時のサーバー移転がとても手間でしたw
もし長く続けられる予定なら早いうちにデータベースが使えるサーバーに乗り換えた方がいいかもしれません・・・。