Мне присоединили галерею к странице. На той странице я выполняю следующий запрос:
$events_gallery = new WP_Query( // Start a new query for our videos
array(
'post_parent' => $post->ID, // Get data from the current post
'post_type' => 'attachment', // Only bring back attachments
'post_mime_type' => 'image', // Only bring back attachments that are images
'posts_per_page' => '3', // Show us the first three results
'status' => 'inherit', // Inherit the status of the parent post
'orderby' => 'rand', // Order the attachments randomly
)
);
Я экспериментировал довольно много путей и, по некоторым причинам, я не могу заставить вложения возвращаться. Я пропускаю что-то очевидное здесь?
Обновление*
Благодаря Воку для указания на меня в правильном направлении.
Оказывается, что я использовал "состояние" вместо "post_status". Кодекс использовал "состояние" в качестве примера в его объяснении в контексте типа сообщения "вложения". Я обновил кодекс к ссылке "post_status" вместо этого. Правильный код следующие:
$events_gallery = new WP_Query( // Start a new query for our videos
array(
'post_parent' => $post->ID, // Get data from the current post
'post_type' => 'attachment', // Only bring back attachments
'post_mime_type' => 'image', // Only bring back attachments that are images
'posts_per_page' => '3', // Show us the first three results
'post_status' => 'inherit', // Attachments default to "inherit", rather than published. Use "inherit" or "any".
'orderby' => 'rand', // Order the attachments randomly
)
);
Это параметры запроса, я использую... работы для меня, когда я циклично выполняюсь через результаты
array(
'post_parent' => $post->ID,
'post_status' => 'inherit',
'post_type'=> 'attachment',
'post_mime_type' => 'image/jpeg,image/gif,image/jpg,image/png'
);
Рассмотрение запроса, который это генерирует, это, действительно кажется, своего рода ошибка. 'состояние' => 'наследовалось', интерпретируется как состояние родителя, когда запись в дб для вложения, буквально 'наследовались'.
Альтернатива должна использовать get_children вместо WP_Query.
Я смог отобразить все изображения, которые являются вложениями к сообщению с помощью этого кода.
<?php
$args = array( 'post_type' => 'attachment', 'orderby' => 'menu_order', 'order' => 'ASC', 'post_mime_type' => 'image' ,'post_status' => null, 'post_parent' => $post->ID );
$attachments = get_posts($args);
if ($attachments) {
foreach ( $attachments as $attachment ) { ?>
<img src="<?php echo wp_get_attachment_url( $attachment->ID , false ); ?>" />
<?php }
} ?>
И повторить URL исходного полного изображения, Вы могли связать то изображение прочь с
<?php echo wp_get_attachment_url( $attachment->ID , false ); ?>
Надо надеяться, это - подход к тому, что Вы пытаетесь сделать.
Включить $args
, это важно.
'post_status' => 'any'
Не делайте: 'post_status' => null
Это важно, потому что вложения не имеют a post_status
, так значение по умолчанию для post_status
, published
, не найдет вложений.