it-swarm.com.de

Warum sollte ich keine Metadaten speichern, wenn es sich um eine Revision handelt?

lesen eines Buches über wordpress ... Entschuldigung, wenn ich die zu vielen Fragen auf einmal stelle, aber ich bin neu und verwirrt

warum speichert der Autor bei einer Überarbeitung nicht immer Daten im Metadatenfeld? Nur für den Fall, dass es nicht klar ist, ist das, worauf ich mich im Metadatenfeld beziehe, das von add_meta_box.

//save meta box data 
function pp_save_meta_box($post_id,$post) {
    // if post is a revision skip saving our meta box data
    if($post->post_type == ‘revision’) { return; }

    // process form data if $_POST is set
    if(isset($_POST[’pp_sku’]) && $_POST[’pp_sku’] != ‘’) {
        // save the meta box data as post meta using the post ID as a unique prefix
        update_post_meta($post_id,’pp_sku’, esc_attr($_POST[’pp_sku’]));
        update_post_meta($post_id,’pp_price’, esc_attr($_POST[’pp_price’]));
        update_post_meta($post_id,’pp_weight’, esc_attr($_POST[’pp_weight’]));
        update_post_meta($post_id,’pp_color’, esc_attr($_POST[’pp_color’]));
        update_post_meta($post_id,’pp_inventory’,esc_attr($_POST[’pp_inventory’]));
    }
}
1
Jiew Meng

Sie haben weggelassen, wie diese Funktion aufgerufen wird. Ich gehe davon aus, dass es zur Aktion save_post Hinzugefügt wird.

Diese Aktion übergibt die aktuelle Post-ID als Argument. Im Falle einer Revision wäre dies die Revisions-ID und nicht die übergeordnete Post-ID. Aus meiner Sicht gibt es also keinen Grund, zusätzliche Daten für die Überarbeitung zu speichern (doppelte Sätze davon zu erstellen).

pdate.

Vergiss das.

Ich habe den Quellcode durchgesehen. Anscheinend werden *_post_meta - Funktionen automatisch in die übergeordnete Post-ID geändert, wenn die Revisions-Post-ID übergeben wird. Sie können also den ursprünglichen Beitrag ändern und denken, Sie ändern die Revision.

3
Rarst

Wenn ich mir meine Tabelle postmeta ansehe, werden anscheinend nie Metadaten für Post-Revisionen gespeichert. Ich denke nicht, dass es so sein muss: Ich kann mir einige Anwendungsfälle vorstellen, in denen es für Plugins nützlich wäre, zusätzliche Metadaten auch für Revisionen zu speichern. Nehmen Sie Ihr Beispiel, wahrscheinlich aus einem Webshop-Beispiel: Wenn ich zuerst ein Produkt mit einem Preis von 20 US-Dollar erstelle und später den Preis auf 10 US-Dollar reduziere, werden wahrscheinlich die alten Textfelder als Überarbeitung gespeichert, aber die alten Preisfelder werden gelöscht . Es könnte nützlich sein, auch eine Historie der Preise zu speichern.

Ich gehe davon aus, dass die Funktionen, die sich mit Metadaten befassen, die Arbeit mit Revisionen von Metadaten nicht vollständig unterstützen. Daher sollten wir noch nicht viel Unterstützung von Plugins erwarten. Wenn Sie jedoch ein Plugin erstellen, denken Sie daran, wie nützlich das Speichern (und Abrufen) historischer Metadaten sein kann.

1
Jan Fabry