ワードプレスをver.5.5に更新したら「WP-Polls」と「Favorites」が使えなくなった!対策あり!
投稿日:2020/8/18 更新:2020/12/12 コメント 0件 ワードプレス アップデート, エラー, トラブル, プラグイン, ワードプレス筆者が運営している動画素材サイト「f-stock(えふすと)」をワードプレスのバージョンを 5.5 にアップデートしたらプラグインの「WP-Polls」と「Favorites」がほぼ機能しなくなったので原因を調べて解消しました。
症状
Favorites
「Favorites」というプラグインを利用してお気に入り機能を表示・動作させているんですが、各動画ページ設置している「お気に入りへ追加・解除」ボタンやサムネイルの★マークをクリックしてもお気に入りリストに登録・解除ができないですし、「お気に入りをクリア」ボタンに効かなかったので多分すべての機能が使えなくなったみたいです。
WP-Polls
「WP-Polls」はアンケートの表示・投稿を行っているワードプレスのプラグインなんですが、ラジオボタン(下図の選択ボタンのこと)は選択できるんですが「投票する」や「投票結果を見る」をクリックしても反応しませんでした。
原因を調査
エラーが出ているプラグイン以外をすべて無効化しても機能しないので他のプラグインが原因でエラーが出ている訳ではないようです。
Firefoxの「要素を調査」でエラー個所を探ると「Uncaught Error: Syntax error, unrecognized expression: a[href^=#]」という構文エラーがありました。
余談ですが今までChromeのディベロッパーツールを使用していましたがFirfoxのヤツの方が細かいところまで日本語化されて使いやすいので乗り換え中です。
Uncaught Error: Syntax error, unrecognized expression: a[href^=#]
jQuery 7
<anonymous> https://f-stock.net/questionnaire-1/:42
jQuery 8
デバッガーで該当行(42行)を確認すると「jQuery(‘a[href^=#]’).click(function() {」のところにエラーがあるようです。
<script>
jQuery(function(){
jQuery('a[href^=#]').click(function() {
var speed = 400;
var href= jQuery(this).attr("href");
var target = jQuery(href == "#" || href == "" ? 'html' : href);
var position = target.offset().top;
jQuery('body,html').animate({scrollTop:position}, speed, 'swing');
return false; });
});
</script>
エラー内容で検索したら全く同じコードの例が載っていたのでそのページを参考に該当するphpの個所にダブルクォーテーション(“”)を追加したらエラーは解消されてちゃんと動作するようになりました。
修正箇所 'a[href^=#]' ↓ 'a[href^="#"]'
修正前のPHPコード。
修正後のPHPコード。
今まで問題なく動作していたのでなぜって感じなんですが、ワードプレスを更新する10日ほど前にPHPのバージョンを 7.3.16 から 7.4.4 にアップデートしていたのもそれが原因かもしれませんし、そもそも自作テーマに問題があったのかも知れません。そんな感じなのですべての人に該当する解決策かは疑問です。
今回は原因を探るのに手間取る予感がしたので最悪プラグインを停止することまで考えていたんですが、意外簡単に解決できてよかったです。尚、ワードプレスでは「jQuery」を「$」で記載するとうまく動作しないのでそのように記載しています。
▼参考ページ
「Syntax error, unrecognized expression」というエラーが出たら確認すること