Как и в заголовке, я пытаюсь отобразить только те элементы в библиотеке мультимедиа, которые относятся к определенной категории. Привязаны ли они к чему-либо или нет.
В настоящее время я могу получить все изображения, но я не уверен, как сузить их до определенных категорий.
Вот что у меня так далеко:
<select name="event-dropdown" onchange="document.location.href=this.options[this.selectedIndex].value;">
<option value=""><?php echo esc_attr(__('Select Event')); ?></option>
<?php
$args = array(
'hide_empty' => 0,
);
$categories = get_categories($args);
foreach ($categories as $category) {
$option = '<option value="?cat='.get_cat_ID($category->cat_name).'">';
$option .= $category->cat_name;
$option .= ' ('.$category->category_count.')';
$option .= '</option>';
echo $option;
}
?>
</select>
<?php
$query_images_args = array(
'post_type' => 'attachment',
'post_mime_type' =>'image',
'post_status' => 'inherit',
'posts_per_page' => -1,
);
$query_images = new WP_Query($query_images_args);
if($_GET['cat']){
// not sure what to do here yet
}else{
// this part works fine
foreach ( $query_images->posts as $image) {
echo wp_get_attachment_image($image->ID);
}
}
?>
Может кто-нибудь просветить меня о том, как / если это можно сделать. Все, что я смог найти, это материал, связанный с прикрепленными изображениями или постами. Я просто хочу вытащить их прямо из библиотеки.
РЕДАКТИРОВАТЬ Теги тоже подойдут. Это не должно быть категорией.
если вы не добавите собственный метатег к каждому изображению в медиатеке, ваш запрос не будет работать.
Возможное решение
например создайте сообщение, назовите его как-нибудь релевантно, отметьте все категории, с которыми вы хотите связать это сообщение, теперь добавьте в него все изображения, которые вы хотите показать.
Вы можете использовать этот запрос, чтобы увеличить пост & термины категории, которые вы хотите показать, вместе с изображениями, прикрепленными к посту (ам).
<?php
$args = array (
'post_type' => 'post',
'tax_query' => array(
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => 'your-cat-name-here'
)
)
);
$custom_query = new WP_Query( $args );
if ( $custom_query->have_posts() ):
while ( $custom_query->have_posts() ) :
$custom_query->the_post();
// Do stuff with the post content.
$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 );
$image_title = $attachment->post_title;
$caption = $attachment->post_excerpt;
$description = $image->post_content;
//print_r($attachment);
echo '<div class="thumbnail"><a href="'.wp_get_attachment_url($attachment->ID).'" title="'.$attachment->post_excerpt.'"><figure><img src="'.wp_get_attachment_url($attachment->ID).'" /></figure></a></div>';
}
//End
echo '</div>';
}
endwhile;
else:
// we can insert something if Nothing found.
echo "<h2>Sorry, but there's nothing here.</h2>";
endif;
wp_reset_query();
?>
Других решений пока нет …