Просмотр исходного кода

Rebalance: Add paging navigation to the porfolio project template. Fixes #273.

Laurel Fulford 6 лет назад
Родитель
Сommit
297af5fb5b
2 измененных файлов с 47 добавлено и 2 удалено
  1. 35 0
      rebalance/inc/template-tags.php
  2. 12 2
      rebalance/portfolio-page.php

+ 35 - 0
rebalance/inc/template-tags.php

@@ -7,6 +7,41 @@
  * @package Rebalance
  */
 
+if ( ! function_exists( 'rebalance_paging_nav' ) ) :
+/**
+ * Display navigation to next/previous set of posts when applicable.
+ *
+ * @return void
+ */
+function rebalance_paging_nav( $max_num_pages = '' ) {
+	// Get max_num_pages if not provided
+	if ( '' == $max_num_pages ) {
+		$max_num_pages = $GLOBALS['wp_query']->max_num_pages;
+	}
+
+	// Don't print empty markup if there's only one page.
+	if ( $max_num_pages < 2 ) {
+		return;
+	}
+	?>
+	<nav class="navigation posts-navigation" role="navigation">
+		<h1 class="screen-reader-text"><?php esc_html_e( 'Posts navigation', 'rebalance' ); ?></h1>
+		<div class="nav-links">
+
+			<?php if ( get_next_posts_link( '', $max_num_pages ) ) : ?>
+			<div class="nav-previous"><?php next_posts_link( esc_html__( 'Older Projects', 'rebalance' ), $max_num_pages ); ?></div>
+			<?php endif; ?>
+
+			<?php if ( get_previous_posts_link( '', $max_num_pages ) ) : ?>
+			<div class="nav-next"><?php previous_posts_link( esc_html__( 'Newer Projects', 'rebalance' ), $max_num_pages ); ?></div>
+			<?php endif; ?>
+
+		</div><!-- .nav-links -->
+	</nav><!-- .navigation -->
+	<?php
+}
+endif;
+
 if ( ! function_exists( 'rebalance_site_logo' ) ) :
 /**
  * Fall back to Jetpack site logo if core logo doesn't exist

+ 12 - 2
rebalance/portfolio-page.php

@@ -29,13 +29,23 @@ get_header(); ?>
 		<main id="main" class="site-main" role="main">
 
 			<?php // Set Up New Query
-				$paged = get_query_var( 'page' ) ? get_query_var( 'page' ) : 1;
+				if ( get_query_var( 'paged' ) ) :
+					$paged = get_query_var( 'paged' );
+				elseif ( get_query_var( 'page' ) ) :
+					$paged = get_query_var( 'page' );
+				else :
+					$paged = 1;
+				endif;
+
+				$posts_per_page = get_option( 'jetpack_portfolio_posts_per_page', '10' );
+
 				$temp = null;
 				$project_query = $temp;
 				$project_query = new WP_Query();
 				$project_query->query( array(
 					'post_type'    => 'jetpack-portfolio',
 					'paged'        => $paged,
+					'posts_per_page' => $posts_per_page,
 					'post__not_in' => $featured_ids
 				) ); ?>
 
@@ -57,7 +67,7 @@ get_header(); ?>
 
 				</div>
 
-				<?php the_posts_navigation(); ?>
+				<?php rebalance_paging_nav( $project_query->max_num_pages ); ?>
 
 			<?php else : ?>