Поврежденный? WP_Query и “вложение” как тип сообщения

Мне присоединили галерею к странице. На той странице я выполняю следующий запрос:

$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  
    )
);  
18
14.06.2019, 20:44
4 ответа

Это параметры запроса, я использую... работы для меня, когда я циклично выполняюсь через результаты

array(
                'post_parent' => $post->ID,
                'post_status' => 'inherit',
                'post_type'=> 'attachment',
                'post_mime_type' => 'image/jpeg,image/gif,image/jpg,image/png'                  
            );
15
19.02.2020, 21:57

Рассмотрение запроса, который это генерирует, это, действительно кажется, своего рода ошибка. 'состояние' => 'наследовалось', интерпретируется как состояние родителя, когда запись в дб для вложения, буквально 'наследовались'.

Альтернатива должна использовать get_children вместо WP_Query.

0
19.02.2020, 21:57

Я смог отобразить все изображения, которые являются вложениями к сообщению с помощью этого кода.

<?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 ); ?>

Надо надеяться, это - подход к тому, что Вы пытаетесь сделать.

0
19.02.2020, 21:57
  • 1
    разбиение на страницы работает с этим? И можно ли показать остальную часть выходного кода? Я посреди перекодирования галереи тем для фактической нумерации страниц вложений, которые находятся на странице.Спасибо! –   21.04.2011, 01:31
  • 2
    Если я загружу 4 изображения на сообщение, и я добавляю это в отделение записи основного содержания в single.php, то оно просто выложит 4 тега изображения. src = каждого приведет к исходному большому размеру изображения. Разбиение на страницы не работает с этим, поскольку оно выкладывает любого и все изображения, которые присоединены к сообщению. –  Chad Von Lind 21.04.2011, 01:45

Включить $args, это важно.

'post_status' => 'any'

Не делайте: 'post_status' => null

Это важно, потому что вложения не имеют a post_status, так значение по умолчанию для post_status, published, не найдет вложений.

13
19.02.2020, 21:57
  • 1
    Приложите усилие, чтобы объяснить ответ, вместо того, чтобы просто отправить строку или два из кода. –  s_ha_dum 19.09.2013, 09:27
  • 2
    Да, каким образом это работает? Я не мог заставить свое вложение обнаруживаться на моей странице архива, пока я не добавил это. –  Claire 26.04.2015, 11:56

Теги

Похожие вопросы