閲覧(表示・出力)を制限するコンテンツ作成用ショートコードの機能と使い方
投稿・固定ページ本文内へ入力した文章やコンテンツの閲覧を独自のショートコードで囲むことで以下のように制限できるようにする機能です。
- ログインしたユーザーだけが閲覧できるようにする(訪問者は閲覧できない)
- 管理者権限を持つユーザーだけがログインしている場合のみ閲覧できるようにする
- モバイルデバイスからアクセスされた時のみ閲覧できるようにする
- パソコンからアクセスされた時のみ閲覧できるようにする
デザイン要素で非表示にするのではなく、閲覧(表示)できる状況にない場合はhtmlソース上にも出力されないようにしているので、情報漏洩などの心配なく利用できます。
※【ha-Basic】テーマの独自ショートコードですので、別のテーマへ変更すると機能しなくなり、ショートコードそのものとともに制限したコンテンツも表示されてしまいますのでご注意ください(別のテーマへ変更する場合は文末の「別テーマへ移行したときは」をご覧ください)
※このショートコードを使って制限コンテンツを作成した後は、設定通りに動作する(表示される/非表示になる)かを必ずご確認ください。
基本的なショートコードの挿入手順
以下の詳細情報に掲載しているショートコードを直接入力するか、ブロックエディタでクラシックエディタを挿入後、ショートコード→制限コンテンツを開いて目的のショートコードを挿入します。
1.ログインしたユーザーだけが閲覧できるコンテンツを作る方法
会員制サイトでログインしたユーザーのみが閲覧できるようにしたい場合に重宝するショートコードです。
クラシックブロックのメニューから「ログインしたユーザーのみ表示」を選んでいただくか、
[if-login]ここにログインユーザーだけに表示するコンテンツを入れる(別のショートコードも挿入可)[/if-login]
をコピーして挿入後、「ここにログインユーザーだけに表示するコンテンツを入れる(別のショートコードも挿入可)」の部分へログインユーザーだけ閲覧できるコンテンツを作成してください。
2.管理者権限を持つユーザーがログインしている場合のみ閲覧できるコンテンツを作る方法
管理者の備忘録として保存しておきたい情報の管理に便利なショートコードです。
クラシックブロックのメニューから「管理ユーザーのみ表示」を選んでいただくか、
[if-admin]ここに管理ユーザーだけに表示するコンテンツを入れる(別のショートコードも挿入可)[/if-admin]
をコピーして挿入後、「ここに管理ユーザーだけに表示するコンテンツを入れる(別のショートコードも挿入可)」の部分へ管理ユーザーだけ閲覧できるコンテンツを作成してください。
3.モバイルデバイスからアクセスされた時のみ閲覧できるコンテンツを作る方法
モバイル環境からページを閲覧した場合のみ表示されるコンテンツを作成できます。
クラシックブロックのメニューから「モバイルのみ表示」を選んでいただくか、
[hab-mobile]モバイルアクセス時のみ表示するコンテンツを入れる(別のショートコードも挿入可)[/hab-mobile]
をコピーして挿入後、「モバイルアクセス時のみ表示するコンテンツを入れる(別のショートコードも挿入可)」の部分へモバイルからのアクセス時だけ閲覧できるコンテンツを作成してください。
※モバイルからの閲覧かどうかはアクセスする端末が送出する「HTTP_USER_AGENT」の判定に依存していますので、機種によっては正確に判定されない場合がありますのでご注意ください。
4.パソコンからアクセスされた時のみ閲覧できるコンテンツを作る方法
パソコン環境からページを閲覧した場合のみ表示されるコンテンツを作成できます。
クラシックブロックのメニューから「PCのみ表示」を選んでいただくか、
[hab-pc]パソコンからのアクセス時のみ表示するコンテンツを入れる(別のショートコードも挿入可)[/hab-pc]
をコピーして挿入後、「パソコンからのアクセス時のみ表示するコンテンツを入れる(別のショートコードも挿入可)」の部分へパソコンからのアクセス時だけ閲覧できるコンテンツを作成してください。
※パソコンからの閲覧かどうかはアクセスする端末が送出する「HTTP_USER_AGENT」の判定に依存しており、モバイルではなかったらという判断をして表示/非表示をさせていますので、閲覧するパソコンの環境によっては正確に動作しない場合がありますのでご注意ください。
別テーマへ移行したときは
冒頭でご案内した通り、この機能は【ha-Basic】テーマ独自の機能ですので、テーマを別のものへ変更した際には機能を継続して利用できなくなります。これにより、ショートコードそのものとともに制限しているはずのコンテンツが表示されてしまうことになります。
別のテーマでも継続して利用するには以下のプログラムコードを移行後のテーマにある「functions.php」の末尾へ追加していただく必要があります。
/** if-loginショートコードでログインユーザーのみにコンテンツを表示 **/ if ( !function_exists( 'hab_if_login' ) ): function hab_if_login( $atts, $content = null ) { if(is_user_logged_in()) { $content = do_shortcode( shortcode_unautop( $content ) ); //ショートコードの中にショートコードがあっても実行するようにするコード return '' .$content. ''; } else { return ''; } } add_shortcode('if-login', 'hab_if_login'); endif; /** if-adminショートコードで管理ユーザーのみにコンテンツを表示 **/ if ( !function_exists( 'hab_admin_show' ) ): function hab_admin_show( $atts, $content = null ) { if(current_user_can( 'administrator' )) { $content = do_shortcode( shortcode_unautop( $content ) ); //ショートコードの中にショートコードがあっても実行するようにするコード return '' . $content . ''; } else { return ''; } } add_shortcode('if-admin', 'hab_admin_show'); endif; /** hab-mobileショートコードでモバイル表示時のみにコンテンツを表示 **/ if ( !function_exists( 'hab_onlymobile_show' ) ): function hab_onlymobile_show( $atts, $content = null ) { if(wp_is_mobile()) { $content = do_shortcode( shortcode_unautop( $content ) ); //ショートコードの中にショートコードがあっても実行するようにするコード return '' . $content . ''; } else { return ''; } } add_shortcode('hab-mobile', 'hab_onlymobile_show'); endif; /** hab-pcショートコードでパソコン表示時のみコンテンツを表示 **/ if ( !function_exists( 'hab_onlypc_show' ) ): function hab_onlypc_show( $atts, $content = null ) { if(!wp_is_mobile()) { $content = do_shortcode( shortcode_unautop( $content ) ); //ショートコードの中にショートコードがあっても実行するようにするコード return '' . $content . ''; } else { return ''; } } add_shortcode('hab-pc', 'hab_onlypc_show'); endif;
※functions.phpはサイトの動作を制御する重要なファイルですので、変更前に必ずバックアップを取るようにしてください
※コードはそのままコピーして利用できるようテストをしておりますが、文字化け等によって不具合が発生したり、環境により正常に動作しないということがありましても一切責任は負いかねますのでご了承ください
このページはモバイル端末でもご覧いただけます
左のQRコードを読み取っていただくと、このページのURLが表示され、簡単にアクセスできます。ぜひモバイル端末でもご覧ください。
いつでもご相談・お見積りの依頼を受け付けています
Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。
※一度もココナラを使ったことがない方はココナラへの無料登録が必要です。こちらから登録後、上のリンクをクリックする、またはココナラトップページから「ひまあーと」を検索してお問い合わせください。
【スポンサーリンク】