После того, как вы познакомились с некоторыми сниппетами, которые я использую для вывода изображений на странице поста, представлю вам несколько сниппетов, упрощающих создание функциональной, отдельной страницы вложения, на которой выводится изображение. За вид этой страницы отвечает файл image.php.
Если вы используете отдельную страницу для показа присоединенного к посту изображения, формируемую файлом image.php, то наверняка указываете ссылки на предыдущее и следующее изображение, отображаемые в виде миниатюр. Эти ссылки-миниатюры выводятся функциями previous_image_link и next_image_link. Однако по-умолчанию у ссылок, выводимых этими функциями, нет никакого класса, и чтобы оформить их, приходится придумывать лишний код. Это дело можно поправить, добавив классы оформления к ссылкам, если использовать функции в таком виде:
'prev_img')); ?> 'next_img')); ?>
Чтобы дать понять посетителю, какое он просматривает изображение на отдельной странице вложения, за вывод которой отвечает файл image.php, можно вывести счетчик изображений. Он будет показывать, какой порядковый номер у просматриваемого изображения, и сколько всего изображений, например, вот так: 1 из 64. Код для вставки в файл image.php:
$post->post_parent, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID' ) ); $count = count( $attachments ); $specific = array(); $i = 1; foreach ( $attachments as $attachment ) { $specific[$attachment->ID] = $i; ++$i; } echo "{$specific[$post->ID]} из {$count}"; ?>
После того, как посетитель посмотрел изображение на отдельной страницу вложения, у него возникает желание вернуться обратно на родительскую страницу. Можно создать ссылку, кликнув по которой посетитель вернется на родительскую страницу, добавив следующий код в файл image.php:
post_parent) { $ancestors = get_post_ancestors($post->ID); $root = count($ancestors)-1; $parent = $ancestors[$root]; $parent_title = get_the_title($parent);?> <a href="" class="post-parent-link" title="вернуться на страницу «post_parent); ?>»"></a>
Если вы используете миниатюры, то одно и то же изображение хранится в блоге в нескольких вариантах. Если вы хотите предоставить пользователю все эти варианты, то можете создать на странице вложения ссылки на них, снабдив их показателями ширины и высоты. Для этого создадим функцию, находящую все варианты изображения, и выводящую ссылки на них. Вставьте в файл functions.php:
function my_get_image_size_links() { global $post; $attachments = get_children( array( 'post_parent' => $post->post_parent, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID' ) ); $count = count( $attachments ); $specific = array(); $i = 1; foreach ( $attachments as $attachment ) { $specific[$attachment->ID] = $i; ++$i; } if ( !wp_attachment_is_image( get_the_ID() ) ) return; $links = array(); $sizes = get_intermediate_image_sizes(); $sizes[] = 'full'; $title = get_the_title(); foreach ( $sizes as $size ) { $image = wp_get_attachment_image_src( get_the_ID(), $size ); if ( !empty( $image ) && ( true == $image[3] || 'full' == $size ) ) $links[] = "<span class='previous_post_link_top'><a>ID]} — {$image[1]}×{$image[2]}' target='_blank' class='image-size-link' href='{$image[0]}'>{$image[1]}<span class='x-color'>×</span>{$image[2]}</a></span>"; } return join( '', $links ); }
Для вывода ссылок на все варианты изображения вставьте в файл image.php:
