WordPressでYARPP - MyISAMに変換したのに…

yarpp

簡単なまとめ

2014年5月21日追記:
このページのアクセスが多いので、簡単に言いたいことをまとめます。

WordPressのYARPPプラグインで記事中のデータをスコア算出に使う場合、「MyISAMじゃないからタイトルと記事本文の内容は考慮しない」という旨のエラーメッセージが出てきます。で、MyISAMに変換してみても結局考慮してくれません。結論から言うと、DBに対して以下2つのコマンドを打つとうまくいくみたいです。

1.DBエンジンをMyISAMにする

ALTER TABLE wp_posts ENGINE = MyISAM

2.YARPPの設定をすべて消去

delete from wp_options where option_name like 'yarpp%'

SQL文の発行の仕方は環境に依存するので説明できませんが、たとえばレンタルサーバならたいていphpMyAdminのようなGUIが揃っているので調べてみて下さい。

本文ここから(以降はあまり読む価値ないです)

yarpp

YARPP(yet another related post plugin)を導入しました。

IMG_0845

上の図のように関連記事を自動的に表示してくれるWordpressプラグインです。

このプラグイン、タグやカテゴリだけでなく、タイトルや記事本文の内容も考慮して関連度スコアを導き出してくれるらしく、なかなか優秀です。が、最初インストールしたとき、「wp_postsテーブルのエンジンがMyISAMじゃないからタイトルと記事本文の内容は考慮しないよ」という旨が表示されました。

私はMySQLにはあんまり詳しくないのですが、さくらのレンタルサーバーのデフォルト設定だと、InnoDBがデフォルトのDBエンジンになってるっぽいです。仕事でMySQL使ったときもこれがデフォルトだった。MyISAMじゃないと全文検索が出来ないだかなんだか、そういう制限があるから対応がめんどいんだよねー、的なことを作者が言っていましたが、英語なので真面目に読んでません。

でもなあ・・・。めんどくせえなあ。一回テーブルをDropしたりしなきゃ行けないんでしょ?と思いきや、SQL文一つ打つだけで良いとのこと。

ALTER TABLE wp_posts ENGINE = MyISAM

なーんだ。簡単じゃん・・・いや、そのためにMySQLクライアントをインストールするのか?うわっ、クソめんどい。と思ったが、よく考えたらさくらのレンタルサーバーは、WebからDBやサーバー設定をいじる機能が充実しており、そこからSQLを打てるようになってたはず・・・と、さくらのコントロールパネルから表示してみると、PHPMyAdminというツールが出てきました。
左側にテーブル名が表示されていて、そこをクリックすると表形式でデータを見れたりもします。大したモンだ。

結局、SQLを実行することすらしなくてもよくて、「設定」メニューの中にDBエンジンを変更出来るところがあったので、そこからMyISAMに変更。

これでYARPPが使える!!!・・・と思いきや、なぜかまだ「MyISAMじゃないよ」というエラーがでています。「MyISAMだと強制的に認識させる」というボタンがあったので、押してみるが、やっぱり「タイトル」「内容」のコンボボックスから「検討する」がグレーアウトしていて動きません。

なんじゃこれ!!!

ということで検索しまくって、ようやく以下のページにたどり着きました。

MyISAM Override check doesn't work

It may be best to completely clear out the YARPP settings in this case. You can go to the wp_options table and delete all the options with 'yarpp' in the name. There should be a few.

・・・と作者が言っていたのでこれをやってみよう。

一応、英語と聞いただけでじんましんが出て呼吸困難に陥り卒倒するお前らのために訳してあげると、「これはYARPPの設定を一回消したほうがいいね。wp_optionsテーブルのなかで、name列(正確にはoption_nameという列だった)が'yarpp'から始まるレコードを全部削除してみ」ということだ。

一回プラグインをアンインストールすれば良いんじゃない?と思ったが、ダメだった。手動で消すしかないみたいだ。

delete from wp_options where option_name like 'yarpp%'

というSQLを打てばよい。と、思う。

でもその時の私は、もうこれっぽっちのSQL文を書くのも嫌だったので、PhpMyAdminから、option_name列をクリックしてソートして、手動でチェック入れて削除しました。

その後、まあ、ごらんのように正しく動作し、またアナルとかウンコとか素敵な記事が沢山出ておりますので、是非見てやって下さいね。

7件のコメント

  1. [...] >>WordpressでYARPP – MyISAMに変換したのに… | anopara Author: [...]

  2. […]  WordPressでYARPP – MyISAMに変換したのに… | anopara今回DB編集のために参考にさせて頂いたサイトです。 […]

  3. […]  WordPressでYARPP – MyISAMに変換したのに… | anopara今回DB編集のために参考にさせて頂いたサイトです。 […]

  4. […] WordPressでYARPP – MyISAMに変換したのに… | anopara 今回DB編集のために参考にさせて頂いたサイトです。 […]

  5. […] ネットで見つけた記事のひとつで、このページが気になったので もういちど確認してみる。 PhpMyAdmiをほぼ触ったことがないので なかなか理解ができなかったが 症状はほぼ同じなので […]

ただいまコメントは受け付けていません。