it-swarm.com.de

Hinzufügen mehrerer Werte zu einem Post-Metaschlüssel

Ich habe eine Frage zum Hinzufügen mehrerer Post-Meta-Werte zu einem Post-Meta-Schlüssel.

Hier ist ein Link zur WordPress-Funktion add_post_meta(); in Frage.

Der Parameter $unique ist für mich ein wenig unscharf.

Gibt an, ob der Schlüssel eindeutig sein soll. Bei Festlegung auf "true" wird sichergestellt, dass dem Beitrag noch kein benutzerdefiniertes Feld mit dem Schlüssel "$ meta_key" angehängt ist. Wenn ein solches Feld bereits vorhanden ist, wird der Schlüssel nicht hinzugefügt.

Wenn dies auf true gesetzt ist, kann ich dann einem einzelnen Post-Metaschlüssel mehrere Werte hinzufügen?

Ich möchte einen eindeutigen Post-Metaschlüssel pro Post erstellen. Dieser Schlüssel wird als versteckter Schlüssel festgelegt. (Voranstellen eines Unterstrichs - Beispiel: $meta_key = '_task-name';)

Ist es möglich, diesem einzelnen eindeutigen Post-Meta-Schlüssel mehrere Post-Meta-Werte im Array-Format hinzuzufügen?

Wenn ich diesen Beitrags-Metaschlüssel mit get_post_meta($post_id, $meta_key); vom Beitrag abhole, werden einem Beitrag möglicherweise 3 oder 4 Aufgabennamen zugewiesen.

Wäre es für mich besser, nur Taxonomien und Begriffe zu verwenden?

2
Michael Ecklund

Für alle, die vielleicht die gleiche Frage hatten ...

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

Der Parameter $unique bedeutet, dass für den Schlüssel/Wert, den Sie dem Post-Objekt als Post-Meta hinzufügen möchten, noch kein Post-Meta-Schlüssel vorhanden sein darf.

Sie können einen einzelnen Wert oder ein Array als Post-Meta speichern. Es gibt keine Beschränkung für die Art der gespeicherten Daten.

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

Wenn Sie das Post-Meta mit get_post_meta(); von Ihrem Post-Objekt abrufen, bedeutet der Parameter $single, dass Sie entweder ein Ergebnis als Zeichenfolge abrufen oder das gesamte Array der in diesem bestimmten Post-Metaschlüssel gespeicherten Daten abrufen möchten.

Wenn Sie mehrere Daten für ein Post-Objekt speichern möchten, sollten Sie meiner Meinung nach Taxonomien und Begriffe verwenden. Wenn Sie nur ein schnelles kleines Array speichern, ist es eine einfachere Lösung, Ihre Daten einfach als Array als Post-Meta für Ihr Post-Objekt zu speichern.

1
Michael Ecklund

Sie können ein assoziatives Array in das Feld post_meta_field einfügen.

Hier ist eine kurze kleine Funktion, um die Daten danach zu erfassen (nicht getestet):

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;
}

Wenn Sie ein mehrdimensionales Array speichern möchten, sind weitere Überprüfungen erforderlich.

2
Douglas.Sesar