Больше результатов...

Generic selectors
Только точные совпадения
Искать в заголовках
Искать в контенте
Post Type Selectors
Filter by Categories
FAQ
Hostenko
Вдохновение
Видеоуроки
Новости
Плагины
Темы
Уроки
Хаки

В процессе создания системы контроля заказов с применением Custom Meta Boxes для сбора и хранения пользовательских данных о каждом из размещенных заказов, я столкнулся с необходимостью загружать документы (инвойсы и прочее) для каждого заказа, а затем отображать их в рамках размещенного заказа для авторизованных пользователей.

Чтобы решить данную задачу, был создан настраиваемый тип поста с использованием функции wp_get_attachment_link в сочетании с запросом get_posts для того, чтобы получить все прикрепленные файлы к каждому посту и отображать эти файлы как список со ссылками на каждый отдельно взятый документ.

inet.ws - Powerful VPS Hosting in the USA, Canada, UK and DE!

В цикле мной был использован следующий код:

<?php // get post attachments
$post_attachments = get_posts( array (
	'post_type' => 'attachment',
	'post_parent' => $post->ID
));
?>
<ul>
	<?php foreach ( $post_attachments as $post_attachment ) {
		echo '<li>' . wp_get_attachment_link( $post_attachment->ID, '', false, false ) . '</li>';
	} ?>
</ul>

Первая половина кода выполняет запрос get_posts для поиска всех вложений в посте, который мы в данный момент просматриваем (вложения — это отдельный тип размещенных материалов, и у них есть родительский пост, с которым они связаны).

Вторая половина кода берет этот массив и для каждого выполняет функцию wp_get_attachment_link, чтобы получить ссылки на вложенные файлы с использованием заголовков для файлов, добавленных к тексту.

В итоге у вас получится список всех вложенных в пост материалов (правда неупорядоченный), наподобие того, что на данном изображении:

Как в WordPress-записи вывести список всех добавленных файлов

Вы также можете изменить значение аргументов для wp_get_attachment_link, чтобы получить массив другого рода, вроде отображения иконок для каждого отдельного типа файлов.

Надеюсь, этот маленький трюк вам пригодится.

Источник:doitwithwp.com
inet.ws - Powerful VPS Hosting in the USA, Canada, UK and DE!
Алексей Шевченко
редактор wpcafe
Изучает сайтостроение с 2008 года. Практикующий вебмастер, специализирующий на создание сайтов на WordPress. Задать вопрос Алексею можно на https://profiles.wordpress.org/wpthemeus/

Комментарии к записи: 0

Добавить комментарий