В процессе разработки вывода галереи 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; ?>
Код выше просто отображает заголовок изображения. Под ним он выведет имя автора и ссылку, которые мы добавляли в виде пользовательских полей в нашей предыдущей статье (ссылку на которую мы давали в начале). Затем код ищет изображение и отображает его в полном размере. Можно настроить любой другой размер, если в вашем шаблоне он указан для миниатюр.
Финальный вариант:
Теперь, когда мы осветили все три основных аспекта этой галереи, которую создаем, в следующей статье мы покажем вам как это все выглядит, если кусочки собрать воедино. Тогда мы сможете использовать встроенный в WordPress механизм для создания полнофункциональной галереи с альбомами. Без дополнительных плагинов.
Ресурсы:
Template Hierarchy Codex