Создаем пользовательский шаблон для вложений в WordPress

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

Прежде чем начать, важно, чтобы вы понимали как иерархия шаблонов работает для вложений. Вы можете указать его как mime_type.php. Примеры Mime type — image.php, video.php, application.php и т.д. Для указания его только для определенного типа изображений можно назвать image_gif.php. Если mime_type.php не найден, то он ищет attachment.php, а затем ingle-attachment.php, затем single.php, затем index.php.

В зависимости от того, над каким проектом вы работаете, вам может не понадобиться создавать image_gif.php. Достаточно будет image.php или даже attachment.php.

Все, что вам нужно сделать, это открыть пустой файл и скопировать в него все содержимое single.php. Можно сохранить его с именем single-attachment.php или любым другим mime_type по вашему желанию. Затем замените код цикла на что-то вроде следующего:

<?php
if ( have_posts() ) : while ( have_posts() ) : the_post();
$photographer = get_post_meta($post->ID, 'be_photographer_name', true);
$photographerurl = get_post_meta($post->ID, 'be_photographer_url', true);
?>

<h1><?php the_title(); ?></h1>

<div class="photometa"><span class="photographername"><?php echo $photographer; ?></span> // <a href="<?php echo $photographerurl ?>" target="_blank" class="photographerurl"><?php echo $photographerurl ?></a></div>

                        <div class="entry-attachment">
<?php if ( wp_attachment_is_image( $post->id ) ) : $att_image = wp_get_attachment_image_src( $post->id, "full"); ?>
                        <p class="attachment"><a href="<?php echo wp_get_attachment_url($post->id); ?>" title="<?php the_title(); ?>" rel="attachment"><img src="<?php echo $att_image[0];?>" width="<?php echo $att_image[1];?>" height="<?php echo $att_image[2];?>"  class="attachment-medium" alt="<?php $post->post_excerpt; ?>" /></a>
                        </p>
<?php else : ?>
                        <a href="<?php echo wp_get_attachment_url($post->ID) ?>" title="<?php echo wp_specialchars( get_the_title($post->ID), 1 ) ?>" rel="attachment"><?php echo basename($post->guid) ?></a>
<?php endif; ?>
                        </div>

<?php endwhile; ?>

<?php endif; ?>

Код выше просто отображает заголовок изображения. Под ним он выведет имя автора и ссылку, которые мы добавляли в виде пользовательских полей в нашей предыдущей статье (ссылку на которую мы давали в начале). Затем код ищет изображение и отображает его в полном размере. Можно настроить любой другой размер, если в вашем шаблоне он указан для миниатюр.

Финальный вариант:

single-attachment-ex[1]

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

Ресурсы:
Template Hierarchy Codex

VN:F [1.9.22_1171]
Rating: 5.0/5 (2 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
  • еуые

    erg

  • http://evgmoskalenko.com/ Евгений

    Здравствуйте, а не подскажите, как в «single-attachment.php», под картинкой-вложением добавить часть текста из поста, к которому прикреплена данная картинка?

    Спасибо.. :-)

Scroll To Top