it-swarm-eu.dev

proč bych neměl ukládat metadata, když je jeho revize

čtení knihy o wordpress ... ... omlouvám se, když na jednu otázku položím příliš mnoho otázek, ale jsem nový a zmatený

proč autor vždy neukládá data do pole metadat při jeho revizi. jen v případě, že to není jasné, to, na co odkazuji v poli metadat, je to, které přidal 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

Vynechal jste, jak se tato funkce nazývá. Předpokládám, že je přidán do akce save_post.

Tato akce předá aktuální id id jako argument. V případě revize by to bylo id revize a ne nadřazené post id. Takže, jak to vidím, není důvod ukládat další data pro revizi (vytvoření jejich duplicitní sady).

Aktualizovat.

Poškrábej to.

Prohlédl jsem si zdrojový kód. Funkce *_post_meta Se zjevně automaticky změní na ID nadřazeného příspěvku, pokud bylo předáno ID post revize. Můžete tedy upravit původní příspěvek, protože si myslíte, že upravujete revizi.

3
Rarst

Když se podívám na svou tabulku postmeta, zdá se, že pro následné revize se nikdy neuloží žádná metadata. Nemyslím si, že to musí být takto: Dokážu vymyslet některé případy použití, kdy by pro pluginy bylo užitečné uložit další metadata pro revize. Vezměte si svůj příklad, pravděpodobně z příkladu internetového obchodu: Pokud nejprve vytvořím produkt s cenou 20 $, potom později sníží cenu na 10 $, pravděpodobně se tím uloží stará textová pole jako revize, ale odstraní se stará cenová pole. . Mohlo by být užitečné uložit také historii cen.

Předpokládám, že funkce, které se zabývají metadaty, plně nepodporují práci s revizemi metadat, takže bychom zatím neměli očekávat velkou podporu od pluginů. Pokud však vytvoříte plugin, mějte na paměti, jak by bylo užitečné uložit (a načíst) historická metadata.

1
Jan Fabry