WordPressの記事やウィジェットからPHPファイルを呼び出す方法【MUプラグイン】

WordPressの記事やウィジェットに直接PHPの実行コードを書いても動きません。
これはWordPressの仕様。
セキュリティの観点からそうなっています。

でも、

仕様とわかっていても使いたいときだってあるよね

そういうときはPHPをインクルードしてショートコードで実行できます。
本記事ではそのためのコードを紹介します。

本稿のコードはテーマを選びません。
SWELLだろうとCocoonだろうとLightningだろうとなんでもいけます。
そのため、

MUプラグインにするのがおすすめです

MUプラグインについて詳しく知りたい方はこちらをお読みください。

天満川鈴 WRITTEN BY 天満川鈴
スポンサーリンク

導入例

サイドバーウィジェット

現在使っているテーマGeneratePressのものです。
サイドバーにショートコードを利用したTOC(目次)を設置しています。

他にも関連記事・人気記事・最新記事など色々使えます。

トップページレイアウト

本サイトで用いていた過去のレイアウトです。
当時はLuxeritasでタイル型レイアウトを採用していなかったことから自分で作りました。
各カテゴリをウィジェット化して、固定ページに貼り付けています。

導入方法

1.MUプラグインを作る

PHPファイルをmu-pluginsフォルダに入れればMUプラグインとして機能します。

/DocumentRoot/wp-content/mu-plugins/

mu-pluginsフォルダにpartsという名前でフォルダを作成します。
kimoota-include.php(名前は任意)を作成し、次のコードを記述します。

<?php
/**
* Plugin Name: Kimoota Include
* Description: PHPパーツをショートコードで読み込むMUプラグイン
* Version: 1.0.0
* Author: 天満川鈴
*/

if ( ! defined( 'ABSPATH' ) ) {
exit;
}

/**
* PHPパーツをショートコードで読み込む
*
* 使用例:
* 

*/
add_shortcode( 'kimoota_include', function ( $atts ) {

$atts = shortcode_atts(
array(
'file' => '',
'menu' => '',
),
$atts,
'kimoota_include'
);

// ファイル名をチェック
$file = (string) $atts['file'];

if ( '' === $file || ! preg_match( '/\A[a-zA-Z0-9_-]+\z/', $file ) ) {
return '';
}

// パーツ側で使う変数
$menu = sanitize_key( $atts['menu'] );

// MUプラグイン内の parts フォルダ
$parts_dir = trailingslashit( __DIR__ ) . 'parts/';
$file_path = $parts_dir . $file . '.php';

if ( ! is_readable( $file_path ) ) {

if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
error_log(
sprintf(
'Kimoota Include: %s が見つかりません。',
$file_path
)
);
}

return '';
}

ob_start();
include $file_path;

return ob_get_clean();
} );

2.使いたいコードをPHPファイルにする

使いたいコードを記述したhoge.phpを作成し、partsフォルダに配置します。

3.使いたい場所にショートコードを記述する

ショートコードを記述します。
たとえばサイドバーウィジェットとして使いたければ、カスタムHTMLウィジェットの中にショートコードを記述して配置します。

まとめ

MUプラグイン化しているので、テーマを切り替えたときもPHPコードが動きます。
とりあえず新しいテーマを試してみたいときなど、ショートコードのまま表示されず便利です。

この方法を知っているとサイト設計の幅が広がります。
ただし強力な機能でもあるゆえ、信頼できないコードは配置しないようにしてください。

ぜひ試してみてください!

 

スポンサーリンク
天満川 鈴のプロフィール画像
WRITTEN BY

天満川 鈴

未経験からWEB業界に入り、現在はWEBディレクターとして実務に従事。 要件整理・導線設計・コンテンツ構成などを学びながら、日々改善を重ねています。 AIを活用したコンテンツ制作・効率化を強みとし、プロンプト設計を含めた制作フローの最適化にも取り組んでいます。

詳しいプロフィールはこちら

RECOMMENDED INFRASTRUCTURE

私はConoHa以外を勧めない。

2016年からずっとConoHaを使い倒してきました。知人に「一番いいサーバーは?」と聞かれたら、迷わずここを教えます。

レンタルサーバーナンバーワンを誇る高速環境であることはもちろん。私が「黒い画面って何?」というド素人からサイト制作のプロになれたのは、傍らにずっとこのはちゃんがいてくれたから。
私がConoHaを使い続ける、嘘偽りない理由です。

※ConoHaに初めて入会の方限定。
本CTAの画像もしくはボタンを押してWINGパック12か月以上を契約すると、最大5000円割引してもらえます。

公式サイトで詳細を見る
× 閉じる