¿Cómo obtengo una imagen aleatoria de un subconjunto de imágenes en la galería de medios?

2

Si una publicación personalizada no tiene una imagen destacada, me gustaría capturar una imagen de la biblioteca de medios para usarla en lugar de la imagen destacada. Estas imágenes en particular no se adjuntarán a ninguna publicación en particular, y solo se utilizarán en lugar de una imagen destacada en las publicaciones donde no haya ninguna. No quiero obtener ninguna imagen de la biblioteca de medios, solo las que he etiquetado de alguna manera.

Lo tengo funcionando ahora con un conjunto de imágenes codificadas (que acabo de enviar por FTP al directorio de subidas). Sin embargo, me gustaría tener la posibilidad de agregar imágenes a la biblioteca de medios y de alguna manera "etiquetarlas" para que se usen como una imagen predeterminada. Dado que no parece haber categorías / etiquetas / taxonomías para las imágenes cargadas, ¿cuál sería la mejor solución para obtener esta funcionalidad?

Lo único que se me ocurre es crear una página y cargar todas mis "imágenes predeterminadas" a esa página. Luego solo consulta todas las imágenes adjuntas a esa página y usa una al azar. Tiene que haber una forma mejor que crear una página inútil para clasificar las imágenes.

    
pregunta bassfan 19.12.2015 - 18:52

1 respuesta

4

Puede usar taxonomías con la biblioteca de medios, solo necesita agregar una taxonomía incorporada o registrar una nueva .

Por ejemplo, agregando la taxonomía de etiqueta de entrada incorporada a los archivos adjuntos:

function wpd_attachment_taxonomy() {
    register_taxonomy_for_object_type( 'post_tag', 'attachment' );
}
add_action( 'init', 'wpd_attachment_taxonomy' );

Luego puede consultar imágenes con una etiqueta específica:

$args = array(
    'post_type' => 'attachment',
    'post_status' => 'inherit',
    'tag' => 'tagged',
    'posts_per_page' => 1,
    'fields' => 'ids',
    'orderby' => 'rand'
);

$image = new WP_Query( $args );

if( $image->have_posts() ){
    $image_attributes = wp_get_attachment_image_src( $image->posts[0], 'full' );
    echo $image_attributes[0];
}

Cambie tagged a cualquiera que sea el slug de su etiqueta elegida. Esto obtendrá el ID de archivo adjunto de una imagen aleatoria con su etiqueta. Luego podemos usar esa ID para obtener los atributos de la imagen adjunta.

    
respondido por el Milo 19.12.2015 - 19:10

Lea otras preguntas en las etiquetas