公開日: 更新日:

WordPress固定ページでPHPコードの実行・編集・埋め込む方法

以下の問題を解決します。

  • 固定ページに新着情報の一覧を表示したい
  • 固定ページのエディター内でPHPコードを埋め込みたい
  • 投稿のエディター内でPHPコードを実行したい

WordPressのエディターでは標準的にPHPを実行することはできません。
そんな時便利なプラグインをご紹介します。

 

WordPress固定ページでPHPコードの実行・編集・埋め込む方法

WordPressのエディターでは標準的にPHPを実行することはできません。
どうしても固定ページや、投稿のエディター内で外部PHPのファイルの読み込みや、PHPを実行したい場合の解決方法として、4つのプラグインを紹介します。

Insert PHP Code Snippet

最初に紹介するプラグインは「Insert PHP Code Snippet」です。「固定ページ上でPHPを編集できるようになるプラグインといえばコレ!」という、定番プラグインです。

Insert PHP Code Snippet

 

Insert PHP Code Snippetプラグインのインストール方法

Insert PHP Code Snippetはワードプレス公式ディレクトリーに登録されている公式プラグインです。
以下の2パターンでWordPressサイトにインストール出来ます。

インストール方法

  1. ダッシュボード→プラグイン→新規追加→「Insert PHP Code Snippet」で検索
  2. 公式サイトからZIP形式のプラグインファイルをダウンロード、ダッシュボードへアップロード

Insert PHP Code Snippetプラグインの使い方

Insert PHP Code Snippetを有効化すると、WordPressのダッシュボード上に管理メニュー「XYZ PHP Dode」という専用の管理メニューが表示されます。

Insert PHP Code Snippetプラグインのザックリとした使い方

  1. 実行したいPHPコードをInsert PHP Code Snippet管理メニュー上で作成
  2. 埋め込み用のショートコードが生成される
  3. ショートコードを固定ページや投稿のエディター内に貼り付ける

では解説していきます。

管理メニュー上にある「PHP Code Snippets」を選択します。
「PHP Code Snippet」ページが表示されたら、「Add New PHP Code Snippest」をクリックします。

「Tracking Name 」に、任意の名称を入力します。こちらは管理用の名称です。
「PHP code」に、実行したいPHPコードを入力します。

入力が完了したら画面の「Create」をクリックして保存します。

作成したデータは、「PHP Code Snippets」一覧に表示されます。
このPHPコードはいつもでここから編集できます。

 

「Snippet Short Code」部分が、埋め込み用のショートコードです。
このコードを、固定ページ、投稿のエディター内に埋め込むとPHPコードが実行されます。

ちなみにショートコードは、エディター上から選択できる状態です。
わざわざSnippet Short Codeの管理メニュー上に移動して、コピーする必要はありません。

 

作成したPHPコードのショートコードを、固定ページ、投稿のエディター内に貼り付ければ作業完了です。

Snippet Short Codeプラグインを停止した場合はどうなるの?

固定ページ上に埋め込まれたショートコードはそのまま残ります。
PHPは実行されません。

プラグインを再開すると、登録されているショートコードは残っていますので
停止前と同じ状態に戻ります。

 

ウィジェットにも対応している

登録したPHPコードは、ウィジェットに埋め込むこともできます。
Snippet Short Codeを有効化すると、ウィジェットに「Insert PHP Snippet」が追加されます。
このウィジェットを任意の位置に配置し、実行したいPHPコードを選択するという仕組みです。

 

PHPコードを固定ページ上で実行できる「PHP Everywhere」

PHP Everywhereプラグインは、PHP Code Snippets同様に、固定ページ、投稿、ウィジェットにPHPコードを埋め込むことが出来るプラグインです。PHP Code Snippetsと異なる機能として、PHPを実行できるユーザー権限を設定できるという点があります。

PHP Everywhere

 

PHP Everywhereのインストール方法

PHP Everywhereは更新プラグインディレクリーに登録に登録されているプラグインです。
一般的なプラグインと同じように、以下のいずれかの方法でワードプレスにインストールできます。

インストール方法

  1. ダッシュボード → プラグイン → 新規追加 → 「PHP Everywhere」で検索
  2. プラグインディレクトリーからZIP形式のファイルをダウンロード → サイトにアップロード

 

PHP Everywhereの使い方

PHPコードを埋め込みたいたい固定ページ、投稿の編集画面へ移動します。
画面右側に表示される「PHP Everywhere」に任意のPHPコードを入力します。

