• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

「カスタムフィールドの使い方」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(2 版)
(WPJ Codex データインポート(2005年1月6日 (木) 19:34 Carthik 版 en:Using Custom Fields)、原文リンク等追加)
15行目: 15行目:
 
このようにカスタムフィールドを記入した場合、記事中には以下のように表示されます。
 
このようにカスタムフィールドを記入した場合、記事中には以下のように表示されます。
  
<div style="border:1px solid blue; width:50%; margin: 20px; padding:20px">
+
<div class="example">
 
* '''現在読んでいる本: 星の王子様'''
 
* '''現在読んでいる本: 星の王子様'''
 
* '''現在の天気: 晴れ'''
 
* '''現在の天気: 晴れ'''
24行目: 24行目:
 
上記の例に基づいて、実際にカスタムフィールドを使ってみましょう。ここでは、「現在読んでいる本」と、「現在の天気」というカスタムフィールドのキーを追加します。
 
上記の例に基づいて、実際にカスタムフィールドを使ってみましょう。ここでは、「現在読んでいる本」と、「現在の天気」というカスタムフィールドのキーを追加します。
  
# 管理画面内の[[Administration_Panels#Write_Post|記事投稿]]パネルへ移動します。
+
# 管理画面内の[[管理パネル#Write_Post|記事投稿]]パネルへ移動します。
 
# 記事の本文を書き終えたら下のほうへスクロールし、「カスタムフィールド」というタイトルが付いたエリアの右側にある「+(プラス)」サインをクリックします。
 
# 記事の本文を書き終えたら下のほうへスクロールし、「カスタムフィールド」というタイトルが付いたエリアの右側にある「+(プラス)」サインをクリックします。
 
# 新規カスタムフィールドを作成するには、「キー」と書かれた下にあるテキストフィールドに書き込みます。まずはここに、「現在読んでいる本」と書きましょう。
 
# 新規カスタムフィールドを作成するには、「キー」と書かれた下にあるテキストフィールドに書き込みます。まずはここに、「現在読んでいる本」と書きましょう。
36行目: 36行目:
 
==カスタムフィールドを記事内に表示する==
 
==カスタムフィールドを記事内に表示する==
  
カスタムフィールドを記事に追加したら、その情報をサイトで公開しましょう。各記事にカスタムフィールドを表示させるには、<tt>[[Template_Tags/the_meta|the_meta()</tt>]] テンプレートタグを使います。このタグは[[The_Loop|WordPressループ]]内に置く必要があります。<tt>the_meta()</tt> テンプレートタグを記事の最初や最後の[[Post_Meta_Data_Section|記事メタデータセクション]]などに含めるという方法が良く使われます。以下が、一般的なタグの記入例です。
+
カスタムフィールドを記事に追加したら、その情報をサイトで公開しましょう。各記事にカスタムフィールドを表示させるには、<tt>[[テンプレートタグ/the_meta|the_meta()</tt>]] テンプレートタグを使います。このタグは[[The_Loop|WordPressループ]]内に置く必要があります。<tt>the_meta()</tt> テンプレートタグを記事の最初や最後の[[Post_Meta_Data_Section|記事メタデータセクション]]などに含めるという方法が良く使われます。以下が、一般的なタグの記入例です。
  
 
  <?php the_meta(); ?>
 
  <?php the_meta(); ?>
56行目: 56行目:
 
サイト上では、以下のように表示されます。
 
サイト上では、以下のように表示されます。
  
<div style="border:1px solid blue; width:50%; margin: 20px; padding:20px">
+
<div class="example">
 
* <span style="font-size:110%; color: green; font-weight:bold; font-variant: small-caps">現在読んでいる本:</span> <span style="font-style:italic; color: maroon; font-variant: small-caps"> 星の王子様</span>
 
* <span style="font-size:110%; color: green; font-weight:bold; font-variant: small-caps">現在読んでいる本:</span> <span style="font-style:italic; color: maroon; font-variant: small-caps"> 星の王子様</span>
 
* <span style="font-size:110%; color: green; font-weight:bold; font-variant: small-caps">現在の天気:</span> <span style="font-style:italic; color: maroon; font-variant: small-caps"> 晴れ</span>
 
* <span style="font-size:110%; color: green; font-weight:bold; font-variant: small-caps">現在の天気:</span> <span style="font-style:italic; color: maroon; font-variant: small-caps"> 晴れ</span>
119行目: 119行目:
 
