Recientemente, mientras trabajábamos en un proyecto personalizado para un cliente, tuvimos que obtener todos los archivos adjuntos de publicaciones de un tipo de publicación personalizada y mostrarlos en un solo lugar. Como estábamos creando una vista de cuadrícula, la imagen destacada de cada publicación estaba destinada a ser un separador. Es por eso que cuando obtuvimos todos los archivos adjuntos de publicaciones, tuvimos que excluir la imagen de primer plano, para que no se mostrara dos veces. En este artículo, le mostraremos cómo obtener todos los archivos adjuntos de publicaciones en WordPress, excepto la imagen destacada.
Todo lo que tienes que hacer es pegar el siguiente código dentro de un bucle.
<?php if ( $post->post_type == 'data-design' && $post->post_status == 'publish' ) { $attachments = get_posts( array( 'post_type' => 'attachment', 'posts_per_page' => -1, 'post_parent' => $post->ID, 'exclude' => get_post_thumbnail_id() ) ); if ( $attachments ) { foreach ( $attachments as $attachment ) { $class = "post-attachment mime-" . sanitize_title( $attachment->post_mime_type ); $thumbimg = wp_get_attachment_link( $attachment->ID, 'thumbnail-size', true ); echo '<li class="' . $class . ' data-design-thumbnail">' . $thumbimg . '</li>'; } } } ?>
El código anterior primero verifica si el tipo de publicación es diseño de datos y el estado de la publicación está publicado. Es posible que no necesite el primer condicional dependiendo de lo que esté intentando hacer. Así que ejecutemos la consulta get_posts. Allí todo es bastante intuitivo. La clave que debemos resaltar es la función de exclusión. Esa línea garantiza que no se muestre la imagen de primer plano. Si elimina esa línea, se mostrará la imagen de primer plano. Después de especificar todos los parámetros, simplemente especificamos qué hacer cuando se extrae cada archivo adjunto. Estamos extrayendo el tipo de archivo adjunto para la variable de clase. Luego, la variable $ thumbimg simplemente usa wp_get_attachment_link para extraer la imagen con un tamaño de miniatura específico y también vincula la imagen a las páginas de adjuntos individuales. En la etapa final, simplemente lo hacemos eco.
Ejecutamos este código dentro de un ciclo con una llamada separada a la imagen de primer plano que enlaza con la publicación única. El resultado final fue algo como esto:
Cada imagen presentada sirvió como una imagen de identificación de álbum que puede ver. Las manchas grises se han rellenado con archivos adjuntos para la publicación. Esperamos que esto ayude a aquellos que buscan llevar WordPress más allá de una plataforma de blogs.
¿Te ha resultado útil??
0 / 0