エディター内でPHPコードを実行したい箇所に「[php_everywhere]」を埋め込みます。

 

これでPHPの埋め込み作業は完了です。
 

もし画面右手に「PHP Everywhere」が表示されない場合は、画面上部の表示オプションをクリックし、「PHP Everywhere」にチェックが入っているかを確認しましょう。

 

ウィジェットでPHPコードを実行する方法

PHP Everywhereを有効化すると、「PHP+HTML」というウィジェットが用意されます。
他のウィジェット同様に、表示したい任意のエリアを指定して、実行したいPHPコードを記述します。

 

PHPコードを編集・実行できるユーザー権限の設定方法

ダッシュボード → 設定 →「PHP Everywhere」をクリックします。

「Settings」の項目に「Who can modify the PHP in posts and pages?」とあります。
誰がPHPコードの編集を固定ページと投稿で行えますか?という意味です。

設定オプション

  • Administoratr, Editor, Author :管理者、編集者、投稿者
  • Administrator Only :管理者のみ

標準的に「Administoratr, Editor, Author」が有効になっています。
複数人でサイトを運営している場合、誰でもPHPを実行できる状態は危険なので、Administrator Only(管理者のみ)に設定を変更することをおススメします。

 

PHPコードを固定ページに埋め込むプラグイン「Allow PHP Execute」

Allow PHP Execute

今回紹介した他のプラグイン同様に、エディター、ウィジェット対応です。

さらに、タイトル部分でPHPを編集できるプラグインは、このAllow PHP Executeぐらいかもしれません。特殊な用途で、タイトルでPHPを実行する必要性がある場合はお勧めなプラグインです。

 

Allow PHP Executeのインストール方法

Allow PHP Executeプラグインはワードプレス公式ディレクトリーに登録されています。
以下どちらの方法でもワードプレスサイトにインストールできます。

インストール

  1. ダッシュボードにログイン → プラグイン → 新規追加 → 「Allow PHP Execute」で検索
  2. 公式ディレクトリーからZIP形式のプラグインファイルを入手 → ワードプレスにアップロード

 

 

Allow PHP Executeの使い方

Allow PHP Executeプラグインを有効化すると、ダッシュボード上に専用の管理メニューが追加されます。

Allow PHP Executeのオプションが表示されたら、PHPを実行したい項目を選択します。

  • Add Php Code In Title section (Page ,Post or Any post type)
    タイトルで実行するか?
    かなり珍しいオプションですね。
  • Add Php Code In Content section (Page ,Post or Any post type)
    エディター内でPHPを実行するか?
  • Add Php Code In Text Widget section(Default Text Widget)
    ウィジェットでの利用の有無

 

「Add Php Code In Content section (Page ,Post or Any post type)」で固定ページ、投稿エディター内のでPHPが利用可能になったら、任意のPHPコードを使えます。
ショートコードなどはありません。

簡単ですね。

ウィジェットでPHPを実行する方法

Allow PHP Executeを有効化すると、テキストウィジェット上にPHPコードを埋め込むことができます。
テキストウィジェットを任意の箇所に移動し、PHPコードを編集してください。

※専用のウィジェットがはありません。

 

ウィジェットにPHPを埋め込む「PHP Code Widget」プラグイン

PHP Code Widgetプラグインは固定ページや投稿ではなく、ウィジェットでPHPを実行したいという際に使えるプラグインです。

ワードプレスの仕様上、ウィジェットではPHPを埋め込むことはできません。
PHP Code Widgetを有効化すると、ウィジェットで任意のPHPコードを実行できるようになります。

PHP Code Widget

 

PHP Code Widgetのインストール方法

PHP Code Widgetプラグインは公式ディレクトリーに登録されています。
以下のいずれかの方法でワードプレス上で利用可能になります。

インストール方法

  1. ダッシュボードにログイン → プラグイン → 新規追加 → 「PHP Code Widget」で検索
  2. 公式ディレクトリーからZIP形式のプラグインファイルを入手 → ワードプレスにアップロード

 

PHP Code Widgetの使い方

プラグインを有効化しても、ダッシュボードに専用の管理メニューの類は追加されません。
ウィジェットに「PHPコード」が表示されています。

この「PHP」を任意の位置へ移動し、実行したいPHPコードを埋め込むとうプラグインです。

 

埋め込み用のPHPサンプルコード

今回紹介したPHPコードを固定ページ上で編集できるようにするプラグインは、ワードプレス関数が利用できます。
よく使うサブループ等のサンプルコードをご紹介します。「固定ページに投稿の一覧を表示したい!」いった際に参考にしてください。
 

