【プラグイン不要】子テーマOK!ショートコードで投稿・固定ページ内に PHPファイルを呼び出す

目次

functions.php に追加するコード

以下のコードを functions.php に追加します。
これで PHPファイルをショートコードで呼び出すことができるようになります。
子テーマを用意している方は子テーマの functions.php へ。

PHPファイルの作成方法については後述します。

function PHP_Include($params = array()) {
    extract(shortcode_atts(array(
        'file' => 'default'
    ), $params));
    ob_start();
    include(get_stylesheet_directory() . "/$file.php");
    return ob_get_clean();
}
add_shortcode('hwebphp', 'PHP_Include');

投稿・固定ページ内に記述するショートコード

投稿・固定ページの任意の箇所に PHPファイルを読み込むためのショートコードを記述します。
PHPファイルが「myFile.php」とすると、ショートコードは下のようになります。

[hwebphp file='myFile']

'myFile'は、PHPファイルの .php を抜いたファイル名です。

【プラグイン不要】子テーマOK!ショートコードで投稿・固定ページ内に PHPファイルを呼び出す

更新情報をショートコードで表示してみる<実践編>

実際に、更新情報を一覧表示するための PHPファイルを作成して、それをショートコードでトップページに呼び出してみます。

作業の手順

  1. PHPファイル「news.php」を作成する
  2. functions.php にコードを追加する
  3. トップページ内にショートコードを記述する

PHPファイル「news.php」を作成する

news.php と名前をつけて保存 → アップロード。
※日付と件名(ページタイトル)のみ。アイキャッチは表示されません。

<dl class="news">
    <?php
    global $post;
    $tmp_post = $post;
    $myposts = get_posts('numberposts=表示する件数&category=表示するカテゴリー ID');
    foreach($myposts as $post) :
    setup_postdata($post);
    ?>
    <dt><?php the_time('Y年m月d日') ?></dt>
    <dd><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></dd>
    <?php endforeach; ?>
    <?php $post = $tmp_post; ?>
</dl>

functions.php にコードを追加する

news.php と同じフォルダ内の functions.php に追加 → アップロード。

function PHP_Include($params = array()) {
    extract(shortcode_atts(array(
        'file' => 'default'
    ), $params));
    ob_start();
    include(get_stylesheet_directory() . "/$file.php");
    return ob_get_clean();
}
add_shortcode('hwebphp', 'PHP_Include');

任意の場所にショートコードを記述する

更新情報を表示したい場所にショートコードを記述して完成。

[hwebphp file='news']

※[] は半角に変えて下さい。