web-dev-qa-db-ja.com

同じメタキーで複数のクエリを使う方法

これらのコードを使用してカスタムフィールドクエリを印刷します。私のカスタムフィールドキーはout_wikiです

    <?php if( get_post_meta($post->ID, "out_wiki", true) ): ?>

        <div class="outlink">
            <a href="http://en.wikipedia.org/w/index.php?search=<?php echo get_post_meta($post->ID, "out_wiki", true); ?>" target="_blank">
                <img src="http://www.wikipedia.com/favicon.ico" title="Wikipedia title">
            </a>
        </div>

    <?php endif; ?>

同じカスタムフィールドキーに複数の値を格納し、それらを一度に印刷したいです。どうやってやるの?

3
Imrahil

同じカスタムフィールドキーに複数の値を格納して一度に印刷する

サイトオプションとして保存したい場合は、update_option()を使用できます。

http://codex.wordpress.org/Function_Reference/update_option

例1:

// some array to store:
$items=array('yellow','orange','green');

// save the array
update_option('myitems',$items);

// get the array 
$items=get_option('myitems');

// print the array
echo "<ul>";
foreach($items as $item){
    echo "<li>".$item."</li>";
}
echo "</ul>";

投稿メタとして(つまり各投稿ごとに)保存する場合は、update_post_meta()を使用できます。

http://codex.wordpress.org/Function_Reference/update_post_meta

例2:

// some array to store:
$items=array('yellow','orange','green');

// save the array
update_post_meta($post_id,'myitems',$items);

// get the array
$items = get_post_meta($post_id,'myitems',true);

// print the array
echo "<ul>";
foreach($items as $item){
    echo "<li>".$item."</li>";
}
echo "</ul>";

例3:

このようにバックエンドからカスタムフィールド(同じメタキー)と値を追加したい場合は:

enter image description here

あなたはこのような値を取り戻すことができます:

// get the array for current post
$items = get_post_meta($post->ID,'myitems'); // we skip the true part here

// print the array
echo "<ul>";
foreach($items as $item){
    echo "<li>".$item."</li>";
}
echo "</ul>";
2
birgire