Tengo un script que crea publicaciones usando wp_insert_post(). Todos los días, el script crea 12 publicaciones y las publicaciones tienen los mismos nombres.
Este es el código utilizado:
require_once( ABSPATH . 'wp-admin/includes/post.php' ); global $post; function PostCreator($title, $name, $content, $sign, $meta_input) { //$postID = post_exists( $title ); $post_data = array( 'post_title' => $title, 'post_content' => $content, 'post_status' => 'publish', 'post_type' => 'post', 'post_author' => '1', 'post_category' => array('category' => 2), 'meta_input' => $meta_input, 'post_name' => $name, ); wp_insert_post( $post_data, $error_obj ); if(!isset($post)) add_action('admin_init', 'hbt_create_post' ); return $error_obj; } Lo que quiero hacer es que cada publicación adjunte automáticamente una miniatura de la biblioteca de medios (no cargue una nueva imagen cada vez que se crea una publicación)
Tengo las 12 imágenes en la biblioteca multimedia.
Mi problema es que todo lo que intento parece no funcionar o intento volver a cargar imágenes, lo que llena mi servidor con duplicados.
¿Alguien tiene alguna idea de lo que podría hacer?
Puede configurar la miniatura de una publicación con la siguiente función:
set_post_thumbnail( $post, $thumbnail_id );Echa un vistazo al códice de WordPress
Entonces, después de insertar la publicación con un ligero cambio en el código que ya tiene, puede obtener la ID de la nueva publicación con:
$post_ID = wp_insert_post($post);Luego puede usar eso para agregar la imagen usando set_post_thumbnail.
Entonces, su código debería verse así en general:
$post_data = array( 'post_title' => $title, 'post_content' => $content, 'post_status' => 'publish', 'post_type' => 'post', 'post_author' => '1', 'post_category' => array('category' => 2), 'meta_input' => $meta_input, 'post_name' => $name, ); $post_ID = wp_insert_post( $post_data, $error_obj ); $thumbnail_id = {your image id from media library}; set_post_thumbnail( $post_ID, $thumbnail_id );