2010-04-20 14 views
10

Sé que puedo usar la función wp_insert_post() en WordPress para agregar publicaciones programáticamente, pero quiero agregar publicaciones con una miniatura, y para ese asunto, también cambiar el tamaño/recortar la foto posterior a la correcta Tamaños de WordPressAgregar publicaciones con miniatura programáticamente en WordPress

¿Todo esto es posible desde el punto de vista programático, o debo hacer algún trabajo manualmente (es decir, el cambio de tamaño/recorte)?

Respuesta

14

Consulte wp_insert_attachment(), que se encuentra en wp-includes/post.php (Codex article).

Así que usted cree su mensaje es el primero usando wp_insert_post(), a continuación, adjuntar el archivo, algo como esto (modificó el Codex):

<?php 
    $post_id = wp_insert_post($my_post_data); 

    $attach_id = wp_insert_attachment($attachment, $filename, $post_id); 
    $attach_data = wp_generate_attachment_metadata($attach_id, $filename); 
    wp_update_attachment_metadata($attach_id, $attach_data); 
?> 

En cuanto a la imagen de cambio de tamaño/recorte, si vas a la configuración de los medios de comunicación (su sitio. com/wp-admin/options-media.php), puede definir tamaños personalizados para sus imágenes. Probablemente no sea tan robusto como lo que está buscando, pero si integra la salida con algo como el TimThumb Script, puede acercarse a lo que está buscando.

Para ver todas las variables que tiene la función, lea la información comentada en post.php.

+1

Gracias! Me pregunto por qué esto no se ha documentado más. –

+0

no puedo creer que me perdí eso y 3 horas! Gracias ;) –

5

Después de insertar la publicación y el adjunto usando wordpress 'wp_insert_post y wp_insert_attachment functions, puede agregar la miniatura a la publicación usando _thumbnail_id con la ID del archivo adjunto, siempre que su tema sea compatible con las miniaturas de la publicación.

// $post_id = wp_insert_post(...) 
// $attach_id = wp_insert_attachment(...) 

add_post_meta($post_id, '_thumbnail_id', $attach_id, true); 

De esta manera usted podrá usar las funciones predeterminadas de wordpress para cambiar el tamaño de las miniaturas y demás.

1

Hay 2 artículos que se han escrito desde que se hizo su pregunta. Ambos brindan soluciones ligeramente diferentes a su problema. Espero que esto ayuda a alguien:

programación importadores miles de imágenes en miniatura de correos destacados en WordPress http://www.zdnet.com/blog/diy-it/programmatically-importing-thousands-of-featured-image-post-thumbnails-into-wordpress/118

Cómo: Cargar media a través de URL mediante programación en WordPress http://theme.fm/2011/10/how-to-upload-media-via-url-programmatically-in-wordpress-2657/

Cuestiones relacionadas