web-dev-qa-db-fra.com

Ajout de plusieurs valeurs à une clé méta post

J'ai une question à propos de l'ajout de plusieurs méta-valeurs post à une méta-clé post.

Voici un link à la fonction WordPress add_post_meta(); en question.

Le paramètre $unique est un peu du côté flou de la clarté pour moi.

Que vous souhaitiez ou non que la clé soit unique. Lorsqu'il est défini sur true, cela garantit qu'il n'y a pas déjà de champ personnalisé attaché à la publication avec $ meta_key comme clé et que, si un tel champ existe déjà, la clé ne sera pas ajoutée.

Si ce paramètre est défini sur true, pourrai-je ajouter plusieurs valeurs à une seule clé meta de publication?

Je cherche à créer UNE clé de méta-clé unique par publication. Cette clé est définie comme une clé cachée. (Préfixé par un trait de soulignement - Exemple: $meta_key = '_task-name';)

Est-il possible d'ajouter plusieurs méta-valeurs de post à cette clé unique de méta-post, sous forme de tableau?

Ainsi, lorsque je récupère cette clé méta de publication à partir de la publication à l'aide de get_post_meta($post_id, $meta_key);, une publication peut avoir 3 ou 4 noms de tâches qui lui sont attribués.

Serais-je mieux d'utiliser simplement les taxonomies et les termes?

2
Michael Ecklund

Pour quiconque aurait pu avoir la même question ...

add_post_meta($post_id, $meta_key, $meta_value, $unique);

Le paramètre $unique signifie qu'il ne doit pas déjà exister de clé de méta de publication pour la clé/valeur que vous êtes sur le point d'ajouter à l'objet de publication en tant que méta de publication.

Vous pouvez stocker une valeur unique ou un tableau en tant que méta post. Il n'y a pas de limitation pour le type de données stockées.

get_post_meta($post_id, $key, $single);

Lorsque vous extrayez la méta de publication de votre objet de publication à l'aide de get_post_meta();, le paramètre $single signifie que vous voulez extraire un résultat sous forme de chaîne ou extraire l'intégralité du tableau de données stockées dans cette clé de méta de publication particulière.

À mon avis, si vous prévoyez de stocker plusieurs éléments de données pour un objet de publication, vous feriez mieux d'utiliser des taxonomies et des termes. Si vous ne stockez qu'un petit tableau rapide, il est plus simple de stocker vos données sous forme de tableau en tant que méta de publication pour votre objet de publication.

1
Michael Ecklund

Vous pouvez insérer un tableau associatif dans le champ post_meta_field.

Voici une petite fonction rapide pour récupérer les données après coup (sans test):

function grab_task_name_array($post_id) {
    $new_array = array();
    $array = get_post_meta($post_id,'_task-name'); //do not put true as third parameter (this would return string and not array)
    foreach($array[0] as $key => $value)
     $new_array[$key] = $value;

    return $new_array;
}

Si vous souhaitez stocker un tableau multidimensionnel, des vérifications supplémentaires sont nécessaires.

2
Douglas.Sesar