Недавно, в процессе работы над проектом для клиента, нам понадобилось получить все вложения к записи из пользовательского типа записи и отобразить их в одном месте. В виду того, что мы делали отображение в виде сетки, нужно было организовать все так, чтобы миниатюра служила разделителем. Именно поэтому, при получении всех вложений записи, нам необходимо исключить саму миниатюру, чтобы та не отображалась дважды. В этой статье мы расскажем вам как получить все вложения кроме миниатюры в WordPress.
Все, что нужно сделать, это вставить нижеприведенный код в цикл:
<?php if ( $post->post_type == 'data-design' && $post->post_status == 'publish' ) { $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 ); echo '<li class="' . $class . ' data-design-thumbnail">' . $thumbimg . '</li>'; } } } ?>
Этот код сначала проверяет является ли тип записи data-design, а также опубликована ли она. Возможно, вам не понадобится первое условие (все зависит от того, что вы собираетесь сделать). Затем мы просто выполняем запрос get_posts. Все довольно просто. Ключевым моментом является то, что нам нужно выделить миниатюру. Строка проверяет, что миниатюра не отображается. Если строку убрать, то, соответственно, она появится. После определения параметров, мы просто указываем что нужно делать после того как каждое вложение будет извлечено. Мы заключаем вложение в переменную. Затем переменная $thumbimg используется для функции wp_get_attachment_link, чтобы взять изображение определенного размера, а также для указания ссылок на изображение для одной страницы вложения. И, наконец, мы выводим на сайт результат.
Мы запустили этот код внутри цикла с отдельным вызовом для миниатюры, которая ссылается на определенный пост. Итоговый результат выглядит примерно так:
Каждая миниатюра служит идентификатором альбома, как видно выше. Серые точки заполняются вложениями к записи. Надеемся, что вы найдете применение этому интересному хуку в своей теме WordPress.