В процессе разработки вывода галереи 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 по вашему желанию. Затем замените код цикла на что-то вроде следующего:
2 | if ( have_posts() ) : while ( have_posts() ) : the_post(); |
3 | $photographer = get_post_meta( $post ->ID, 'be_photographer_name' , true); |
4 | $photographerurl = get_post_meta( $post ->ID, 'be_photographer_url' , true); |
7 | <h1><?php the_title(); ?></h1> |
9 | <div class = "photometa" ><span class = "photographername" ><?php echo $photographer ; ?></span> |
11 | <div class = "entry-attachment" > |
12 | <?php if ( wp_attachment_is_image( $post ->id ) ) : $att_image = wp_get_attachment_image_src( $post ->id, "full" ); ?> |
13 | <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> |
16 | <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> |
Код выше просто отображает заголовок изображения. Под ним он выведет имя автора и ссылку, которые мы добавляли в виде пользовательских полей в нашей предыдущей статье (ссылку на которую мы давали в начале). Затем код ищет изображение и отображает его в полном размере. Можно настроить любой другой размер, если в вашем шаблоне он указан для миниатюр.
Финальный вариант:
![single-attachment-ex[1]](https://wpincode.com/wp-content/uploads/2013/09/single-attachment-ex1.gif)
Теперь, когда мы осветили все три основных аспекта этой галереи, которую создаем, в следующей статье мы покажем вам как это все выглядит, если кусочки собрать воедино. Тогда мы сможете использовать встроенный в WordPress механизм для создания полнофункциональной галереи с альбомами. Без дополнительных плагинов.
Ресурсы:
Template Hierarchy Codex
VN:F [1.9.22_1171]
Rating: 3.0/5 (4 votes cast)