以下の問題を解決します。
WordPressのエディターでは標準的にPHPを実行することはできません。
そんな時便利なプラグインをご紹介します。
WordPressのエディターでは標準的にPHPを実行することはできません。
どうしても固定ページや、投稿のエディター内で外部PHPのファイルの読み込みや、PHPを実行したい場合の解決方法として、4つのプラグインを紹介します。
最初に紹介するプラグインは「Insert PHP Code Snippet」です。「固定ページ上でPHPを編集できるようになるプラグインといえばコレ!」という、定番プラグインです。
Insert PHP Code Snippetはワードプレス公式ディレクトリーに登録されている公式プラグインです。
以下の2パターンでWordPressサイトにインストール出来ます。
インストール方法
Insert PHP Code Snippetを有効化すると、WordPressのダッシュボード上に管理メニュー「XYZ PHP Dode」という専用の管理メニューが表示されます。
Insert PHP Code Snippetプラグインのザックリとした使い方
では解説していきます。
管理メニュー上にある「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コードのショートコードを、固定ページ、投稿のエディター内に貼り付ければ作業完了です。
固定ページ上に埋め込まれたショートコードはそのまま残ります。
PHPは実行されません。
プラグインを再開すると、登録されているショートコードは残っていますので
停止前と同じ状態に戻ります。
登録したPHPコードは、ウィジェットに埋め込むこともできます。
Snippet Short Codeを有効化すると、ウィジェットに「Insert PHP Snippet」が追加されます。
このウィジェットを任意の位置に配置し、実行したいPHPコードを選択するという仕組みです。
PHP Everywhereプラグインは、PHP Code Snippets同様に、固定ページ、投稿、ウィジェットにPHPコードを埋め込むことが出来るプラグインです。PHP Code Snippetsと異なる機能として、PHPを実行できるユーザー権限を設定できるという点があります。
https://ja.wordpress.org/plugins/php-everywhere/
PHP Everywhereは更新プラグインディレクリーに登録に登録されているプラグインです。
一般的なプラグインと同じように、以下のいずれかの方法でワードプレスにインストールできます。
インストール方法
PHPコードを埋め込みたいたい固定ページ、投稿の編集画面へ移動します。
画面右側に表示される「PHP Everywhere」に任意のPHPコードを入力します。
エディター内でPHPコードを実行したい箇所に「[php_everywhere]」を埋め込みます。
これでPHPの埋め込み作業は完了です。
もし画面右手に「PHP Everywhere」が表示されない場合は、画面上部の表示オプションをクリックし、「PHP Everywhere」にチェックが入っているかを確認しましょう。
PHP Everywhereを有効化すると、「PHP+HTML」というウィジェットが用意されます。
他のウィジェット同様に、表示したい任意のエリアを指定して、実行したいPHPコードを記述します。
ダッシュボード → 設定 →「PHP Everywhere」をクリックします。
「Settings」の項目に「Who can modify the PHP in posts and pages?」とあります。
誰がPHPコードの編集を固定ページと投稿で行えますか?という意味です。
設定オプション
標準的に「Administoratr, Editor, Author」が有効になっています。
複数人でサイトを運営している場合、誰でもPHPを実行できる状態は危険なので、Administrator Only(管理者のみ)に設定を変更することをおススメします。
今回紹介した他のプラグイン同様に、エディター、ウィジェット対応です。
さらに、タイトル部分でPHPを編集できるプラグインは、このAllow PHP Executeぐらいかもしれません。特殊な用途で、タイトルでPHPを実行する必要性がある場合はお勧めなプラグインです。
Allow PHP Executeプラグインはワードプレス公式ディレクトリーに登録されています。
以下どちらの方法でもワードプレスサイトにインストールできます。
インストール
Allow PHP Executeプラグインを有効化すると、ダッシュボード上に専用の管理メニューが追加されます。
Allow PHP Executeのオプションが表示されたら、PHPを実行したい項目を選択します。
「Add Php Code In Content section (Page ,Post or Any post type)」で固定ページ、投稿エディター内のでPHPが利用可能になったら、任意のPHPコードを使えます。
ショートコードなどはありません。
簡単ですね。
Allow PHP Executeを有効化すると、テキストウィジェット上にPHPコードを埋め込むことができます。
テキストウィジェットを任意の箇所に移動し、PHPコードを編集してください。
※専用のウィジェットがはありません。
PHP Code Widgetプラグインは固定ページや投稿ではなく、ウィジェットでPHPを実行したいという際に使えるプラグインです。
ワードプレスの仕様上、ウィジェットではPHPを埋め込むことはできません。
PHP Code Widgetを有効化すると、ウィジェットで任意のPHPコードを実行できるようになります。
PHP Code Widgetプラグインは公式ディレクトリーに登録されています。
以下のいずれかの方法でワードプレス上で利用可能になります。
インストール方法
プラグインを有効化しても、ダッシュボードに専用の管理メニューの類は追加されません。
ウィジェットに「PHPコード」が表示されています。
この「PHP」を任意の位置へ移動し、実行したい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 endwhile; ?> <?php endif; ?> <?php wp_reset_postdata(); ?>
サブループで、投稿を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 $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 $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(); ?>
サブループで、特定のカテゴリーの投稿のみを表示するコードです。「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 $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 $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コードを実行するといった場合はに、今回紹介したプラグインが役立ちます。ぜひお試しください。
本記事が、皆さんのお役に立てば何よりです。
人気記事 初心者でも可能なSEO対策って何?
人気記事 【ゼロから始める】副業ブログで月5万円を稼ぐ!当社スタッフが試してみた方法と成果を公表