WordPressで会員制サイトをつくるプラグイン「WP-Members」で困ったことと解決策
会員制サイトの案件で、WordPressプラグインの「WP-Members」を使用しました。利用にあたって調べた、諸々のメモたちをまとめました。
いままでは、いろいろ調べたことをツイートしたりブクマしたりでメモしていましたが、わけわからなくなるのでブログに書き留めておくことにしました。
備忘録を兼ねつつ、自分が困ってあちこち調べ歩いた内容が、同じところで困った人の役に立てばと思います。
その他、WP-Members のカスタマイズ関連の記事も書きました↓↓
WP-Membersの導入
導入にあたっては、基本的にこちらの2記事を参考にさせて頂きました。ありがとうございました。
WordPress 会員制サイトの作り方 WP-Members | hijiriworld WP-MembersでWordPressに会員サイトを構築する流れ | わぃおがわ公式はこちら
WP-Members|RocketGeek Interactive一部コンテンツは有料。すべて英語なので、うっ…となって日本語の上記ブログに頼りました。。。
分かり易い記事がすでにあるので、導入に関して基本的な解説は差し控えて、その他で困ったことと解決策について以下書き留めておきます。
【1】[wpmem_txt]というテキストが表示される問題
PHPファイルに直接do_shortcodeでフォームを呼び出すと、[wpmem_txt]と[/wpmem_txt]という謎のテキスト出てきます。
解決策1:固定ページ内でショートコードorウィジェットを使う
本来固定ページでの利用を想定されたプラグインなので、do_shortcodeでフォームを呼び出す方法は変則技になります。
素直に固定ページにショートコードを書くのがいちばん良さそうです。
ウィジェットも用意されているので、ヘッダーなど、固定ページ以外にログインフォームを設置したり、条件分岐させたい場合はテンプレートに直接do_shortcodeで設置ぜずウィジェットを使用したら問題ないと思われます。
解決策2:function.phpに以下のコードを追加
add_filter( 'wpmem_login_form_args', 'remove_wpmem_txt_code' );
add_filter( 'wpmem_register_form_args', 'remove_wpmem_txt_code' );
function remove_wpmem_txt_code( $args ){
$args = array(
'txt_before' => '',
'txt_after' => ''
);
return $args;
}
公式で解説されておりました。
Remove an unparsed wpmem_txt shortcodeこの記事によると、ふつうにショートコードで設置していても、他のプラグインの影響で[wpmem_txt]~[/wpmem_txt]が表示される場合もあるようです。
そういった場合も上記コードで対応できるそうなので、固定ページやウィジェットを使っているのに[wpmem_txt]~[/wpmem_txt]が出てくる場合はこちらを試してみてください。
[resolved] “[wpmem_txt]” text appears when outputting login page in template fileこちらのやり取りも参考になりました。
【2】セキュリティプラグイン「SiteGuard WP Plugin」と併用するときの注意点
追記
バージョンアップで画像認証にも対応したようです!
カンタンに高品質なセキュリティ機能を追加できる「SiteGuard WP Plugin」は、自分のWordPressサイトにはすべて導入している良プラグインですが…
SiteGuard WP PluginWP-Membersと併用する場合に、セキュリティ機能の「画像認証」をオンにするとフォームからログインできなくなるので注意が必要。
WP-MembersはWordPressのユーザーログイン機能を利用するため、WP-Membersで設置したフォームからログインする際にも、SiteGuardによってユーザーに画像認証を求められているようです。WP-Members側では対応してないので、何故かログインできない…と焦ることになります。
▲「画像認証」をオンにするとWPのログインぺージでは画像認証が求められる。ユーザーにも同様に求められるが、WP-Membersのログインフォーム上では表示されないためログインエラーとなる。
解決策:SiteGuard WP Pluginと併用する際には「画像認証」をオフにする
今のところ、画像認証オフしか方法はなさそうです。
ユーザーの権限別で画像認証の有無を細かく設定できたりする機能が追加されれば、購読者のみ画像認証オフとかで対応できるかも。今後のバージョンアップに期待しましょう。
【3】メールアドレスでログインできるようにする
デフォルトではユーザー名が必要ですが、英数字のみ対応です。ややこしいのでメールアドレスをユーザー名として使用したい…という場合の方法を調べました。
解決策:プラグイン「Email as Username for WP-Members」を使用
Email as Username for WP-Members便利なプラグイン。設定不要で、有効化するだけでOK。
追記
アップデートが途絶えたため管理画面からはインストールできなくなりました。そのまま利用するのは問題が発生する可能性もありますが、中身を見るとプログラム自体はシンプルなので、上記リンクからダウンロードして、コードを参考にして取り入れるのは十分アリだと思います。