Wordpress - Custom Taxonomy Pagination

前端 未结 6 982
我在风中等你
我在风中等你 2020-12-11 21:00

I\'m using:

  • Wordpress 3.4
  • WP-PageNavi 2.82

I register custom taxonomy (catalog)



        
6条回答
  •  醉梦人生
    2020-12-11 21:20

    Once I have faced problem about this and passed hard times hrs to hrs by pulling hair. I googled and didn't found any specific solution about the topics. I found several talents' article but they weren't satisfying my problems. Actually custom taxonomy archive page pagination is depends on some settings of arguments of related functions. So I am actually going here sharing my thoughts of solving the taxonomy archive pagination problem.

    Five things you need for custom taxonomy archive page pagination working perfectly :

    ( 1 ) Don't put exclude_from_search parameter key as register_post_type argument parameter or if mention set it 'exclude_from_search' => false. By default it is set false if not mentioned.

    ( 2 ) The taxonomy that will be use with the custom post type set 'taxonomies' => 'custom_taxonomy_name' as register_post_type argument parameter or
    use register_taxonomy_for_object_type() directly. Custom taxonomies still need to be registered with register_taxonomy().

    ( 3 ) While querying within new WP_Query ($args)

    i ) If not set in admin `static front page` use before `new WP_Query($args)` 
    
    $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
     and use $query = new WP_Query( array( 'paged' => $paged ) );
    
    ii ) If set in admin static front page use before 'new WP_Query($args)'
      $paged = ( get_query_var('page') ) ? get_query_var('page') : 1;
      and use $query = new WP_Query( array( 'page' => $paged ) );
    

    Remember to use posts_per_page and paged parameter in new WP_Query($arg) argument array. If not set static front page then you should use page parameter in new WP_Query ($arg) argument array

    ( 4 ) Use Wordpress paginate_links( $args ) function like the example below to render pagination in archive template file.

     str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
                      'format' => '?paged=%#%',  or   '/paged=%#%',  // if using pretty permalink
                       'current' => max( 1, get_query_var('paged') ),
                       'total' => $query->max_num_pages ) ); // Here $max_num_pages is the properties of  new WP_Query() object . It is total number of pages. Is the result of $found_posts / $posts_per_page
     ?>
    

    ( 5 ) The paginate_links() function output the ul li listing with page-numbers class. If you use bootstrap inject pagination class to the ul with the help of javascript or jquery and a nice fancy pagination will be output.

    Hope you can now enjoy pagination in the taxonomy archive template without any 404 problem :-)

提交回复
热议问题