• Resuelto mjcreativos

    (@mjcreativos)


    Hola a todos;

    Estoy actualizando un WordPress y me encuentro con el siguiente problema: anteriormente, la imagen destacada de cada post tenía que ponerla con los campos personalizados, creando un campo Image con su correspondiente valor (url de la imagen). Ahora, al actualizar, me encuentro con que no tengo ninguna imagen destacada en mis posts, por lo que tengo que copiar los valores de la tabla wp_postmeta en wp_post.

    Wordpress crea un nuevo post por cada imagen destacada y lo asocia al post donde se adjunta la imagen.

    ¿Cómo puedo copiar los valores del campo meta_value de la tabla wp_postmeta (la condición es que meta_key=’Image’) al campo guid de la tabla wp_posts, donde post_type=’attachment’ y post_mime_type=’image/jpeg’ y post_title y post_name=’nombredelaimagen sin extensión’?

    Hay que tener en cuenta que el campo post_id de la tabla wp_postmeta coincide con el campo post_parent de la tabla wp_posts (aquí es donde se asocia la imagen con su post).

    Espero no haberme liado y que me podáis ayudar!

    Muchísimas gracias.

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • Yo no «copiaría» los datos de wp_postmeta a wp_posts, lo que haría sería «leer» los datos de wp_postmeta para obtener la URL de la imagen que tienes en el meta field y el post asociado, y luego:

    – Con la URL de la imagen creas el correspondiente attachment con la función wp_insert_attachment()
    – Con el post asociado y el id del attachment creado en el paso anterior, estableces la imagen destacada con la función set_post_thumbnail()

    Así te debería quedar todo perfecto y conforme al API de WordPress. Espero que te sirva.

    PD: Ten en cuenta que un attachment no tiene por qué tener un post parent, es opcional, y si lo tiene solo puede tener uno, aunque un mismo attachment puede ser utilizado como imagen destacada en varios posts. La asociación entre un post y su imagen destacada es a través del meta field _thumbnail_id y no a través del post parent. Te lo digo por si tienes la misma imagen destacada en varios posts.

    Iniciador del debate mjcreativos

    (@mjcreativos)

    Muchísimas gracias por tu respuesta. Voy a intentarlo!

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • El debate ‘Copiar valores de una tabla a otra en WordPress’ está cerrado a nuevas respuestas.