いやぁはまりましたね(笑)。よくよくテストしたつもりだったのですが、いやはや何ともご迷惑をおかけすることになってしまいました。
というのは最近立ち上げたWordPressのQ&Aサイトでの出来事。このサイトでは「Ultimate Member」というプラグイン
で会員の登録やログイン・ログアウトなどを管理して、「WP User Frontend」で質問を投稿してもらい、コメント機能をカスタマイズして回答をしてもらうという趣旨のサイトなのですが、いきなり不具合発生でした。
何が起こったかというと、「Ultimate Member」のログインフォームを使ってログインしても「WP User Frontend」ではログインしていると認識されず、フォームが表示されないというもの。最初は「Ultimate Member」の設定を間違ったかと思って試行錯誤してみましたが全く改善されず・・・。
試しにログインまわりだけ別のプラグインを使ってみたらということでいろいろなものを試すも同じ結果になりました。このことから、フロントエンドからログインさせると「WP User Frontend」ではログインしたと認識されないという結論に達しました。よくよく考えれば、「WP User Frontend」の有料版にはユーザー管理機能があるのでそれを使わないと投稿させないゾ!!ということなのかも・・・なんて思ってます。
では有料版を!!ではなくここはあえて無料版のままでなんとかならないか??ということでいろいろやったら何とか形にはなったので紹介しておきます。
「WP User Frontend」へ確実にログインしたことを伝えるには
最終的にたどり着いたのは、「WP User Frontend」はバックエンドのログイン画面からログインしないと、ログインしたと判断してくれないことでした。
テストしてみたら、同じユーザーでも
- フロントエンド系のプラグインを使ってログインすると、「WP User Frontend」の投稿はNG
- バックエンドのログイン画面からログインして、フロントエンドへ移動して投稿するのはOK
ということです。これが分かればなんとか対処できそうです。
まずは「Ultimate Member」の権限設定の確認。通常は「Ultimate Member」を使って新規登録した人は「member」という権限が与えられるので、この権限の人が管理画面へ行けないように設定(WordPressのユーザー権限と混同しますね)。この設定をしておくと、「admin」権限の人はログイン後管理画面へ、「member」の人はフロントエンドのトップページへそれぞれリダイレクトされるようになるんですね。
そして、メニューに表示しているログインリンクをWordPress標準のログイン画面へ移動するように変更。ここはカスタムメニューで表示しているのでメニュー内容を変更して終了。
このままだと素っ気ないWordPressのログイン画面が表示されてしまうので、「Custom Login Page Customizer」というプラグインを追加して見た目をそれなりにしたら終了です。
今のところログイン画面に表示される「パスワードリセット」や「新規登録」はこのリンクから行わせたくないのでCSSで非表示にしてとりあえず動く状態にはしましたのでこれでひとまず解消しました。
素直に有料版にしたら??と自問自答するところですが、1サイトにつき5000円近くするのでモノになるかわからないのにその投資は・・・ということでなんとかかんとか不具合を避ける無料のやり方でやってみました。
今後微調整です。いつもならこれをいろいろな関連プラグイン紹介記事のところへ対応方法としてリンクするのですが、結構苦労したので簡単に教えてやらない!!と少し意地悪して、関連記事やGoogle検索などからだけたどり着くようにしとこっと(性格悪い??)
それから、今回ありがたいことに登録したユーザーさんから「質問が投稿できないんです」とわざわざメールをいただいて発覚したのですが、このサイトにはそういうのを訴えるところがない(コンタクトフォームがない)ので、早急に追加しようと思います。やっぱり「Contact Form7」ですかね??