このテキストを書いている時点では、テンプレート関数は1つしかありません。
 
このテキストを書いている時点では、テンプレート関数は1つしかありません。
  
* '''<tt>[[Template Tags/the_meta|the_meta()]]</tt>''': 現在の記事のメタデータを順不同リストとして出力します。&lt;ul&gt;のクラスは post-meta、&lt;li&gt; のクラス post-meta-key となります。
+
* '''<tt>[[テンプレートタグ/the_meta|the_meta()]]</tt>''': 現在の記事のメタデータを順不同リストとして出力します。&lt;ul&gt;のクラスは post-meta、&lt;li&gt; のクラス post-meta-key となります。
  
 
個人個人の開発者が多くのメタデータの面白い使い方を考え出してくれると期待しています。<tt>the_meta()</tt> テンプレート関数は、単にひとつの基本的な例にすぎません。
 
個人個人の開発者が多くのメタデータの面白い使い方を考え出してくれると期待しています。<tt>the_meta()</tt> テンプレート関数は、単にひとつの基本的な例にすぎません。
125行目: 125行目:
 
現時点では項目を追加・削除することだけしかできませんが、項目を編集できる機能は後ほど追加される予定です。
 
現時点では項目を追加・削除することだけしかできませんが、項目を編集できる機能は後ほど追加される予定です。
  
[[Category:Getting Started]]
+
{{原文|Using Custom Fields|7529}}
[[Category:Design and Layout]]
+
 
[[Category:WordPress Lessons]]
+
{{DEFAULTSORT:かすたむふいいるとのつかいかた}}
[[Category:Advanced Topics]]
+
[[Category:初心者向けトピック]]
 +
[[Category:デザインとレイアウト]]
 +
[[Category:WordPress レッスン]]
 +
[[Category:上級トピック]]
 +
 
 +
[[en:Using Custom Fields]]

2008年4月4日 (金) 06:38時点における版

WordPressには、投稿者が記事に「カスタムフィールド」を追加できる機能があります。この任意の情報は「メタデータ」と呼ばれており、たとえば以下のような情報を含めることができます。

  • 現在のムード: 幸せいっぱい
  • 現在読んでいる本: 星の王子様
  • 現在のBGM: Lovers Who Uncover by The Little Ones
  • 現在の天気: 晴れ

さらに、ちょっとしたコードを付け加えるだけで、このメタデータに記事の表示期限を付け加えたりすることも可能です。

メタデータは「キー」と、その「値」の組み合わせからなっています。「キー」は、メタデータ要素の名称のことを指します。「値」は、その要素に対応する情報を指します。一般的には、固定された「キー」に対し、記事によって異なる「値」を記入します。

また、ひとつの記事で、複数のキーを使用することもできます。例えば現在読んでいる本が2冊ある場合、「現在読んでいる本」というキーを2度使い、それぞれに対し1冊の本の題名を記入すればよいのです。

このようにカスタムフィールドを記入した場合、記事中には以下のように表示されます。

  • 現在読んでいる本: 星の王子様
  • 現在の天気: 晴れ

使い方

上記の例に基づいて、実際にカスタムフィールドを使ってみましょう。ここでは、「現在読んでいる本」と、「現在の天気」というカスタムフィールドのキーを追加します。

  1. 管理画面内の記事投稿パネルへ移動します。
  2. 記事の本文を書き終えたら下のほうへスクロールし、「カスタムフィールド」というタイトルが付いたエリアの右側にある「+(プラス)」サインをクリックします。
  3. 新規カスタムフィールドを作成するには、「キー」と書かれた下にあるテキストフィールドに書き込みます。まずはここに、「現在読んでいる本」と書きましょう。
  4. 新規作成したキーに対応する値を追加します。今回の場合は、読んでいる本の題名になります。「値」と書かれた下にあるテキストフィールドに、「星の王子様」と書き込みます。
  5. ここまで終わったら、「カスタムフィールドを追加 »」ボタンをクリックしましょう。

さらに「現在の天気」を追加するには、上記のプロセスを繰り返し、最後に記事本文の下にある「保存」(または「公開」)ボタンをクリックして記事を保存します。

次に記事を投稿する際、別の本や天気をメタデータとして追加することができます。一度追加したキーは、カスタムフィールド記入エリア内にあるプルダウンメニューの項目として、簡単に選択することができるようになります。

カスタムフィールドを記事内に表示する

