У меня есть галерея, прикрепленная к странице. На этой странице я выполняю следующий запрос:
$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
)
);
Я пробовал довольно много способов, и по какой-то причине я не могу вернуть вложения. Я пропустил что-то очевидное здесь?
Обновлять*
Спасибо Wok за то, что указал мне правильное направление.
Оказывается, я использовал «статус» вместо «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
)
);
Интересно, в чем разница между post_status, установленным на «null» и «inherit»?
Вы только что спасли меня от боли благодаря
'post_status' => 'inherit'
Спасибо!Пожалуйста, постарайтесь объяснить ответ, а не просто размещайте строку или две кода.
Да как это работает? Я не мог заставить свое вложение отображаться на моей странице архива, пока не добавил это.
Работает ли с этим пагинация? И можете ли вы показать остальную часть вашего выходного кода? Я нахожусь в середине перекодирования галереи тем, чтобы фактически разбить на страницы вложения, которые находятся на странице. Спасибо!
Если я загружу 4 изображения в сообщение и добавлю это в основной блок ввода содержимого в single.php, он просто выдаст 4 тега изображения. src= каждого приведет к исходному большому размеру изображения. Пагинация при этом не работает, так как выдает все без исключения изображения, прикрепленные к сообщению.
Это параметры запроса, которые я использую… работает для меня, когда я перебираю результаты
Для получения более подробной информации см. официальную документацию по параметрам состояния WP_Query.
Добавьте
$args
, это важно.Не делайте:
'post_status' => null
Это важно, потому что у вложений нет
post_status
, поэтому значение по умолчанию дляpost_status
,published
не будет находить вложений.Глядя на запрос, который он генерирует, кажется, что это своего рода ошибка. ‘status’ => ‘inherit’ интерпретируется как статус родителя, когда запись в базе данных для вложения буквально ‘inherit’.
Альтернативой является использование get_children вместо WP_Query.
С помощью этого кода я смог отобразить все изображения, прикрепленные к сообщению.
И чтобы повторить URL-адрес исходного полноразмерного изображения, вы можете связать это изображение с
Надеюсь, это подход к тому, что вы пытаетесь сделать.