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

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

関数リファレンス/post meta 関数の例

提供: WordPress Codex 日本語版
移動先: 案内検索

この項目「関数リファレンス/post meta 関数の例」は、翻訳チェック待ちの項目です。加筆、訂正などを通して、Codex ドキュメンテーションにご協力下さい。

これは、add_post_meta(), delete_post_meta(), update_post_meta(), そして get_post_meta() 関数の使い方の詳細な例です。

用例

<?php 
/*******************
この関数は mood と listening_to というカスタムフィールドを扱う。
アクションとして update(追加・更新), delete(削除), get(取得)を指定する。
get がデフォルト。
update の場合、$mood または $listening_to を与えなければならない。
例えば mood_music( $post->ID, 'update', 'Happy', 'Bon Jovi - It's My Life' );
*******************/
function mood_music( $post_id, $action = 'get', $mood = 0, $listening_to = 0 ) {
  
  // 3 種類の「アクション」を分けて処理する
  switch ( $action ) {
    case 'update' :  // 追加・更新
      if ( ! $mood && ! $listening_to )
        // 更新する値が与えられなければ、ここで終了
        return false;
      
      //add_post_meta の使い方:
      //add_post_meta( $post_id, $meta_key, $meta_value, $unique = false )
      
      // 変数 $mood が与えられたら、
      // その値を入れるためにキー 'mood' を追加。
      // 指定された投稿にキー 'mood' がすでにあれば、
      // 単純に、もうひとつ追加。
      if ( $mood ) {
        add_post_meta( $post_id, 'mood', $mood );
        return true;
        }
      //update_post_meta の使い方:
      //update_post_meta( $post_id, $meta_key, $meta_value )
      
      // 変数 $listening_to が与えられたら、
      // その値を入れるためにキー 'listening_to' を追加。
      // 指定された投稿にキー 'listening_to' がすでにあれば、
      // それを新しい値に変える。
      if ( $listening_to ) {
        add_post_meta( $post_id, 'listening_to', $listening_to, true ) or
          update_post_meta( $post_id, 'listening_to', $listening_to );
        return true;
      }
      
    case 'delete' :  // 削除
      //delete_post_meta の使い方:
      //delete_post_meta( $post_id, $meta_key, $prev_value = ' ' )
    
      // 指定したキーを持つすべてのカスタムフィールドを指定された投稿から削除。
      delete_post_meta( $post_id, 'mood' );
      delete_post_meta( $post_id, 'listening_to' );
      
      // 値が 'sad' である 'mood' だけを削除するには:
      //delete_post_meta( $post_id, 'mood', 'sad' );
    break;
    
    case 'get' :  // 取得
      //get_post_meta の使い方:
      //get_post_meta( $post_id, $meta_key, $single = false )
  
      // キー 'mood' のすべての値を配列にして $stored_moods へ入れる。
      $stored_moods = get_post_meta( $post_id, 'mood' );
      // キー 'listening_to' の先頭の値を $stored_listening_to へ入れる。
      $stored_listening_to = get_post_meta( $post_id, 'listening_to', true );

      // 良い出力フォーマットを用意して、
      // ユーザーが好みに応じて表示できるようにする:
      // 例えば echo mood_music( $post->ID, 'get' );
      
      $return = '<div class='mood-music'>';
      if ( ! empty( $stored_moods ) )
        $return .= '<strong>いまのムードは</strong>: ';
      foreach( $stored_moods as $mood )
        $return .= $mood . ', ';
      $return .= '<br/>';

      if ( ! empty( $stored_listening_to ) ) {
        $return .= '<strong>いま聴いているのは</strong>: ';
        $return .= $stored_listening_to;
        }
      $return .= '</div>';
      
      return $return;
      
    default :
      return false;
    break;
  } // switch の終わり
} // 関数の終わり
?>

リソース



カスタムフィールド: 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 も参照)


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