カスタムフィールドを記事に追加したら、その情報をサイトで公開しましょう。各記事にカスタムフィールドを表示させるには、the_meta() テンプレートタグを使います。このタグはWordPressループ内に置く必要があります。the_meta() テンプレートタグを記事の最初や最後の記事メタデータセクションなどに含めるという方法が良く使われます。以下が、一般的なタグの記入例です。

<?php the_meta(); ?>

上記の例の場合、ソースコードではこのように表示されているはずです。

<ul class='post-meta'>
<li><span class='post-meta-key'>現在読んでいる本: </span> 星の王子様</li>
<li><span class='post-meta-key'>現在の天気:</span> 晴れ</li>
</ul>

テンプレートタグは、メタデータを順不同リスト(<ul> )形式で出力し、そのリストに post-meta というクラスを自動的に割り当ててくれます。さらにキーは post-meta-key というクラスの <span> 要素に囲まれるので、スタイルシートを使って見た目を変更することができます。

カスタマイズするには、以下の宣言を使用中のテーマのスタイルシート(style.css)に追加します。

.post-meta {font-variant: small-caps; color: maroon; }
.post-meta-key {color: green; font-weight: bold; font-size: 110%; }

サイト上では、以下のように表示されます。

  • 現在読んでいる本: 星の王子様
  • 現在の天気: 晴れ

さらに、メタデータ表示に便利な機能を追加してくれるプラグインもあります。カスタムフィールドプラグインGoogle検索 でさらに多くのプラグイン情報を見つけられるでしょう。

カスタムフィールドを使ったさらに高度なテクニック

以下はメタデータ/カスタムフィールドを利用したさらに高度なテクニックです。

カスタムフィールドを取得する

メタデータの値を取得するには、 get_post_meta() 関数を使います。

 get_post_meta($post_id, $key, $single);
  • $post_id は、メタデータの値を取得する記事のIDです。 $post->ID を使って記事のIDを取得してください。
  • $key は取得するキーの文字列です。
  • $singletrue または false としてください。true に設定されている場合、結果を1つの文字列として返します。false の場合、カスタムフィールドの配列を返します。

詳しいやり方

PostMeta で取得された情報は新しいテーブル内に格納されます($wpdb->postmeta)。このテーブルには4つのフィールドがあります。

  • meta_id: 各項目の固有ID
  • post_id: 取得したメタデータが属する記事のID
  • meta_key: キーの名称
  • meta_value: キーに割り当てられた値

このテーブル内の値は、wp-blog-header.php 内の $posts 配列が取得された直後、$post_meta_cache と呼ばれる多次元配列に格納されます。この変数は、要求されたページ内に表示される記事に属する値のみが含まれています。配列の構造はこのようになっています。

 [
   postid1 => [
     [
       key1 => [val1, val2, ...],
       key2 => [val1, val2, ...],
       ...
     ],
   postid2 => [ ... ],
   ...
 ]

つまり、ID256の記事につけられた「今読んでいる本」のデータを取得したい場合、以下のようなPHPコードを使えばいいのです。

 // 現在読んでいる本の配列値を取得
 $readinglist = $post_meta_cache[256]['現在読んでいる本'];
$readinglist は1つのの値ではなく配列となることに注意しましょう。

PostMeta 関数

内部関数

これらの関数は、WordPressループ内で使うためのものです。すべての関数は配列を返します。

  • get_post_custom(): 現在の記事のキーおよび値を取得。
  • get_post_custom_keys(): 現在の記事につけられたすべてのキー名称のリストを取得。
  • get_post_custom_values($key): 現在の記事中の、あるキーの値を取得。
  • get_post_meta($post_id, $key, $single = false): WP 1.5以降で、キャッシュに関する問題を起こすことなくメタデータを返します。この関数には $post_id$key が必須で、$singleが TRUE に設定されている場合、配列ではなく、一つ目の結果のみをPHPで使用できるように返します。

テンプレート関数

このテキストを書いている時点では、テンプレート関数は1つしかありません。

  • the_meta(): 現在の記事のメタデータを順不同リストとして出力します。<ul>のクラスは post-meta、<li> のクラス post-meta-key となります。

個人個人の開発者が多くのメタデータの面白い使い方を考え出してくれると期待しています。the_meta() テンプレート関数は、単にひとつの基本的な例にすぎません。

現時点では項目を追加・削除することだけしかできませんが、項目を編集できる機能は後ほど追加される予定です。

最新英語版: WordPress Codex » Using Custom Fields最新版との差分