『Insert PHP Code Snippet』PHPコードを挿入できるWordPress Plugin活用法

2017年11月19日WordPress,ウェブサイト作成

コードイメージ PC モニター

予め登録しておいたPHPコードをShort Codeで挿入できるWordpress用プラグイン『Insert PHP Code Snippet』の使い方と、カスタムフィールドを利用した活用法を紹介します。

PHPコードを挿入するプラグインとしては引数も簡単に使えるPost Snippets が使いやすいのですが、スニペットの数が増えると管理が難しくなる難点があります。またPHPの挙動も一部よくわからないところもあるため使いづらいところがあります。

そんな悩みに答えてくれるのが『Insert PHP Code Snippet』です。『Insert PHP Code Snippet』はPHPコード挿入専用ですがスニペットの管理が容易で、順番の並べ替えやページあたりの表示数も指定できるなど非常に使いやすいプラグインです。

ただ一点、Post Snippetsと違いショートコードから引数を渡すことができないという難点があります。そのためInsert PHPで引数を使いたい時はカスタムフィールドに入力しておいて、それをInsert PHPで呼び出して利用する必要があります。

カスタムフィールドは使ったことがないと面倒そうに見えますが、スニペット(PHPコード)さえ登録しておけばこれほど便利なものはなく、表計算ソフトから余計なタグをつけずにでテーブルをきれいに出力できたりもします。

Insert PHP Code Snippet の導入と使い方

インストールはプラグイン新規追加ページで「Insert PHP Code Snippet」を検索するか公式から落としてきます。

Insert PHP Code Snippet

基本的な使い方

インストールすると管理バー下に「XYZ PHP Code」という項ができています。Insert PHP~ではないので紛らわしいですが、XYZ PHP Codeが正式名称のようで。

insert PHP snippet

XYZ PHP Code(PHP Code Snippets)を開くとスニペットのリストが表示されます。

insert PHP snippet

「Add New PHP Code」で新規追加。既存のコードはEditで編集モードに移動します。

一時停止させたい時はDeactiveにすると、スニペットを利用しているすべてのページでコードが実行されなくなります。

エディット画面

insert PHP snippet

エディット画面では「トラッキングネーム」の入力欄があります。これはショートコードに入力するスニペット名になるもので好きな名前をつけられるのですが、_アンダーバーは使えません。ハイフンならOK。

コードにPHPを記述するためのHTMLタグ <?php?> は不要です。すべてPHPで書くことになるので、テキストを表示させたければecho などで出力します。

新規ならCreate、既存ならUpdateボタンを押して登録完了です。

設定

Settingは3項目しかないので分かりやすいです。

  • Sorting of snippets
    (並べ替え順序)
  • Credit link to author
    (作者サイトへのありがとうリンクの有無)
  • Pagination limit
    (1ページあたりの表示数)

1ページあたりの表示件数と並べ替えができるので、これを活用すれば数が増えても楽に管理ができます。

簡単なサンプル

カスタムフィールドに入力した値を呼び出してみます。PHPコードを書く⇒カスタムフィールドに入力するの順番で説明します。

PHP Code Snipetにコードを記入

まずはPHPの部分から書いていきます。XYZ PHP Code からスニペットリストに移動して、Add New PHP Code で新規のコードを作成します。

Tracking Name
『custom-field-data』とします。

コード

global $post;
/* カスタムフィールドの内容を取得 */
$custom_data= get_post_meta($post->ID,$custom_field_name, 'true');
echo $custom_data;

get_post_meta()でページID、カスタムフィールド名を取得しています。trueをfalseにするとフィールド名も含めて取得します。

投稿ページ

つぎに投稿ページでカスタムフィールドを作成します。

カスタムフィールドは投稿画面下にある『カスタムフィールドボックス』から追加します。

wordpressカスタムフィールド

カスタムフィールドがなかったら?カスタムフィールドがなかったら、投稿画面右上にある「表示オプション」を開き、『カスタムフィールド』にチェックを入れます。
wordpressカスタムフィールドwordpressカスタムフィールド
するとカスタムフィールドボックスが下の方に追加されているはずです。

 

カスタムフィールドの追加を押して、入力画面を表示します。名前と値に以下のように入力し、カスタムフィールドを追加を押せば完了。

名前: custom_field_data
値 : <span style="color:red;font-weight:bold;">これはカスタムフィールドのサンプルですよ</span>

wordpressカスタムフィールド新規追加

入力した項目が一覧に追加されているのが確認できるはずです。

あとは先に作成しておいたスニペットを投稿画面に「[xyz-ips snippet="custom-field-data"]」というショートコードで挿入します。

実行結果⇒ Array

こんなふうに入力した値を簡単に呼び出せるので、投稿内で設定する引数として利用できます。

表計算ソフトのデータをコピペでテーブルにする

表計算ソフトからテーブルをコピペすると、いろんなタグが付いてめんどくさいですよね。ついたタグを無視するようにCSSで調整することはできますが煩わしい。

できればテーブルIDかクラスだけ入った状態でほしい。カスタムフィールドにコピペするだけでそんな要求に応えたテーブルを作れるスニペットがこれ。

customfield-tableという名前(トラッキングネーム)で登録します。

/*   カスタムフィールドからデータを取得   */
global $post;
$table_data= get_post_meta($post->ID,$custom_field_name, 'true');
/*   データを行で分割   */
$table_data=explode("\r\n",$table_data);
/*   テーブル作成   */
echo '<table id="table1" class="custom-table"><thead>';
/*   thead   */
echo '<tr><th>';
echo str_replace("\t",'</th><th>',$table_data[0]);
echo '</th></tr>';
/*   tbody内   */
echo '</thead><tbody>';
/*   1行目のラベルが不要ならtheadを削除の上$iを0に。   */
$i=1;
$len=count($table_data);
while($i<$len){
$current_row=explode("\t",$table_data[$i]);
echo '<tr>';
echo '<td>'.$current_row[0].'</td><td>'.$current_row[1].'</td><td>'.$current_row[2].'</td><td>'.$current_row[3].'</td>';
echo '</tr>';
$i++;
}
echo '</tbody></table>';

次に投稿ページのカスタムフィールドに新規追加します。名前を「table_data」にして、値に表計算ソフトから表にしたい部分をコピペ。保存したら本文に[xyz-ips snippet="customfield-table"]を貼りつけてプレビュー。

するとコピペしたデータがtableとして出力されているはずです。

テーブルで1行目をラベルとして用いていて、1行目を<thead>内のTHに、2行目から<tbody>に<td>で入れています。

IDを’table1’としてtbodyも指定しているので、datatablesもそのまま適用できます。

実行サンプル(datatablesを適用したオリジナルはこちら

場所タブ・項目設定項目注釈
カスタマイズHead タグ追加するタグcanonical を追加,next / prev を追加,RSS Feed を追加,Atom Feed を追加
カスタマイズHead タグトップページの meta description
カスタマイズHead タグ構造化データの設定検索エンジンに認識させるサイト名のタイプ

簡単・軽い・便利

『Insert PHP Code Snippet』はShort Codeから直接引数が扱えないという難点はありますが、投稿ページや固定ページのカスタムフィールドを使うことで解消できます。

Post SnippetsはHTMLやjsの挿入に、PHPコードはInsert PHP Code Snippetと使い分けると便利になります。

Post Snippets の使い方