Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

Im trying to get a load more function to work with a custom post type on an archive page.

I use this plugin and customized it a bit so it works with a custom post type. http://www.problogdesign.com/wordpress/load-next-wordpress-posts-with-ajax/

Currently pagination doesn't work so that the plugin can't load more items. It says "inbeeld/page/2/ 404 (Not Found)". So my question is why does the pagination do not work?

This is the register_post_type code.

$inbeeld_args = array(
    'label' => __('In Beeld'),
    'singular_label' => __('In Beeld'),
    'public' => true,
    'query_var' => true,
    'show_ui' => true,
    'capability_type' => 'post',
    'hierarchical' => false,
    'rewrite' => array("slug" => "inbeeld", 'with_front'=> false, "pages" => true  ),
    'has_archive' => true,
    'supports' => array('title', 'editor', 'taxonomy', 'thumbnail'),
    'taxonomies' => array('teams'),
    'add_new' => _x('Nieuw', 'In Beeld'),
    'add_new_item' => __('Voeg Nieuw In Beeld Toe'),
    'edit_item' => __('Bewerk In Beeld'),
    'new_item' => __('Nieuw In Beeld'),
    'view_item' => __('Bekijk In Beeld'),
    'search_items' => __('Doorzoek In Beeld'),
    'not_found' =>  __('No In Beeld found'),
    'not_found_in_trash' => __('No In Beeld found in Trash'),
    'pages' => true
);
register_post_type('inbeeld',$inbeeld_args);

And this is my loop. I removed some code that nothing has to do with my question.

<?php

$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$query = new WP_query(array('post_type' => 'inbeeld','paged' => $paged, 'posts_per_page' => 2  ));
while ($query->have_posts()) : $query->the_post();
?>
  <li>
    <?php the_title(); ?>
  </li>     
<?php endwhile; wp_reset_query(); ?>
share|improve this question
add comment

1 Answer

up vote 1 down vote accepted

The problem with pagination was fixed by removing the wp_query loop and using the normal loop.

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php endwhile; endif; ?>

The problem with the "load more" plugin was fixed by using the right classname to load the items. And change this in the php of the plugin.

$paged = ( get_query_var('paged') > 1 ) ? get_query_var('paged') : 1;   
$args = array('post_type' => 'inbeeld', 'paged' => get_query_var('paged') );    
$query = new WP_Query($args);
$max = $query->max_num_pages;
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.