Cómo configurar imágenes destacadas de WordPress a través de SQL

3 minutos de lectura

Estoy migrando este sitio donde tengo muchas publicaciones sin imágenes destacadas. Empecé a hacer esto por página en la interfaz, pero está tardando una eternidad. Pensé que una inserción de base de datos en uso podría ir más rápido.

Las publicaciones no tienen una imagen adjunta, por lo que no puedo usar los complementos que configurarían automáticamente la primera imagen como destacada.

¿Alguno de ustedes ha hecho esto antes o podría indicarme recursos?

  • Podría tener mejor suerte en wordpress.stackexchange.comdónde respuestas como esta y este vagamente relevante podría darte una pista o dos.

    – Sepster

    23 de marzo de 2013 a las 9:14


  • Hmm, intentaré preguntar por ahí. ¡Gracias!

    – cr8ivecodesmith

    23 de marzo de 2013 a las 9:17

  • yo sugeriría buscando allí primero 😉 Creo que las primeras “respuestas como esta” que vinculé arriba parecen bastante prometedoras. No estaba sugiriendo que no sea apropiado preguntar aquí también, por cierto. Solo que a menudo, el sitio de intercambio de pila de WP tiene un conocimiento más profundo específico de WP flotando.

    – Sepster

    23 de marzo de 2013 a las 9:19


avatar de usuario
stefano

Encontré esta pregunta interesante, y como necesito insertar imágenes en wp usando directamente sql, investigué un poco más. En primer lugar, debe tener una publicación o una página para asignar la imagen destacada. Supongo que insertó una publicación a través de la interfaz de wp, o llamando a wp_insert_post() o directamente insertando sql en $wp->post. Luego necesita la identificación de esta publicación, diga “target_post_id”.

Ahora necesita tener una imagen insertada en la base de datos. Una vez más, puede usar cualquiera del método anterior, pero para ser rápido, cargo todas mis imágenes redimensionadas previamente en un y las inserto usando sql:

INSERT INTO $wp->post (post_type, guid, status, post_mime_type) VALUES ('attachment', '<images_url>', 'publish', 'image/jpeg')

El último paso es vincular la publicación a la imagen, como responde cr8ivecodesmith:

INSERT INTO $wp->postmeta (meta_value, meta_key, post_id) VALUES ('<post_id_of_image>', '_thumbnail_id', '<target_post_id>');

hay algunos campos no nulos que wp db llenará con valores predeterminados

De hecho, pude hacerlo funcionar después de observar los datos de los registros disponibles. Solo tuve que trabajar con el wp_postmeta tabla usando la consulta:

INSERT INTO `wp_postmeta` (meta_value, meta_key, post_id) VALUES ('<post_id_of_image>', '_thumbnail_id', <target_post_id>);

Espero que esto ayude a otros chicos por ahí.

avatar de usuario
spqr2099

paso #1 inserte un registro en su tabla wp_posts para su archivo adjunto

INSERT INTO wp_posts (post_type, guid, post_status, post_mime_type,post_parent) VALUES ('attachment', '".$filename."', 'inherit', 'image/jpeg',".$parentpostid.");

$filname = url de la imagen que desea usar como miniatura, por ejemplo http://tudominio.com/wp-content/uploads/2014/09/miniatura.jpg

$parentpostid = post_id de la publicación a la que desea adjuntar su miniatura.

paso #2 crea un meta registro de publicación en wp_postmeta para tu archivo adjunto

INSERT INTO wp_postmeta (meta_value, meta_key, post_id) VALUES ('".$filename."', '_wp_attached_file',".$attachmentid.");

$filename = el nombre de archivo de su archivo. ej. 2014/09/thumbnail.jpg $attachmentid = post_id de la publicación adjunta creada en el paso n.º 1

paso n.º 3: cree un metarregistro de publicación para identificar la publicación adjunta como la miniatura de la publicación en la que está adjuntando su miniatura.

INSERT INTO wp_postmeta (meta_value, meta_key, post_id) VALUES (".$attachmentid.", '_thumbnail_id',".$parentpostid.");

$parentpostid = el post_id de la publicación a la que desea adjuntar su miniatura.

$attachmentid = el post_id de la publicación adjunta creada en el paso n.º 1

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad