[WordPress] カスタムフィールドの登録とその表示方法
WordPress のカスタムフィールドについて調べてみました。
カスタムフィールドとは
ひとつの記事に紐付く追加データを取り扱うことが出来ます。
例えば、あなたが iPhone アプリを紹介するブログを書いている場合、記事にアプリの識別子を紐付けておけば、HTML タグを貼り付けることなく、WordPress の裏側で自動でリンクを作ることができます。日記ブログだったら、その日の天気情報を紐付けておくのもいいかもしれません。
カスタムフィールドがどのような構造になっているかは、カスタムフィールドの値が格納される wp_postmeta
テーブルを見るとすぐに理解できます。記事 ID である post_id
に紐付く、meta_key
で値を取り出すことが出来ます。
-- Table structure for table `wp_postmeta`
CREATE TABLE `wp_postmeta` (
`meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`post_id` bigint(20) unsigned NOT NULL DEFAULT '0',
`meta_key` varchar(255) DEFAULT NULL,
`meta_value` longtext,
PRIMARY KEY (`meta_id`),
KEY `post_id` (`post_id`),
KEY `meta_key` (`meta_key`)
);
カスタムフィールドを追加する
WordPress でカスタムフィールドを追加するには、記事編集画面の [表示オプション] から [カスタムフィールド] にチェックを入れます。
表示されるカスタムフィールドに、名前(meta_key)と値(meta_value)を登録します。
カスタムフィールドの値をテーマファイルで表示する
カスタムフィールドの値は記事投稿とは違って、自動で出力されるわけではありません。テーマファイルから、カスタムフィールドの値を使うようにプログラムする必要があります。
一番シンプルなのは、記事ループ中に以下のコードを読み込ませる方法です:
<?php the_meta(); ?>
リスト形式で以下のように表示されます:
<li><span class="post-meta-key">ios_app_id:</span> 725195676</li>
WordPress 3.5 以降なら次のように、キーに紐付く値を取り出すことが出来ます:
<?php
if (isset($post->ios_app_id)) {
$ios_app_id = $post->ios_app_id;
echo "https://itunes.apple.com/jp/app/id{$ios_app_id}?mt=8";
}
?>