ページ読み込み

PHP実行ショートコードでページ読み込み

 WordPressのページにPHPを実行するショートコードを記述し、他ページの内容を読み込むようにするための覚書です。
 cocoonのchildテーマの functions.php に以下のコードを追加して、そのディレクトリの下に myphp フォルダを設置し、そこに urlhyouji.php など実行したい PHP を配置します。
 ここで設定した urlhyouji.php は、指定した他ページの内容を読み込むプログラムです。

//子テーマに myphp/○○.phpを配置する場合のショートコード
//ショートコードを使ったphpファイルの呼び出し方法

function php_include_shortcode($params = array()) {
extract(shortcode_atts(array('file' => 'urlhyouji'), $params));
ob_start();
include(STYLESHEETPATH . "/myphp/$file.php");
return ob_get_clean();
}
add_shortcode('sc_php', 'php_include_shortcode');
urlhyouji.php
<?php
/* 表示URL */
$url = "https://ne***.com/***/";
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_NOBODY, true);
$output =  curl_exec($ch);
curl_close($ch);
/* var_dump($output); */
?>

 もらってきたHPの記述をそのままにしているので、不要部分をコメントアウトしています。
 最後のマーカー部分を消してしまうと、読み込んだページ内容を指定の場所に全部吐き出します。これを記述すると、読み込み元のページの表示には何の影響もありません。
 curl_setopt の詳しい説明はこちら。
 PHPをページで実行するには、

[sc_php file='urlhyouji']

 ただ単に

[sc_php]

と書くと、ディフォルトで指定した urlhyouji.php を実行します。 file を指定することで他の PHP も実行できます。

タイトルとURLをコピーしました