Как сделать следующую и предыдущую прикрепленную навигацию на странице вложений?
. __ ('Предыдущее изображение', '$ text_domain'). ''); ?> '. __ ('Следующее изображение', '$ text_domain'). ''); ?>
отлично работает 🙂
Используйте next_image_link
previous_image_link
и next_image_link
в файле image.php или attachment.php.
<nav id="image-navigation" class="navigation image-navigation"> <div class="nav-links"> <?php previous_image_link( false, '<div class="previous-image">' . __( 'Previous Image', '$text_domain' ) . '</div>' ); ?> <?php next_image_link( false, '<div class="next-image">' . __( 'Next Image', '$text_domain' ) . '</div>' ); ?> </div><!-- .nav-links --> </nav><!-- #image-navigation -->
Источник: Двадцать четырнадцать
Используйте запрос даты, чтобы получить следующее и предыдущее (вложение) сообщение по дате. И исключить все дочерние вложения из текущего родительского сообщения.
<?php // use in template for single attachment display // get all children ids (to exclude from the queries for next and previous post) $args = array( 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'fields' => 'ids', 'post_parent' => $post->post_parent, ); // get image attachments of parent (current post will be included) $children_ids = get_children( $args ); $args = array( 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'posts_per_page' => 1, 'order' => 'DESC', 'post__not_in' => $children_ids, 'date_query' => array( array( 'before' => $post->post_date, 'column' => 'post_date', ), ) ); // get attachment with post date before current post date $previous = get_posts( $args ); if ( isset( $previous[0]->ID ) ) { echo wp_get_attachment_link( $previous[0]->ID, 'thumbnail', true ); } // remove before unset( $args['date_query'][0]['before'] ); // add after and change order $args['order'] = 'ASC'; $args['date_query'][0]['after'] = $post->post_date; // get attachment with post date after current post date $next = get_posts( $args ); if ( isset( $next[0]->ID ) ) { echo wp_get_attachment_link( $next[0]->ID, 'thumbnail', true ); } ?>