Как вывести список файлов, присоединенных к посту

Как вывести список файлов, присоединенных к посту | n-wp.ru

WordPress позволяет присоединять к посту практически любые файлы – достаточно воспользоваться кнопкой добавления медиа-контента. Закачанные таким образом файлы записываются в библиотеку медиафайлов, а в базе данных делается запись, что эти файлы присоединены к определенному посту.

Как вывести список файлов, присоединенных к посту (3)

Я уже писал о плагине Auto Attachments, который позволяет выводить список файлов, присоединенных к посту.

Такой список может быть полезен, например, если вы публикуете статью, в которой используются разные файлы – архивы, электронные документы, мультимедийный контент. Иногда нужно собрать все используемые в посте файлы отдельным списком – для этого плагин подходит идеально. Однако есть возможность вывести список присоединенных к посту файлов и без использования дополнительных плагинов, причем этот список можно оформить по своему усмотрению. Давайте посмотрим, как это можно сделать.

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

add_filter( 'the_content', 'my_the_content_filter' );
function my_the_content_filter( $content ) {
	global $post;

	if ( is_single() && $post->post_type == 'post' && $post->post_status == 'publish' ) {
		$attachments = get_posts( array(
			'post_type' => 'attachment',
			'posts_per_page' => 0,
			'post_parent' => $post->ID
		) );

		if ( $attachments ) {
			$content .= '

Присоединенные файлы

'; $content .= '
    '; foreach ( $attachments as $attachment ) { $class = "post-attachment mime-" . sanitize_title( $attachment->post_mime_type ); $title = wp_get_attachment_link( $attachment->ID, false ); $content .= '
  • ' . $title . '
  • '; } $content .= '
'; } } return $content; }

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

Как вывести список файлов, присоединенных к посту (2)

Для того, чтобы сделать этот список более привлекательным, давайте для каждого типа файлов добавим индивидуальную иконку. Для этого нужно создать файл attachments.css, расположенный рядом с файлом style.css, и вставить в него оформление для списка присоединенных файлов разного типа:

.post-attachment.mime-imagejpeg,
.post-attachment.mime-imagepng {
	background-image: url(icons/document-image.png);
}

.post-attachment.mime-applicationzip {
	background-image: url(icons/document-zipper.png);
}

.post-attachment.mime-applicationpdf {
	background-image: url(icons/document-pdf.png);
}

.post-attachment.mime-applicationx-shockwave-flash {
	background-image: url(icons/document-flash-movie.png);
}

.post-attachment.mime-applicationmsword {
	background-image: url(icons/document-word.png);
}

Если хотите, чтобы все типы файлов имели одинаковые иконки, то тогда содержимое файла attachments.css должно быть примерно таким:

ul.post-attachments {
	list-style: none;
	margin-left: 0;
}

li.post-attachment {
	background: url(icons/document.png) 0 4px no-repeat;
	padding-left: 24px;
}

Для того, чтобы файл стилей для списка присоединенных файлов использовался автоматически, добавьте в functiond.php:

add_action( 'wp_print_styles', 'my_enqueue_style' );
function my_enqueue_style() {
	wp_enqueue_style( 'post-attachemnts', get_stylesheet_directory_uri() . '/attachments.css', array(), null );
}

Как вывести список файлов, присоединенных к посту (1)

Автор tiaurus 2182 Articles
Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*