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

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

関数リファレンス/add post meta

提供: WordPress Codex 日本語版
< 関数リファレンス
2015年7月22日 (水) 11:42時点におけるMiccweb (トーク | 投稿記録)による版 (最新のマージ)

移動先: 案内検索

add_post_meta は、指定した記事や固定ページにカスタム(メタ)フィールドを追加します。

$unique パラメータに true を指定しており、そのメタキーが既に存在している場合、この関数は false を返し何もしません。それ以外の場合は、カスタムフィールドを追加し true を返します。

Note that if the given key already exists among custom fields of the specified post, another custom field with the same key is added unless the $unique argument is set to true, in which case, no changes are made. If you want to update the value of an existing key, use the update_post_meta() function instead.

使い方

<?php add_post_meta($post_id, $meta_key, $meta_value, $unique); ?>

パラメータ

$post_id
整数) (必須) カスタムフィールドを追加する投稿の ID。
初期値: なし
$meta_key
文字列) (必須) カスタムフィールドのキー。
初期値: なし
$meta_value
mixed) (必須) カスタムフィールドの値。If an array is given, it will be serialized into a string.
初期値: なし
$unique
真偽値) (オプション) キーをユニークにするかどうか。true のときは、指定した投稿に $meta_key を持つカスタムフィールドが無いときのみ追加し、すでにカスタムフィールドが存在していれば追加されません。
初期値: false

用例

デフォルトの使い方

ID が68の投稿に、キーが my_key で値が47のカスタムフィールドを追加します。

<?php add_post_meta( 68, 'my_key', 47 ); ?>

既に my_key というキーを持つカスタムフィールドが存在していても追加します。

ユニークなカスタムフィールドの追加と更新

キーが存在しない場合は新しくカスタムフィールドを追加し、キーが存在する場合はカスタムフィールドを更新します。

<?php
if ( ! add_post_meta( 7, 'fruit', 'banana', true ) ) { 
   update_post_meta ( 7, 'fruit', 'banana' );
}

その他の例

"my_key" キーを持つカスタムフィールドが存在しないときだけ追加する:

<?php add_post_meta( 68, 'my_key', '47', true ); ?>

"my_key" キーを持つカスタムフィールドを複数追加する:

<?php add_post_meta( 68, 'my_key', '47' ); ?>
<?php add_post_meta( 68, 'my_key', '682' ); ?>
<?php add_post_meta( 68, 'my_key', 'The quick, brown fox jumped over the lazy dog.' ); ?>
...

さらに詳しい例は post meta 関数の例 を見てください。

見えない カスタムフィールドを作る

プラグインやテーマの開発者なら、カスタムフィールドをプラグインやテーマ用のパラメータを保存するために使いたいことがあるかもしれません。"_" (アンダースコア)で始まるキーを持つカスタムフィールドは記事や固定ページの編集画面に表示されないので、そのような内部的な 見えない パラメータを扱うのに適しています。

以下の例は、キーが _color で値が red のユニークなカスタムフィールドを追加しますが、記事や固定ページの編集画面には表示されません。

<?php add_post_meta(68, '_color', 'red', true); ?>

隠された配列

In addition, if the $meta_value argument is an array, it will not be displayed on the page edit screen, even if you don't prefix the key name with an underscore.


文字のエスケープ

Because meta values are passed through the stripslashes() function, you need to be careful about content escaped with \ characters. You can read more about the behavior, and a workaround example, in the update_post_meta() documentation.

ソースコード

add_post_meta()wp-includes/post.phpにあります。

更新履歴

新規導入: 1.5.0


カスタムフィールド: the_meta(), get_post_meta(), add_post_meta(), update_post_meta(), delete_post_meta(), get_post_custom(), get_post_custom_values(), get_post_custom_keys() (post_meta 関数の例 /en も参照)


このページ「関数リファレンス/add post meta」は一部未翻訳です。和訳や日本語情報を加筆してくださる協力者を求めています


関数リファレンステンプレートタグ目次もご覧ください。

最新英語版: WordPress Codex » Function Reference/add post meta最新版との差分