wordpress投稿ページでphpを動かす為にショートコードを作成して良い気分

投稿ページでphpを動かしたい WordPress

wordpressでカスタムをしているとPHPを使いたいことがよくあるのですが、phpをファイルで読み込むのが今のところMY BESTです。

function.phpに直接書き込む方法にもチャレンジしていましたが、プログラム文書への理解度が足りなく時間がかかっていましたが、この「phpファイルを別で作成してショートコードで呼び出し」かなりのスピードアップとなっています。

投稿でPHPを使いたい

投稿ページではPHP文は使用できないというのがwordpressでのセキュリティの為にとなっています。しかしこのスキルを手に入れたことで、かなり自由度が上がりました。

なぜダメなの?という疑問が出ましたので調べてみましたが、以下のサイトやwordpressフォーラムなどで書かれています。

大ざっばにまとめるとこんな感じでしょうか…

  • phpは簡単にIDやPassなどのwordpressのコアな部分を、ネットで表示させてしまう危険性がある。
  • wordpressでは適切なやり方が用意されているので、phpを学んでいくことでリスクに近づく可能性を減らすことができる。

phpファイル作成

windows標準の「メモ帳」は使わずにテキストエディタを使用してください。「terapad」など様々なものがあって、今は「Mery」を使用させていただいてます。

使い勝手の良いphp文として今回はスマホとPCで別の広告を表示したい文を表示します。またこちらのphpの説明は次の機会に行います。

「●●●.php」と●●●部分に任意の名前を付けて保存してください。エンコードはUTF-8(BOM無し)で保存しています。

<?php if ( wp_is_mobile() ) : ?>

スマホで表示したい文章をこちらに記入

<?php else: ?>

PCで表示したい文章はこちらに

<?php endif; ?>

FileZillaでアップロード

phpファイルを任意の場所にアップロードします。新たにフォルダを作成して、その中にphpファイルを入れる。そのフォルダごと子テーマファイルの中にアップロードすると後々の役に立ちます。

FileZillaは次のfunction.php編集でも使用しますのでそのままにしておいてください。

function.phpの編集

先ほど使用していたFileZillaで子テーマのfunction.phpをダウンロードしコピペでバックアップを作成して下さい。function.phpはwordpressのweb画面で編集していると、ミスがあった時に真っ白になって焦るので、FileZillaを使いましょう。

function.phpに今回書き込んだのはこちらです。

//ショートコードを使ったphpファイルの呼び出し方法
function my_php_Include($params = array()) {
 extract(shortcode_atts(array('file' => 'default'), $params));
 ob_start();
 include(STYLESHEETPATH . "/betup/$file.php");
 return ob_get_clean();
}
add_shortcode('myphp', 'my_php_Include');

表示したい場所に挿入文

投稿内の好きな箇所に以下のショートコードを差し込むとphpファイルが呼び出されて表示されます。いかにもphpを使いこなしているようで良い気分になりますね。


Warning: include(/home/himaster/soricity.com/public_html/wpress/wp-content/themes/cocoon-child-master/●●●.php): Failed to open stream: No such file or directory in /home/himaster/soricity.com/public_html/wpress/wp-content/themes/cocoon-child-master/functions.php on line 34

Warning: include(): Failed opening '/home/himaster/soricity.com/public_html/wpress/wp-content/themes/cocoon-child-master/●●●.php' for inclusion (include_path='.:/opt/php-8.1.22/data/pear') in /home/himaster/soricity.com/public_html/wpress/wp-content/themes/cocoon-child-master/functions.php on line 34

テンプレートファイルでも使えます

投稿内で便利に動くショートコードですが、wordpressをカスタマイズをしているうえでテーマ内で使用したいこともあるはずです。そんなときは以下を使用してください。