2012年9月29日土曜日

WordPressの投稿のデータ取得のいろいろ

WordPressでIDがわかっている投稿を1だけ取得する場合は「get_post」関数を使うと思います。

<?php get_post($id); ?>

この関数を使うときに注意することはIDは変数で渡す。くらいですが、
関数のリファレンスを見て恥ずかしながら初めて知りました。
ID以外にも引数があるんですね。

<?php get_post($id, $output, $filter); ?>

詳しくはリファレンスみたほうが手っ取り早いですが、戻り値の型($output)を指定できるんですね。

  • "OBJECT" 投稿オブジェクト(初期値)
  • "ARRAY_N" インデックス配列
  • "ARRAY_A" 連想配列

何気に使えます。

リファレンス
http://codex.wordpress.org/Function_Reference/get_post

2012年9月13日木曜日

jQueryで郵便番号APIを使う

JavaScriptでWebAPIを使おうとするとクロスドメインの制限にどうしても引っかかってしまいます。
そこでJSONP。
JSON形式でデータを返してくれる+クロスドメインの制限も解決してくれるJSONPが使えるAPIを探してたらいいかんじのがありました。

クジラ 郵便番号 API
http://api.aoikujira.com/zip/


使い方は簡単です。
<script>
    function search_zipcode() {
        var url = "http://api.aoikujira.com/zip/zip.php";
        url += "?fmt=jsonp&callback=?";
        url += "&zn"+$("#zipcode").val();

        $.getJSON(
            url,
            function(res) {
                var address = "";
                address += res.state;     // 都道府県
                address += res.city;      // 市
                address += res.address;   // 住所
                $("#address").val(address);
            }
        );
    }
</script>
<input type="text" id="zipcode" value="" />
<input type="button" value="住所検索" onclick="search_zipcode();" />
<input type="text" id="address" value="" />

JSONPを使う場合、コールバック関数を指定しますがjQueryでは ? を指定することで処理を置換してくれます。



こんなかんじです。



2012年9月7日金曜日

WordPressのPluginの作り方

プラグインの作り方についてはかなり記事が公開されていますのでそちらを参考にしてもらえれば大体できます。

私が参考にした記事と簡単に作り方の紹介を。


ひとつ目の記事ですがほんとに簡単です。
マニュアルを読んでもよくわからないというかたはまずは試してみるといいと思います。

実際にプラグインを作っていくには
まず「wp-content/plugins」に「myplugin」というフォルダと「myplugin/myplugin.php」を作成します。

準備はこれだけです。
しかし、この状態でプラグインの一覧を見ても何も変わらないと思います。
認識させるにはテーマと同じようにコメントを記述する必要があります。
<?php
/*
 * Plugin Name: (プラグイン名) MyPlugin
 * Plugin URI: (プラグインの紹介ページ) http://foo.jp/
 * Description: (プラグインの説明) Sample MyPlugin
 * Version: (プラグインのバージョン) 1.0
 * Author: (作成者) Yasuhiro Hayashida
 * Author URI: (作成者の紹介ページ) http://foo.jp
 * License: GPL2
 */

コメント記述するだけでプラグインの一覧に表示されるようになります。
ここからプラグインの中身を作成していけばOKです。

プラグインの中でデータベースを使うやり方とかも上の記事を参考に作っていくとすんなり動作すると思います。

少しだけ抜粋というかプラグインを有効化したときに実行されるような関数を作りたい場合の手順だけ紹介します。

myplugin.class.phpというファイルを同じディレクトリに作成してそれぞれプログラムを組んでいきます。

myplugin.php
// Load Class File
require_once dirname(__FILE__).DIRECTORY_SEPARATOR."myplugin.class.php";

// Instance
global $myplugin;
$myplugin = new MyPlugin();

// Register
register_activation_hook(__FILE__, array($myplugin, "activate"));

myplugin.class.php
class MyPlugin {

    public function activate() {
        echo 'activate method !';
        die();
    }
 
}

上記のように記述することでプラグインが実行されたときに「activate」が実行されるようになります。
ただし、実際に有効化するとエラーになって有効化はされないはずです。

しかし、有効化されたときに処理が実行されていることはわかると思います。
dieとか echo とか書いてるんで有効されないだけで

実は上のサンプルで有効化したときの処理としてはこれが正常です。

自作のテーブルを使いたい場合などは、プラグインが有効化されたにテーブルを作成すれば良いのでこういったやり方で、CREATE TABLE とかしてやればOK。


上のサンプルくらいな簡単なので
試しに作ってみると動きとかもわかってるのかなとおもいます。