このページの本文へ

前へ 1 2 次へ

  • twitterでつぶやく
  • はてなブックマークに登録
  • del.icio.usに登録
  • livedoorクリップに登録
  • Buzzurlに登録
  • StumbleUponに登録
  • Google Bookmarksに登録
  • Facebookでシェア
  • Yahoo!ブックマークに登録
  • お気に入りに登録
  • 本文印刷

手軽に作れるショートコードのプラグインの書き方

面倒な処理を1行に!WordPressのショートコードAPI

2009年02月25日 06時00分更新

文● 藤本 壱


ショートコードのプラグインはこうして書く!

 ショートコードのプラグインは、比較的簡単に作れます。たとえば、前のページで紹介したloopショートコードのプラグインは、以下のようになります。


<?php
/*
Plugin Name: Loop
Plugin URI: http://www.h-fj.com/blog/
Description: 同じ単語を繰り返し出力します。
Author: Hajime Fujimoto
Version: 1.0
Author URI: http://www.h-fj.com/blog/
*/
function loop_func($atts) {
    // 属性の値を得る
    extract(shortcode_atts(array(
        'word' => '', 'times' => 1
    ), $atts));
    // HTMLを生成する
    for ($i = 0; $i < $times; $i++) {
        $html .= $word;
    }
    // 結果を出力する
    return $html;
}
add_shortcode('loop', 'loop_func');
?>

 前半のコメントの部分(1~9行目)は、プラグインの名前や作者名などの情報をWordPressのプラグインの管理画面に表示するためのもの。後半のPHPのコードが、プラグインの本体です。

 まず、ショートコードの処理を行なうために、ハンドラの関数を作ります。この関数には、パラメータとして、ショートコードに指定した属性(「word="こんにちは!"」など)の情報が渡されます。パラメータは「$atts」という変数で受け取るようにします(11行目)。

 これらの属性は、「shortcode_atts」というAPIで、属性名と同名の変数に代入することができます(13行目)。また、shortcode_atts APIに属性のデフォルト値を渡すこともできます。上のリストでは、word属性のデフォルト値は空文字にし、times属性のデフォルト値は1にしています(14行目)。

 そして、属性の値を利用して出力するHTMLを組み立て(17~19行目)、そのHTMLをハンドラ関数の戻り値とします(21行目)。

 最後に、「add_shortcode」というAPIを使って、ショートコードの名前(今の例なら「loop」)と、そのショートコードのハンドラ関数(上のリストでは「loop_func」)を、WordPressに登録します(24行目)。

 上記のPHPのコードを、文字コードをUTF-8にして適当なファイル名(「loop.php」など)で保存し、WordPressの「wp_content」→「plugins」ディレクトリにアップロードします。あとは、管理画面の「プラグイン」メニューからプラグインを有効化すれば、ショートコードを使えるようになります。


ショートコードAPIを利用したプラグイン

ショートコードプラグインの例
をかもと氏作の「Google Maps Anywhere」
ショートコードプラグインの例
筆者作の「カスタムフィールドのHTMLを記事に挿入するプラグイン」

 ショートコードAPIを利用したプラグインは、いろいろとリリースされています。たとえば、Googleマップをブログに貼り付ける「Google Maps Anywhere」というプラグインがあります(をかもと氏作)。

http://wppluginsj.sourceforge.jp/googlemaps-anywhere/

 また、筆者は「カスタムフィールドのHTMLを記事に挿入するプラグイン」を公開しています。WordPressに入力したテキストは、通常、改行が<br />に置き換わったり、自動整形した状態で表示されますが、HTMLやJavaScriptをそのまま入力したい場合、これでは困ります。このプラグインでは、カスタムフィールドに入力したHTMLコードをそのまま実行できるようにするものです。

http://www.h-fj.com/blog/archives/2009/02/10-095426.php


 ショートコードAPIに関する詳しい情報は、WordPress Codexの以下のページにあります。このページを参照して、ショートコードAPIを使ったプラグイン作りにチャレンジしてみてはいかがでしょうか。

http://wpdocs.sourceforge.jp/%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%B3%E3%83%BC%E3%83%89_API

前へ 1 2 次へ

カテゴリートップへ

ASCII.jp会員サービス 週刊Web Professional登録

Webディレクター江口明日香が行く

みんなが買ってる最新アイテムはコレだ!

Microsoft Windows 7 Home Premium 通常版 Service Pack 1 適用済み

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

マイクロソリューション Micro Solution Inc.

83人が購入

BenQ 24型 LCDワイドモニタ XL2420T

BenQ 24型 LCDワイドモニタ XL2420T

ベンキュージャパン

37,238円〜

3人が購入

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

アスキー・メディアワークス

2,499円〜

20人が購入

メモリーカード 32GB (PCH-Z321J)

メモリーカード 32GB (PCH-Z321J)

ソニー・コンピュータエンタテインメント

7,772円〜

6人が購入

Amazon.co.jp