WordPressのYARPP(Yet Another Related Posts)プラグインをご存知でしょうか?かなり有名なプラグインで、関連記事を表示してくれる機能を有しています。
現在使用しているSTINGER3というテーマは、デフォルトで記事下に関連記事を表示してくれるのですが、その関連記事というのが「同じカテゴリ内の最新記事○件」という設定みたいなんですね。
これが私はちょっと気になっていました。記事の内容的にどんなに関連度が高くてもカテゴリが違うと表示されない点と、比較的新しい記事しか表示されないので、より関連性の高い(と思われる)古い記事が出てこない点。この2点が少し不満でした。
(注記:とはいえ、このSTINGERの関連記事の表示の仕方にも意味があるんだと思っています。同じカテゴリ=より関連性の高い記事であり、記事の鮮度も新しいのを重視する、ってことなので、SEO観点的にはSTINGERの仕様のほうが好ましいのかもしれません)
なので、関連記事の表示については以前使っていた「YARPP」プラグインを使うことにしました。これなら記事のカテゴリに左右されることなく(カテゴリを重視することもできます)、純粋に内容の関連度を見てくれるのではないか?と思ったからです。
以前導入していたので、新たにアップデートして適用すれば終わりだろー、とか思っていましたが、甘かったです。。。
設定できるまで結構ハマってしまったので、対処方法を書きとめておこうと思います。
YARPPを最新化する
YARPPプラグインのアップデートをかなりサボっていたので、これを機に最新化します。現在は「4.0.8」が最新版のようですね。
これは特に難しくありません。いつもどおり「プラグイン」の「Yet Another Related Posts Plugin」の項目からアップデートをクリックしてアップデートしました。
関連スコアの設定。しかし、なぜか設定できない項目がある
ハマったのはここからです。YARPPの設定でこんなに手こずるとは。。。
まず、YARPPの設定画面を開いたら、画面上部にある「表示オプション」をクリックして、表示する項目にチェックを入れましょう。
これをやっておかないと設定項目が表示されません…。
で、問題なのが「関連スコア設定」の項目。
▼「タイトル」と「内容」の選択肢がグレーアウトして選択できないんですねー。(画像は選択できるようになってから取ったキャプチャです)
うーん、これは困った。タイトルと内容は検討してくれないと困ります。
さっそく、対処方法をネットで探します。
テーブルのストレージエンジンを変更するとよい?
そう言えば、YARPPの設定画面の上部に、以下の様なメッセージが出ていました。
このオプションを使用したければ、wp_postsテーブルに対してこのようなクエリを実行してください:ALTER TABLE `wp_posts` ENGINE = MyISAM;。このクエリはデータは一切消しません。
wp_postsテーブルが絶対MyISAMを使用していると思う方はこちらの魔法のボタンをどうぞ:
【MyISAMを使っています。嘘じゃないから】
上記の引用は日本語なのですが、私の場合は英語だったような…でも書いている内容は同じでした。
で、この「MyISAMを使っています。嘘じゃないから」っていうボタンを押せば直る!という情報をネットでちらほら見かけたので、とりあえず押してみました。
しかし、直りません。やっぱりタイトルと内容の選択肢が選べない。
私も難しいことはよくわかっていませんが、このボタンでやっていることはどうもこういうことみたいです。
要するにMySQLのストレージエンジンにはいくつか種類があり、さくらサーバーでは「InnoDB」というエンジンが利用されているので、これを「MyISAM」に切り替えなければYARPPは使えないという事です。
むむ、そう言えば私もさくらサーバーだな!MyISAMっていうストレージエンジンに切り替えればいいのね。でもボタン押したから切り替わってるんじゃないのか…?
さくらサーバーのコントロールパネルからDBの状況を確認する
なんかちょっと話がややこしくなってきましたが、DBの状態を確認するしかなさそうです。
私はさくらサーバーを利用しているので、その場合のやり方になります。
まず、「さくらインターネットサーバコントロールパネル」にアクセスし、ログインします。
▼「データベースの設定」→「管理ツール ログイン」をクリック。
▼phpMyAdminの画面になるので、ユーザ名とパスワードを入力してログインします。
▼WordPressのDBを選択します。
▼「wp_posts」→「操作」→「ストレージエンジン」の項目を確認します。
ふむ、MyISAMになってますね。
もしなってなければ、この画面で手動で選択して「実行する」を押してもいいですし、SQLを実行して変更してもよいと思います。
これでYARPP設定画面をもう一度確認しましたが、やっぱりダメでした。
むむー、ストレージエンジンも正しくなってるとしたら、後は何が問題なんだ??
YARPPの設定を一度消してみるとよい
さらに検索してみると、私と同じ現象になってる方がいました!対処法として以下の様なことが書かれています。
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’から始まるレコードを全部削除してみ」ということだ。
※WordpressでYARPP – MyISAMに変換したのに… | anoparaから引用
なるほど、「wp_options」テーブルの「option_name」列からyarpp~で始まるレコードを削除してしまえばよいと。
うーん、めんどくさそうだし、なんか危険そう!
…と言ってもやるしかないので、やりました。
SQLで削除してもよいですが、上記の引用先の筆者の方と同じく私もSQL実行が怖かったので、目でチェックしながら削除することにしました。
▼先ほどの画面から「wp_options」というテーブルをクリックします。
「option_name」という列で並び替え、「yarpp~」で始まるレコードをチェックし、問題なければ「×」ボタンを押してレコードを削除します。
テーブルのレコードを直接削除するということなので、くれぐれも作業は慎重にお願いします!
うん、できた。もうコレ以上はわからん。
ここまでやったんだから、ちゃんと設定できるようになってくれるよね!
YARPP設定画面を確認。きちんと選べるようになってるー!
おそるおそるYARPP設定画面を確認します。
よっしゃーーー!タイトルと内容も選択できるようになってるぅー!
ちなみに私はカテゴリーを重視したいので「検討する(重要視」を設定しています。まあこのへんはお好みでやればいいかと。
YARPPのデザインをカスタマイズする
この項目は完全に好みの世界ですが、YARPPデフォルトのままだと、表示されるタイトル文字数が少ないので増やしました。
やり方は以下の記事を参考にしてください。
【WordPress】関連記事YARPPの記事タイトルの表示文字数を増やしてみた
まとめ
ってことで、YARPPプラグインに関するお話でした。
プラグインはいろいろ触れるのは楽しいんだけど、ハマると結構面倒くさいことになりますよねー。このへんは自己責任でやるしかないですね。
<関連記事>
WordPress Popular Postsで今見てる記事と同じカテゴリの人気記事を表示させる方法
WordPressのテーマを変更するときに気をつけておきたいポイントまとめ
WordPressでCSSを修正したけど反映されないときに確認すべきこと