いろいろな装飾や効果をショートコードで簡単に表現できて超便利なWordPressプラグインの【Shortcode Ultimate】。私がサイトを作るときにはもう欠かせない存在になっています。
【Shortcode Ultimate】にはログインユーザーだけに表示できるコンテンツを作れるショートコードもありますので、会員制サイトの投稿や固定ページの本文中でログインした人にだけ見えるような表示ができるようになります。
ただ1つ個人的に残念なのは未ログインの人には「ログインが必要です」などの文字列とともにログインフォームが表示されてしまうこと。もちろん通常に使う場合なら別でフロントエンドログインさせる機能を持たせる必要がないので本当に重宝するのですが、例えば会員制サイトでないサイトで、自身の備忘録としてコードやメモなどをその記事の中に挿入したとき、未ログインユーザーには何も表示されないのがベストですよね?(そんな使い方しない?)
実例で言うとこのサイトの重要なカテゴリーであるWordPressプラグインの翻訳ファイルに関するページでは、自身が必要なときにいつでもダウンロードできるようにリンクを設置しています。翻訳ファイルは販売していますから、CSSで未ログインの人は非表示って書き方すると、ソース上は見えてるけど表示されていないだけの状態になるので、ソースを開いてリンクをクリックすれば・・・ダウンロードできてしまいます(いわゆる直ダウンロードっちゅうやつです)。プラグインの翻訳ファイルはWordPressでサイト作りをしている人以外必要な方はいませんし、何よりサイト制作会社などプロとしてやられている方が多いわけですから、そんなことは簡単にされてしまいます。「それなら右クリックを禁止すれば・・」と言われるでしょうけど、右クリック禁止が無駄だということはちょっと勉強すれば分かると思います(ここでは紹介しません)。
今回紹介する方法は【Shortcode Ultimate】の便利で不便な機能である「ログインしていない人にはメッセージとログイン画面を表示する」を利用して、ログインしていない人にはソース上でも内容を表示しない方法です。
前置きが長くなりましたが、やり方はとっても簡単ですのですぐに終わります・・・
【Shortcode Ultimate】プラグインで未ログインユーザーに表示されるログインフォームを非表示にする方法
ここまで読んでもう分かったという方はたくさんいるでしょうね。でもせっかくなので最後まで読んでくださいね。
メンバー(ログインした人)に表示するというのはそのまま使います。そして、未ログインの人にメッセージとログインフォームを表示するというのもそのままにします。要するにこのプラグイン自体の使い方はそのままです。
では何をするかというと・・・以下のコードをテーマのCSSへ追記するだけです。
/************** su 未ログインユーザーへのログイン案内を非表示 ***************/
.su-members {
display: none;
}
もうお分かりですね。メッセージとログインフォームを表示するものを「非表示」にするんです。
「display:none」というCSSコードは、ソース上には表示するけど見た目には見えなくするというもの。つまり、ログインユーザーには見えて未ログインユーザーにはどこからも全く見えないようにするにはソース上でも別のものが表示されている必要があるんです。
そこでせっかく【Shortcode Ultimate】のメンバーショートコードでは未ログインの人に別のものを表示するという機能があるのですから、それ(メッセージとログインフォーム)を表示させといて、見た目に非表示にしちゃえってことなんです。
試しに前述した当サイトのプラグイン翻訳ファイルについての記事を表示して、ソース表示してみてください(ソース圧縮しているのでさらに見にくいとは思いますが興味があれば頑張って見てくださいね)。ちょうど記事中にある表の上に・・・【Shortcode Ultimate】で生成されたメッセージとログインのフォームが表示するよう記述されているはずです。
ログインしないとファイルが見えないはずなのになぜかダウンロードされてしまった・・・なんていう経験をお持ちの方はぜひ試してみてください。
さらに強固にするためには直接ダウンロードを禁止する方法などもいろいろなサイトで紹介されていますからそちらと合わせて設定してみてくださいね。