投稿・固定ページ内でphpを使いたい時、ショートコードでphpを読み込む方法

wordpress

@_yonecoです。wordpress記事内でphpを使いたいのだけど、デフォルトだとphpが利用できないので、なんとか使えるようにならないかと思ったときに調べたメモです。

上記のサイトにショートコードでphpを読み込む方法が乗っていたので参考にさせていただきました。なるほどー!

私の場合は小テーマを利用しているので、小テーマ用のソースを参考にしました。やりたいことだけ整理すると以下のような感じ。

というわけで早速やってみる!

test.phpを作成します

function.phpの同階層にテストで表示するようの「test.php」を作成します。テストなので「test.php」にしていますが、名前はなんでも良いです。
「test.php」の中身は最初のテストだったら以下のような記述でよいと思います。

<?php echo 'ここに表示したい内容を書くよ!';

タグを書いたテストもしてみたかったので今回はこんなふうに書いてみました↓

<?php echo '<div style="border:1px solid #ccc; padding:20px; text-align:center; background:#fafafa;">

test.php<br>
★★★★★★★★★<br>
<br>
これはショートコードで表示されている部分だよ!<br>
( ^ω^)<br>
<br>
★★★★★★★★★</div>';

function.phpの同階層ってどこ?

function.phpが保存されている階層ですが、Xserverの場合は「/[ドメイン名]/public_html/」がルートになるので以下の場所です。

/[ドメイン名]/public_html/wp-content/themes/[利用しているテーマ名]/

さくらサーバーとかだとルートが「/[ドメイン名]/public_html/」→「/home/[アカウント名]/www/」になるかも

function.phpに追記します

「投稿の編集」からショートコードを書いた際にちゃんと「test.php」が読み込まれて動くようにfunction.phpに以下を追記します

//phpをショートコードで読み込む
function short_php($params = array()) {
  extract(shortcode_atts(array(
    'file' => 'default'
  ), $params));
  ob_start();
  include(get_theme_root() . '/' . get_template() . "/$file.php");
  return ob_get_clean();
}

add_shortcode('myphp1', 'short_php');

上記は親テーマを利用している場合です。小テーマを利用している場合は以下のように書きます。今回はこちらを追記します↓

//phpをショートコードで読み込む ※小テーマの場合
function short_php($params = array()) {
  extract(shortcode_atts(array(
    'file' => 'default'
  ), $params));
  ob_start();
  include(STYLESHEETPATH . "/$file.php");
  return ob_get_clean();
}

add_shortcode('myphp1', 'short_php');

表示したい場所にショートコードを書きます

表示したい投稿・固定ページに以下のショートコードを記述します

[myphp1 file='test']

テスト

以下は実際にこの記事内にショートコードを書いて表示させているテストです。

test.php
★★★★★★★★★

これはショートコードで表示されている部分だよ!
( ^ω^)

★★★★★★★★★

はい!できましたね。
これで投稿・固定ページ内でphpを使えるようになりますよー!ぜひお試しあれ。

この記事が気に入ったら
いいね!しよう
最新情報をお届けします。
yoneco

@_yonecoです。都内で働くWebデザイナー&ディレクターです。暇な時はサイトを更新したり動画を撮ったり落書きしたりイベントに出かけたりしています。お気軽にお声掛けくださいな

yonecoをフォローする
wordpressメモ
この記事を共有(シェア)する
ウェブ屋の日常

コメント