Hello,
J'ai un soucis concernant ma fonction de pagination. Elle marche très bien avec mes fichiers archives.php, taxonomy.php, mais ne fonctionne pas sur mon modèle de page personnalisé.
Voici le code de mon modèle de page spécifique :
<?php
/*
Template Name: Page Spécifique
*/
?>
<?php get_header(); ?>
<div class="wrap">
<!-- Start Content-left-->
<div id="content-left">
<?php if(have_posts()): while(have_posts()) : the_post(); ?>
<?php the_content();?>
<?php endwhile; endif; wp_reset_query(); ?>
<?php
$theme = new WP_query(array(
'post_type' => 'theme',
'taxonomy' => 'cms',
'term' => 'wordpress',
'posts_per_page' => 4,
));
if($theme->have_posts()) : while ($theme->have_posts()) : $theme->the_post(); ?>
<div class="posthome">
<strong><?php the_title(); ?></strong>
<a href="<?php the_permalink(); ?>"><?php echo the_post_thumbnail('thumb'); ?></a>
<?php $terms = get_the_terms($post->ID, 'cms');
// loop through each term and perform your check
foreach ( $terms as $term ) {
if($term->name == 'Wordpress') {
echo '<div class="home-icone"><img src="img/wordpress.png" alt="Thème Wordpress"/></div>';
}
if ($term->name == 'Joomla') {
echo '<div class="home-icone"><img src="img/joomla.png" alt="Thème Joomla"/></div>';
}
}
?>
<div class="home-info"><span class="rouge" style="font-weight:bold"><?php echo get_post_meta($post->ID, 'prix', true) ?></span> | <?php echo get_the_term_list( $post->ID, 'company', 'Par : ', ', ', '' ); ?></div>
<a href="<?php the_permalink(); ?>" class="home-button">Détails</a>
<a href="<?php echo get_post_meta($post->ID, 'demo', true) ?>" class="home-button">Démo</a>
</div><!--End PostHome-->
<?php endwhile; endif; wp_reset_query(); ?>
<div class="cb"></div>
<!-- Start Pagination -->
<?php theme_pagination(); ?>
</div><!-- end div content-left -->
<!-- Start Sidebar -->
<?php get_sidebar('blog'); ?>
<!-- end Sidebar -->
<div class="cb"></div>
</div><!-- end div Wrap -->
<?php get_footer(); ?>
Et celui de ma fonction, dans le fichier fonction.php
//----------------------------- PAGINATION ---------------------------------------//
function theme_pagination()
{
global $wp_query, $wp_rewrite;
$wp_query->query_vars'paged'] > 1 ? $current = $wp_query->query_vars'paged'] : $current = 1;
$pagination = array(
'base' => @add_query_arg('page','%#%'),
'format' => '',
'total' => $wp_query->max_num_pages,
'current' => $current,
'show_all' => false,
'end_size' => 1,
'mid_size' => 2,
'type' => 'list',
'next_text' => ' ',
'prev_text' => ' '
);
if( $wp_rewrite->using_permalinks() )
$pagination'base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' );
if( !empty($wp_query->query_vars's']) )
$pagination'add_args'] = array( 's' => get_query_var( 's' ) );
echo paginate_links( $pagination );
}
J'avais déjà rencontré ce problème pour un autre site.
Je ne comprends pas trop pourquoi. j'ai fait quelques essais, mais je ne trouve pas.
Merci par avance pour votre aide
Dans ta requête WP_Query (Query et non pas query) , tu ne précises pas à quelle page on se trouve !
Ajoute : 'paged' => get_query_var('paged') ? get_query_var('paged') : 1;