J'utilise le plugin WP-PageNavi, que j'ai intégré à ma page tpl personnalisée. Il existe un shortcode woocommerce qui contient tous les produits que je souhaite afficher, mais je ne vois jamais que les mêmes et un seul résultat de page. Je ne vois pas ce que je fais mal. Le code est:
<?php
/* Template Name: shine*/
?>
<?php get_header(); ?>
<div class="wrapper clearfix">
<?php $args = array(
'post_type' => 'page',
'orderby' => 'title',
'order' => 'ASC',
'posts_per_page' => 5,
'paged' => get_query_var('paged'),
); ?>
<?php query_posts($args); ?>
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php endwhile; ?>
<?php endif; ?>
<h2>SHINE kolekcija</h2>
<?php
echo do_shortcode( '[product_attribute attribute="kolekcije" filter="shine"]' );
?>
<div class="naviButs">
<?php wp_pagenavi(); ?>
</div>
</div>
<?php get_footer(); ?>
Dans le cas de wp_query
, vous ne pouvez pas utiliser un shortcode de cette façon
<?php wp_pagenavi(); ?>
Vous devez utiliser une variable (dans laquelle vous stockez wp_query) dans un tableau à l'intérieur de shortcode. Utilisez plutôt un shortcode comme celui-ci. Remplacez le shortcode ci-dessous par un.
<?php wp_pagenavi( array( 'query' => $query_slider ) ); ?>
METTRE À JOUR
C’est une façon pour laquelle j’utilise wp_query
pour afficher la liste des produits sans shortcode que vous avez utilisé pour afficher les produits.
<?php
/*
Template Name: shine
*/
get_header(); ?>
<?php
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$args = array('post_type' => 'product',
'orderby' => 'title',
'order' => 'ASC',
'posts_per_page' => 5,
'paged' => $paged);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
?>
<li style="list-style:none;">
<h3><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title();?></a> (<?php echo get_the_date('d.m.Y');?>)</h3>
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">
<?php
/***** Thumbnail ******/
the_post_thumbnail(
array(120, 90),
array(
'class' => 'enter-class-here', //Specify class for product's image if any
'alt' => 'Preview unavailable', //Specify alternate text for products, in case if there is no products image
'title' => 'Enter-title-here' //Specify title if any
)
);
/******* Thumbnail Ends ********/
?> </a>
</li><hr />
<?php
endwhile; ?>
<?php wp_pagenavi( array( 'query' => $loop ) ); ?>
<?php get_footer();?>
Utiliser query_posts
supprimera toujours tout espoir de réussite de la pagination. Utilisez le filtre pre_get_posts
pour ajuster la requête principale si vous vous souciez de la pagination.
Ce sera difficile à réaliser si vous avez besoin de faire ce que vous faites dans le contexte d'un modèle de page et vous devriez utiliser votre propre structure d'URL en ajoutant des règles de réécriture appropriées.