it-swarm-es.com

¿Por qué no debo guardar los metadatos cuando es una revisión?

leyendo un libro sobre wordpress ... perdón si hago demasiadas preguntas de una vez pero soy nuevo y estoy confundido

¿Por qué el autor no siempre guarda datos en el cuadro de metadatos cuando es una revisión? por si no está claro, a lo que me refiero con el cuadro de metadatos es el agregado por 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

Omitió cómo se llama esta función. Supongo que se agrega a save_post acción.

Esta acción pasa el ID de la publicación actual como argumento. En caso de revisión, sería la identificación de la revisión y no la identificación de la publicación principal. Entonces, tal como lo veo, no hay razón para guardar datos adicionales para su revisión (creando un conjunto duplicado).

Actualización

Rasca eso.

Miré a través del código fuente. Aparentemente *_post_meta las funciones cambiarán automáticamente al ID de publicación principal si se pasa el ID de publicación de revisión. Por lo tanto, puede modificar la publicación original, pensando que está modificando la revisión.

3
Rarst

Cuando miro mi tabla postmeta, parece que nunca se guardan metadatos para las revisiones posteriores. No creo que tenga que ser así: puedo pensar en algunos casos de uso en los que sería útil para los complementos guardar metadatos adicionales para revisiones también. Tome su ejemplo, probablemente de un ejemplo de una tienda web: si primero creo un producto con un precio de $ 20, luego reduzco el precio a $ 10, esto probablemente guardará los campos de texto antiguos como una revisión, pero borrará los campos de precios anteriores . También podría ser útil guardar un historial de los precios.

Supongo que las funciones que tratan con metadatos no son totalmente compatibles con el trabajo con revisiones de metadatos, por lo que aún no deberíamos esperar mucho apoyo de los complementos. Pero, si crea un complemento, tenga en cuenta cómo puede ser útil guardar (y recuperar) metadatos históricos.

1
Jan Fabry