ログイン/PC/モバイルのときだけ表示するショートコード [WordPress]

Wordpress

この記事のURLとタイトルをコピー
お使いの端末ではこの機能に対応していません。
下のテキストボックスからコピーしてください。

どーも!カゴブロ(@kagoblo)です。

ログインしているときだけ表示する/PCから見たときだけ表示する/モバイル・スマホから見たときだけ表示するためのショートコードを追加したので備忘録。
プラグインは使わずfunction.php に追記して、独自のショートコードを追加します。ショートコードにすることで記事のなかやテキストウィジェットでも使えるようになります。

参考ページはこちら

参考と言うかほぼそのまんま使わせてもらいました! はりすさん、ありがとうございます┏○ペコ

ただ自分の用途ではタブレットがモバイルに振り分けられても困らないので、WordPressに標準装備の wp_is_mobile() 関数を使いました。

ログイン/PC/モバイルのときだけ表示するショートコード

ログインしているときだけ表示するショートコード

is_user_logged_in() はユーザがログイン中かどうかをチェックする関数です。会員制サイトなどでよく使われます。

カゴブロはユーザーは自分ひとりなので、自分にしか見えないメモ的なものを書くときなどに使います。

以下を、function.php に追記。

//ログインしているときだけ表示するショートコード
function logincontents( $atts, $content = null ) {
  if(is_user_logged_in()) {
    return '' . $content . '';
  } else {
    return '';
  }
}

add_shortcode('login-mieru', 'logincontents');

使うときは、

[login-mieru]ログインしてるときだけ表示[/login-mieru]

PCから見ているときだけ表示するショートコード

wp_is_mobile() は、ブラウザのユーザーエージェント文字列をチェックしてPCからのアクセスか、モバイル・スマホからのアクセスか判定する関数です。

以下のショートコードはPCから見たときだけ表示したいときに使います。PCにだけ画像のスライダー表示をするとき。地図やYoutubeの埋め込みをPCにだけしたいときに使います。

以下を、function.php に追記。

//PCのときだけ表示するショートコード
function pccontents( $atts, $content = null ) {
  if(wp_is_mobile()) {
    return '';
  } else {
    return '' . $content . '';
  }
}

add_shortcode('pc-mieru', 'pccontents');

使うときは、

[pc-mieru]PCからアクセスしてるときだけ表示[/pc-mieru]

モバイル・スマホから見ているときだけ表示するショートコード

モバイル・スマホから見ているときだけに表示します。スマホから見たときは電話番号を発信用リンクにしたり、アプリを開くリンクを表示したいときなどに使います。

以下を、function.php に追記。

//モバイルのときだけ表示するショートコード
function spcontents( $atts, $content = null ) {
  if(wp_is_mobile()) {
    return '' . $content . '';
  } else {
    return '';
  }
}

add_shortcode('sp-mieru', 'spcontents');

使うときは、

[sp-mieru]モバイル・スマホからアクセスしてるときだけ表示[/sp-mieru]

3つとも使うときの書き方

上記の3つともショートコードとして登録する場合は、以下のように記述してください。

//ログイン・PC・モバイルのときだけ表示するショートコード
function logincontents( $atts, $content = null ) {
  if(is_user_logged_in()) {
    return '' . $content . '';
  } else {
    return '';
  }
}
function pccontents( $atts, $content = null ) {
  if(wp_is_mobile()) {
    return '';
  } else {
    return '' . $content . '';
  }
}
function spcontents( $atts, $content = null ) {
  if(wp_is_mobile()) {
    return '' . $content . '';
  } else {
    return '';
  }
}

add_shortcode('login-mieru', 'logincontents');
add_shortcode('pc-mieru', 'pccontents');
add_shortcode('sp-mieru', 'spcontents');

どなたかのお役に立てば幸いです。