[Resolved] pagination for GP custom page template

Home Forums Support pagination for GP custom page template

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #985688
    Manuela

    I have a custom template based on the page template of the Generate press theme.
    This template displays all custom posts created by a user when that user is logged in. The custom posts display Advanced custom fields (ACF). All is well but I can’t figure out how can I use Generate press theme to add pagination to this template. If post_per_page is not set, 10 posts will display with no pagination links. I set the post_per_page 25 for now so the user can see all posts.

    Below is a reduced version of my custom template. Thanks!

     <?php
     /*Template name: my guitars
    
     * The template for displaying all pages.
     *
     * This is the template that displays all pages by default.
     * Please note that this is the WordPress construct of pages
     * and that other 'pages' on your WordPress site will use a
     * different template.
     *
     * @package GeneratePress
     */
    
    if ( ! defined( 'ABSPATH' ) ) {
    	exit; // Exit if accessed directly.
    }
    
    get_header(); ?>
    
    	<div id="primary" <?php generate_do_element_classes( 'content' ); ?>>
            <main id="main" <?php generate_do_element_classes( 'main' ); ?>>
                
    			<?php
    			/**
    			 * generate_before_main_content hook.
    			 *
    			 * @since 0.1
    			 */
                do_action( 'generate_before_main_content' );
    
    if ( is_user_logged_in() ):
    
        global $current_user;
        wp_get_current_user();
             
                $guitar = new WP_Query(array(
    			'post_type' => 'guitars',
    			'nopaging'               => false,
        			'posts_per_page'         => '25',
                            'author' =>  $current_user->ID
                ));
            while ( $guitar->have_posts() ) : $guitar->the_post(); ?>
    
                <article id="post-<?php the_ID(); ?>" <?php post_class(); ?> <?php generate_do_microdata( 'article' ); ?>>
    				<div class="inside-article">
                         <div class="entry-content" itemprop="text">
                                                
                        <!--display post title -->  
    					<header class="entry-header">
    
    					</header><!-- .entry-header -->
    
                        <?php
                            /**
                             * generate_after_entry_header hook.
                             *
                             * @since 0.1
                             *
                             * @hooked generate_post_image - 10
                             */
                            do_action( 'generate_after_entry_header' );
                        ?>
                        <div class="details">
                            <!-- display ACF - custom post type guitar  -->	
        
                                            
                        </div>
    
                        <?php wp_link_pages( array(
                            'before' => '<div class="page-links">' . __( 'Pages:', 'generatepress' ),
                            'after'  => '</div>',
                        ) );
                        ?>
     
                        </div><!-- .entry-content -->
    
                            <?php
                            /**
                             * generate_after_entry_content hook.
                             *
                             * @since 0.1
                             *
                             * @hooked generate_footer_meta - 10
                             */
                            do_action( 'generate_after_entry_content' );
    
                            /**
                             * generate_after_content hook.
                             *
                             * @since 0.1
                             */
                            do_action( 'generate_after_content' );
                            ?>
    				</div><!-- .inside-article -->
                </article>		
    			
    		<?php	endwhile; ?>
    		<!-- Add pagination here? -->
    	
    		
    <?php		
     else :
    
        echo "not logged in";
    
    endif;           
    
    			/**
    			 * generate_after_main_content hook.
    			 *
    			 * @since 0.1
    			 */
    			do_action( 'generate_after_main_content' );
    			?>
    		</main><!-- #main -->
    	</div><!-- #primary -->
    
    	<?php
    	/**
    	 * generate_after_primary_content_area hook.
    	 *
    	 * @since 2.0
    	 */
    	do_action( 'generate_after_primary_content_area' );
    
    	generate_construct_sidebars();
    
    get_footer();
    

    Note: I tried GP Show Posts, but couldn’t limit the posts per logged in user.

    #986007
    Manuela

    I used this to add paging to my custom post:

    https://wordpress.stackexchange.com/questions/32100/pagination-on-a-custom-page-template

    If someone knows a better way please post. Thanks

    #986129
    Tom
    Lead Developer
    Lead Developer

    That looks like a good solution.

    This function might be worth looking at as well: https://codex.wordpress.org/Function_Reference/the_posts_pagination

    #990545
    Manuela

    Thanks Tom! I’ll try that too!

    #991206
    Tom
    Lead Developer
    Lead Developer
Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.