ループで投稿(Post)を出力するPHPコード

サブループの基本のコードですね。
サンプルコード内の「ループの内容」のところに、表示させたい項目を編集しましょう。

<?php
$news_query = new WP_Query(
  array(
    'post_type'      => 'post',
  )
);
?>
<?php if ( $news_query->have_posts() ) : ?>
  <?php while ( $news_query->have_posts() ) : ?>
    <?php $news_query->the_post(); ?>
    ループの内容
  <?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>

ループで投稿の件数を指定するPHPコード

サブループで、投稿を5件表示するコードです。
posts_per_pageの値が表示する件数です。任意の値に変更可能です。
全ての投稿を表示したい場合(制限無しで全投稿)は、「-1」を記述します。

<?php
$news_query = new WP_Query(
  array(
    'post_type'      => 'post',
    'posts_per_page' => 5,
  )
);
?>
<?php if ( $news_query->have_posts() ) : ?>
  <?php while ( $news_query->have_posts() ) : ?>
    <?php $news_query->the_post(); ?>
    ループの内容
  <?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>

ループでアイキャッチを出すPHPコード

サブループで投稿の一覧とともに、アイキャッチを表示するサンプルPHPコードです。

<?php
$news_query = new WP_Query(
  array(
    'post_type'      => 'post',

  )
);
?>
<?php if ( $news_query->have_posts() ) : ?>
  <?php while ( $news_query->have_posts() ) : ?>
    <?php $news_query->the_post(); ?>
     <?php the_post_thumbnail('thumbnail'); ?>
  <?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>

ループで抜粋を表示するPHPコード

サブループで投稿の一覧を表示し、「抜粋」を出力するPHPコードです。

<?php
$news_query = new WP_Query(
  array(
    'post_type'      => 'post',
  )
);
?>
<?php if ( $news_query->have_posts() ) : ?>
  <?php while ( $news_query->have_posts() ) : ?>
    <?php $news_query->the_post(); ?>
    <?php the_excerpt(); ?>
  <?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>

ループで特定のカテゴリーを表示するPHPコード

サブループで、特定のカテゴリーの投稿のみを表示するコードです。「category_name」で、表示したい任意のカテゴリーを指定します。

<?php
$news_query = new WP_Query(
  array(
    'post_type'      => 'post',
    'category_name' => 'new',
  )
);
?>
<?php if ( $news_query->have_posts() ) : ?>
  <?php while ( $news_query->have_posts() ) : ?>
    <?php $news_query->the_post(); ?>
    ループの内容
  <?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>

ループで特手のカテゴリーを除外するPHPコード

サブループで投稿の一覧を表示するコードですが、特定のカテゴリーに属する記事を除外(表示しない)するコードです。

<?php
$news_query = new WP_Query(
  array(
    'post_type'      => 'post',
    'category_not_in' => '1',
  )
);
?>
<?php if ( $news_query->have_posts() ) : ?>
  <?php while ( $news_query->have_posts() ) : ?>
    <?php $news_query->the_post(); ?>
    ループの内容
  <?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>

ループでカスタム投稿を出すPHPコード

サブループで「投稿」ではなく特定のカスタム投稿の記事のみを表示するサンプルコードです。

<?php
$news_query = new WP_Query(
  array(
    'post_type'      => 'other',
  )
);
?>
<?php if ( $news_query->have_posts() ) : ?>
  <?php while ( $news_query->have_posts() ) : ?>
    <?php $news_query->the_post(); ?>
    ループの内容
  <?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>

PHPを固定ページ、投稿に埋め込み記事のまとめ

いかがでしたか?
通常、固定ページ内でPHPを使うことはワードプレスの仕様上ありません。
ワードプレスに慣れた人でテンプレートのカスタマイズが可能であれば、固定ページテンプレートファイルにPHPコードを記述するほうおススメです。プラグインを使った運用となると、いざプラグインが使えなくなった際に困ってしまいます。

それでも、特別な事情で固定ページ内にPHPコードを実行するといった場合はに、今回紹介したプラグインが役立ちます。ぜひお試しください。

本記事が、皆さんのお役に立てば何よりです。

 


この記事を書いた人
うくさ

うくさ IT業界歴18年です。当カスタマイズネット所属エンジニア。
ワードプレス、シスコシステムズ社製ネットワーク機器担当。


この記事の関連記事



新着コラム