WordPress Popular Postsでアクセスした記事が記録されなくなる
こちら解決しています。しかも残念な理由でした。お恥ずかしい。
WordPress Popular Postsというプラグインがあります。記事のアクセスを独自に記録してアクセスの多い記事のランキングを作成するプラグインです。
これがwordpress6.2にバージョンアップしたらアクセスした記事が記録されなくなりました。ただそれがwordpress6.2が関与しているのか、それとも一緒にアップデートした他のプラグインが関与するのか、そもそもその他の何かかが特定できないので、まずは記録されなくなりました、というメモ。
記録されなくなるとは
具体的にはデータベースのwp_popularpostsdataというテーブルに記録されます。それが記録されなくなった。
> select * from wp_popularpostsdata order by last_viewed desc limit 10;
直近のアクセス10件をデータベースで直で見てみると最新の記事アクセスが記録されない。記録されなければ当然ランキングが更新されることが無い。
実は、wordpressにログインした状態だと記録されていたのでボチボチは記録されていた。ログインしてないと記録されないという微妙な状況。
それに気づいた自分偉い。
どうやって記録しているのか
REST APIを使っている。それがどうも401でエラーになっている模様。
# tail ssl_access.log | grep json
0.103 - - XXX.XXX.XXX.XXX - - [22/Apr/2023:20:00:00 +0900] "POST /wp-json/wordpress-popular-posts/v1/popular-posts HTTP/2.0" 401 103 "https://XXXXXXX/XXXXXX" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.39" "-"
401というのはBASIC認証失敗なんかでお馴染みで、すわBASIC認証かって思うのだけど、実際にwordpressさんが401を返している。
実際に /wp-json/wordpress-popular-posts/v1/popular-posts にブラウザでアクセスすると分かる。
{"code":"rest_disabled","message":"The REST API on this site has been disabled.","data":{"status":401}}
401ですよーっていうJSONが戻ってきている。
つまりREST APIを受け付けなくなっている。REST APIを拒否する設定はあるものの明示的には実施しておらず、ただただwordpressとプラグインをアップデートしただけでこうなった。
何故だ。
プラグイン側も動きが無さそうなので様子見
似た現象出てる人いないかなーとググってみるも発見できず、プラグインのページも動きが無さそうなので、ひとまず様子見。
プラグインからのREST APIを許可すれば動くのだろうとは予想するのだけど、ひとまず様子見。
ただこの現象が自分の環境の問題の場合、永遠に様子見になるので、忘れないようにしないといけない。
気持ちとしてはプラグインのこのどこまで頑張るべきか判断つかないのが非常にまだるっこしい。全部自分でやれ!の方が気持ちとしては楽だ。
この記事が気に入ったらサポートをしてみませんか?