web-dev-qa-db-fra.com

Comment utiliser plusieurs requêtes avec la même clé méta

J'utilise ces codes pour imprimer une requête de champ personnalisé. Ma clé de champ personnalisé est 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; ?>

Je souhaite stocker plusieurs valeurs dans la même clé de champ personnalisée et les imprimer simultanément. Comment puis je faire ça?

3
Imrahil

pour stocker plusieurs valeurs dans la même clé de champ personnalisée et les imprimer simultanément

Si vous voulez le stocker en tant qu'option de site, vous pouvez utiliser update_option():

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

Exemple 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>";

Si vous voulez le stocker en tant que post meta (c’est-à-dire pour chaque post), vous pouvez utiliser update_post_meta()

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

Exemple 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>";

Exemple 3:

Si vous souhaitez ajouter les champs personnalisés (même clé méta) et les valeurs du backend comme ceci:

enter image description here

vous pouvez retrouver les valeurs comme ceci:

// 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