Je souhaite que mon single- {slug} .php effectue une requête sur une liste de publications de différents types de publications personnalisées et utilise la pagination. La pagination apparaît, mais malheureusement, cliquer sur la pagination ne permet pas d'accéder à cette page et reste toujours à la page 1. Utilisation de WP-navi, btw.
Exemple: chargez la liste des publications de single-sports.php dans single-movies.php
Tout conseil ou aide serait apprécié.
Voici mon single- {slug} .php:
<?php
$args = array(
'post_type' => 'crew',
'paged' => ( get_query_var('paged') ? get_query_var('paged') : 1),
);
while (have_posts()) : the_post();
/* Do whatever you want to do for every page... */
?>
<div class="project_item">
<div class="dotted">
<hr />
</div>
<div class="project_thumb"><a href="<?php echo get_permalink(); ?>"><img src="" /></a></div>
<div class="project_entry"><h4><a href="<?php echo get_permalink(); ?>"></a></h4>
<a href="<?php echo get_permalink(); ?>" class="readmore">Read more..</a> </div>
</div>
<?php
endwhile;
?>
<nav>
<?php wp_pagenavi(array('query'=>$post_query)); ?>
</nav>
<?php
wp_reset_query(); // Restore global post data
?>
Voici mon functions.php:
$labels = array(
'name' => _x('Crew', 'post type general name'),
'singular_name' => _x('A crew', 'post type singular name'),
'add_new' => _x('Add A New Crew', 'crew'),
'add_new_item' => __('Add A New Creww'),
'edit_item' => __('Edit Crew'),
'new_item' => __('New Crew'),
'view_item' => __('View Crew'),
'search_items' => __('Search Cre'),
'not_found' => __('Crew Not Found'),
'not_found_in_trash' => __('Not found in trash'),
'parent_item_colon' => ''
);
$args = array(
'labels' => $labels,
'menu_position' => 6,
'public' => true,
'supports' => array('title', 'editor', 'thumbnail'),
'capability_type' => 'post',
'hierarchical' => true,
'has_archive' => true,
);
register_post_type('crew',$args);
$args = array(
'label' => 'Author Catefory',
'public' => true,
'show_ui' => true,
'hierarchical' => true
);
register_taxonomy('crew_tax','crew',$args);
Vous avez oublié de lancer une nouvelle requête.
Et si vous n'utilisez pas post sur votre requête personnalisée, vous obtiendrez la requête principale actuelle, dans votre cas, c'est votre requête.
$args = array(
'post_type' => 'crew',
'posts_per_page' => 10
);
$your_custom_query = new WP_Query( $args ); // is that you forgot
// The Loop
if ( $your_custom_query->have_posts() ) :
while ( $your_custom_query->have_posts() ) : $your_custom_query->the_post();
// Do Stuff
endwhile;
endif;
je ne sais pas ce qui est wp_pagenavi ()
utilisez paginate_links ()
$big = 999999999; // need an unlikely integer
$pagination_args = array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $your_custom_query->max_num_pages,
'type' => 'plain',
'prev_text' => 'Prev',
'next_text' => 'Next'
);
echo( paginate_links( $pagination_args ) );
Et terminer par une réinitialisation
wp_reset_postdata();