えんぴつぶろぐ

子育て中のフロントエンドエンジニアのブログ。

Welcart for WordPressのログインページでSorry, no posts matched your criteria.

「どんなしょぼい内容でも躓いて、調べて解決したことはブログに書こう」月間。
同じ問題で困っている人の助けになることを願って…。

環境

  • Wordpress 5.0.3
  • Welcart e-Commerce 1.9.14
  • Welcart Basic 1.2.8を親テーマとした子テーマを使用

現象

ログインページにSorry, no posts matched your criteria.と表示されログインができない。

これは「ライブプレビュー」の段階から表示されていた。
「プレビューだからこうなってるだけで、テーマを有効化したら直るのかな?」と思っていたが、有効化してもばっちりエラーのままだった\(^o^)/

ちなみにSorry, no posts matched your criteria.とは、ループタグで対象の記事がなかったときに表示するエラーメッセージ。

<?php if( have_posts() ) : usces_remove_filter(); ?>
    <!-- ここにログインのためのフォーム要素などが記載されている -->
<?php else: ?>
    <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>

対象はログイン、新規会員登録、マイページなどmember系ページ全般

テンプレートで示すと、 /wc_templates/member/ 配下が軒並みだめ。
通常のページや、買い物かごなどcart系ページは問題なかった記憶がある。

template 説明
/wc_templates/member/wc_changepassword_page.php パスワードを変更する時のメルアド入力ページ用テンプレート
/wc_templates/member/wc_lostpassword_page.php パスワードを変更する時の新規パスワード入力ページ用テンプレート
/wc_templates/member/wc_member_completion_page.php 新規会員登録完了ページ用テンプレート
/wc_templates/member/wc_member_page.php 会員情報ページ(マイページ)用テンプレート
/wc_templates/member/wc_new_member_page.php 新規会員登録ページ用テンプレート
/wc_templates/member/wc_login_page.php 会員ログインページ用テンプレート

URLに__trashedが付いている

よく見ると、URLには__trashedがついていた。

正しいURL:
https://サイトドメイン/usces-member/?page=login

現象が起きたときのURL:
https://サイトドメイン/usces-member__trashed/?page=login

やってみたけど意味なかったこと

ゴミ箱を確認

Wordpress trashed」でぐぐって調べたところによると、trashedはページがゴミ箱にあると付加される傾向があるとのこと。

参考:

が、今回の問題はログイン系ページなのでそもそもゴミ箱に捨てるという概念がない。
念の為ゴミ箱を見てみても、怪しげなページは捨てられてなかった。

wc_templates配下のテンプレートを親テーマからコピー

member系のテンプレートは小テーマには設置してないからなにか問題が起こってるのか?と思い、
wc_templates配下のテンプレートをすべて親テーマからコピーし、小テーマのwc_templates/に設置した。
が、問題は解消せず。
そもそも今回使用しているWelcartプラグインのバージョンは1.7以降なので、やはりマニュアルにある通りコピーは不要のようだ。

wc_templates Welcart1.6 までのバージョンを利用している場合は、このフォルダ(wc_templates)内のテンプレートは全て必須となりますので、親テーマ(Welcart Basic)からコピーし> て子テーマに置いてください。 Welcart1.7 以降を利用している場合は、編集したいテンプレートのみを子テーマにコピーするのがベストです。これにより親テーマの恩恵を最大限に継承することができます。

Quote source:子テーマ作成方法 | Welcart Basic 1.2 ドキュメント

解決策

Welcartプラグインを一旦無効化にしたのち、有効化

なんや、そんな単純なことで直るんか!!!(泣)感…

これを試そうと思い至った経緯

「もうだめだ、フォーラムで問い合わせてみよう」と決意し、投稿前にフォーラムルールを確認した。
そこにはご丁寧にトラブルシューティングガイドが記載されており、「プラグインを停止してみましたか?」という項目が。

 投稿の前に、以下のトラブルシューティングを行ってみてください

プラグインを停止してみましたか? フラウザのキャッシュ・Cookie を削除してみましたか? 関連する WordPress の設定画面は確認しましたか?

Quote source:初めての方は必ずお読みください – Welcart コミュニティー|ECサイト構築プラグイン

Welcartプラグインを停止するとサイトがほとんど閲覧不可になるため勇気がいるけど、
えいやーで無効化→すぐに有効化してみたら直った!

よく見たら、Wordpress公式のSupportでも「プラグインを全部オフにしてみたらどうなる?」って言ってる人がいた。

What happens if you disable all plugins?

Quote source:WordPress permalinkslug changed page to page__trashed | WordPress.org

「なんかおかしいことがおこったらまずプラグインを停止してみる」というのがCMS制作では基本のノウハウらしい