当サイトには広告が含まれております

簡単にさくっとショートコードを追加する。phpinfoを表示!

この記事は最終更新日から8年経過しています。内容が古い可能性があります。

Image

functions.phpに自分でショートコードを書くこともあるのですが、そのたびにちょっと作り方を忘れてしまいます。今回は自分への備忘録も兼ねて「簡単にさくっとショートコードを追加する」手順を書きたいと思います。

記事をざっと見る

phpinfoを表示するショートコードを作ってみる

サイトを作っていてサーバによって動きがおかしかったりするときにphpinfoPHP の設定情報を確認したいときがあります。phpinfoを表示するとphpのバージョンや、mysqlのバージョン、その他メモリサイズや文字コードなども見ることが出来ます。同じ内容でもサーバによって値がことなるので、このサーバでは上手く行くのにどうしてこっちでは…?のようなときにもこの情報が役に立ちます。

どんな人にもこの情報が見えちゃうとまずいのでそこはちょっと制限を付けたいと思います。

phpinfoショートコードの仕様を考えてみました

ショートコードの名前(タグ名)を付けます。二重定義にならないように、私の場合は頭に ryus_ と付けたりします。なのでショートコードでphpinfoを表示するのは、ryus_phpinfoとしようと思います。

仕様、というと堅苦しいですが(^_^;、要するにどんな機能を持たせるかということを考えます

もちろん、phpinfo()の値をreturnする、という機能なのですが先ほど書いたように誰にでも見られちゃうと困るので

・ログインユーザーであり なおかつ ユーザーの権限が管理者であるひとだけに値を返す

という機能にします。

functions.phpにショートコードを書く

ショートコードは子テーマのfunctions.phpに記述します。

ショートコードを書くパターンはいつも同じなのでちょっとひな形みたいなのを書いてみます。

/* ここにショートコードの関数を書く */
function 関数名() {
    /* ここに機能を書く */
        return 返したい文字列;
}
/* ショートコードを追加する */
add_shortcode('タグ名', '関数名');

この

タグ名 というところに固定ページや投稿でショートコードとして使う名称を入れます。ryus_phpinfoという名前にしたのでこれを、固定ページや投稿で

[ryus_phpinfo]

このように書きます。そして関数名も決めて(今回思いつかなかったのでタグ名と関数名を同じ名前にしてしまいました)作ります。具体的にはこんな感じです。

/* 管理者でログインしている人にphpinfoを返す */
function ryus_phpinfo() {
    global $current_user;
    if(is_user_logged_in()){
        if ($current_user->user_level == 10) {
            return phpinfo();
        }
    }
}
/* 管理者にphpinfoを表示するショートコード */
add_shortcode('ryus_phpinfo', 'ryus_phpinfo');

これを子テーマのfunctions.phpに追加します。

ryus_phpinfoを使ってみる

投稿で

Image

このように記述して公開します。管理者としてログインしているときは、

Image

このようにphpinfoが表示されます。

ログインしているけど管理者で無いとか、ログインしていない場合は

Image

このように何も表示されません

まとめ:ショートコードは子テーマのfunctions.phpに関数とタグの追加を書くだけ

と、このようにWordPressのショートコードを作るのは子テーマのfunctions.phpに以下の2つを追加。

1.関数で追加したい機能を書く=タグの所に表示したい内容をphpで記述してreturnで返す

2.ショートコードを追記する=タグの名前と関数の名前を入れる

だけをしておけば、投稿や固定ページで

[タグ名]

と書くだけで実行できるのでとても簡単に作れて便利だと思います(^^)/

この記事が気に入ったら
いいね または フォローしてね!

あなたのシェアが励みになります!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントを残す

記事をざっと見る