Intente usar set_post_thumbnail()
.
Edit by Otto: Aclaraste tu pregunta, así que aclararé la respuesta que dio Chip.
Básicamente, también debes hacer el 'archivo adjunto' para la publicación. Cuando se carga una imagen en la biblioteca de medios de WordPress, se crea una entrada de publicación especial para ella con un tipo de archivo adjunto. Este archivo adjunto está vinculado a alguna publicación específica a través del identificador post_parent.
Por lo tanto, si conoce el ID del archivo adjunto, al llamar a set_post_thumbnail con el objeto de publicación o ID y el ID del archivo adjunto simplemente establecerá la marca de miniatura de publicación.
Si aún no ha creado el archivo adjunto, primero deberá hacerlo. La forma más sencilla de hacerlo es con wp_insert_attachment()
. Esta función toma una matriz de unos pocos parámetros, el nombre de archivo (el archivo ya debe estar en el directorio de subidas adecuado) y el ID de la publicación principal a la que desea adjuntar el archivo adjunto.
El solo hecho de tener un archivo cargado y adjuntado a una publicación no hace nada automáticamente. Esto es simplemente una especie de mecanismo de categorización. El mecanismo de la galería, por ejemplo, utiliza las imágenes adjuntas de una publicación para crear la [galería] para esa publicación. Una miniatura para una publicación es solo una de las imágenes adjuntas que se configuró para que sea la miniatura.
Puede encontrar más información sobre cómo usar wp_insert_attachment en el códice (vinculado arriba).