I've been getting a 404 error on a CPT archive page, and am not sure why. I can go to the page set for the custom post type archive, but the next page /mycustomposttype/page/2
gets a 404 error.
I don't think that there's anything wrong with my code and I've flushed my permalink rules and I think that the CPT is registered correctly. But my code is below. Any insights would be greatly appreciated since I can't see why the pages are not being found. I did some research here, and saw similar issues and tried to follow allow of the solutions presented. But no luck.
<!-- Row for main content area -->
<div class="full-width" role="main" >
<section id="sketchbook-wall">
<ul id="sketchbook-container" class="large-block-grid-4">
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'post_type' => 'tn_cstm_sketchbook',
'orderby' => 'menu_order',
'order' => 'ASC',
'posts_per_page' => 2,
'paged'=> $paged
);
$loop = new WP_Query($args);
while($loop->have_posts()) : $loop->the_post(); ?>
<li>
<figure class="sketch-thumb">
<?php
if(get_field('sketch')) {
$sketch = get_field('sketch');
$large_image = wp_get_attachment_image_src( $sketch, 'full' );
$thumbnail = wp_get_attachment_image_src( $sketch, 'large' );
$attachment = get_post( get_field('sketch') );
$alt = get_post_meta($attachment->ID, '_wp_attachment_image_alt', true);
}
?>
<a href="<?php echo $large_image[0]; ?>" data-id="<?php the_ID(); ?>" class="reveal" >
<img src="<?php echo $thumbnail[0]; ?>" alt="<?php echo $alt; ?>" />
</a>
<figcaption>
</figcaption>
</figure>
</li>
<?php endwhile; ?>
</ul>
<nav>
<?php
// Bring $wp_query into the scope of the function
global $wp_query;
// Backup the original property value
$backup_page_total = $wp_query->max_num_pages;
// Copy the custom query property to the $wp_query object
$wp_query->max_num_pages = $loop->max_num_pages;
?>
<!-- now show the paging links -->
<div class="alignleft"><?php next_posts_link('Next Entries'); ?></div>
<div class="alignright"><?php previous_posts_link('Previous Entries'); ?></div>
<?php
// Finally restore the $wp_query property to it's original value
$wp_query->max_num_pages = $backup_page_total;
?>
</nav>
</section>
</div> <!-- End Content -->
<?php
// Register Custom Post Taxonomy
public function create_work_taxonomies() {
register_taxonomy(
'tn_cstm_sketchbook_plugin',
'tn_cstm_sketchbook',
array(
'labels' => array(
'name' => 'Sketchbook Categories',
'add_new_item' => 'Add New Sketchbook Category',
'new_item_name' => "New Sketchbook Category"
),
'show_ui' => true,
'show_in_nav_menus' => true,
'show_admin_column' => true, //Show custom taxonomy in admin columns
'show_tagcloud' => false,
'hierarchical' => true,
'args' => array( 'orderby' => 'term_order' ),
'rewrite' => array('slug' => 'sketchbook-categories', 'with_front' => false )
)
);
}
// Register Custom Post Type
public function create_sketchbook_work() {
register_post_type( 'tn_cstm_sketchbook',
array(
'labels' => array(
'name' => 'Sketchbook',
'singular_name' => 'Sketchbook Page',
'add_new' => 'Add New Sketchbook Page',
'add_new_item' => 'Add New Sketchbook Page',
'edit' => 'Edit Sketchbook Page',
'edit_item' => 'Edit Sketchbook Page',
'new_item' => 'New Sketchbook Page',
'view' => 'View Sketchbook Page',
'view_item' => 'View Sketchbook Pages',
'search_items' => 'Search Sketchbook Pages',
'not_found' => 'No Sketchbook Pages found',
'not_found_in_trash' => 'No Sketchbook Pages Found in Trash',
'parent' => 'Parent Sketchbook Page'
),
'public' => true,
'show_in_menu' => true,
'menu_position' => 29,
'taxonomies' => array( '' ),
'menu_icon' => plugins_url( 'images/sketchbook-icon.png', __FILE__ ),
'publicly_queryable' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'sketchbook', 'with_front' => false ),
'has_archive' => true,
'hierarchical' => false,
'supports' => array( 'title', 'page-attributes' )
)
);
}
?>
pre_get_posts
action if you want to modify parameters of the archive main query, likeposts_per_page
.