Crear un metabox para subir múltiples imágenes

8

¿Es posible hacer un meta cuadro que adjunte múltiples imágenes a una publicación?

albaricoque
fuente
Hay un tutorial completo para cargar varias imágenes agregando meta-cuadros a una publicación, página o tipo de publicación personalizada en emenia.es/plugin-subir-imagenes-campo-personalizado-wordpress Está en español, pero podría hacerlo funcionar sin problemas .

Respuestas:

7

Eso depende completamente de lo que quiere decir con "adjuntar".

Cada publicación de WordPress ya puede tener múltiples archivos adjuntos de medios: fotos, documentos, etc. Usted los carga utilizando el cargador incorporado y todos se marcarán como "adjuntos" a esa ID de publicación específica.

Puede referirse a estos más tarde programáticamente en otro lugar. Por ejemplo, el siguiente código enumerará todos los archivos adjuntos para una publicación específica (código de Snipplr ) :

$args = array(
    'post_type' => 'attachment',
    'numberposts' => null,
    'post_status' => null,
    'post_parent' => $post->ID
);
$attachments = get_posts($args);
if ($attachments) {
    foreach ($attachments as $attachment) {
        echo apply_filters('the_title', $attachment->post_title);
        the_attachment_link($attachment->ID, false);
    }
}

Se puede acceder a toda esta funcionalidad a través del botón predeterminado "Agregar medios" en el extremo derecho de "Cargar / Insertar" en la nueva pantalla de publicación. Después de agregar una imagen, puede hacer clic en "Seleccionar archivos" nuevamente y cargar una segunda imagen. Luego un tercero. Luego un cuarto. Tantos como quieras.

Cada una de estas imágenes se "adjuntará" a la publicación ... incluso si no se insertan en el contenido.

EAMann
fuente
Por alguna extraña razón, solo puedo obtener ese código para generar el primer archivo adjunto en la plantilla, aunque el resto esté adjunto. ¿Algunas ideas? Aquí está el código ... dl.dropbox.com/u/497583/code/wp-attactments.txt
agileapricot
Necesita usar algunas variables diferentes. Estás usando ambos $posty $argsal menos en dos contextos diferentes, lo que hace que sea muy difícil descubrir exactamente qué es lo que estás tratando de hacer en cualquier momento. Pero
probé
6

Aquí hay un tutorial completo con archivos de origen que hacen exactamente lo que desea,
puede cargar múltiples imágenes clonando el campo de entrada y también puede obtener una vista previa, eliminar imágenes con ajax, agregar múltiples metaboxes a múltiples / diferentes tipos de publicaciones y más.

http://www.deluxeblogtips.com/2010/05/howto-meta-box-wordpress.html

Philip
fuente
Secundo esto. Funciona a las mil maravillas.
Manny Fleurmond el
Si bien ese enlace que proporcionó ahora está inactivo, el proyecto en referencia se ha transformado en un complemento / biblioteca amigable para desarrolladores. Ver: wordpress.org/plugins/meta-box y github.com/wpmetabox ... Parece un gran producto.
Kerry Randolph
2

También recomendaría visitar http://www.wpalchemy.com . WPAlchemy es una "clase" increíble (cerca de un complemento) para agregar fácilmente meta cuadros personalizados a su sitio. Lo uso ampliamente y me ha impresionado la facilidad de uso y el compromiso del desarrollador y la creciente comunidad.

internetross
fuente
0

Sí, es muy posible. Vea una respuesta que obtuve sobre metaboxes. Básicamente, solo querrás agregar un gancho save_posty verificar el campo nonce.

function my_save_post_callback( $post_id, $post )
{
    if ( empty($_POST) || !isset($_POST['my_custom_metabox']) || !wp_verify_nonce( $_POST['my_custom_metabox'], plugin_basename( __FILE__ ) ) )
    {
        return $post->ID;
    }

    // Handle the upload here

}
add_action( 'save_post', 'my_save_post_callback', 1, 2);
Zack
fuente