web-dev-qa-db-de.com

WP-PageNavi zeigt nur die erste Seite an

Ich verwende das WP-PageNavi-Plugin, das ich in meine benutzerdefinierte tpl-Seite integriert habe. Es gibt einen Woocommerce-Shortcode, der alle Produkte enthält, die ich anzeigen möchte, aber ich sehe immer nur die gleichen und nur eine Seite. Ich sehe nicht, was ich falsch mache. Der Code lautet:

  <?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(); ?>
1
Nancy

Im Fall von wp_query können Sie den Shortcode nicht auf diese Weise verwenden

<?php wp_pagenavi(); ?>

Sie müssen eine Variable (in der Sie wp_query speichern) in einem Array innerhalb des Shortcodes verwenden. Verwenden Sie stattdessen den folgenden Shortcode. Ersetzen Sie den obigen Shortcode durch den unteren.

<?php wp_pagenavi( array( 'query' => $query_slider ) ); ?>

UPDATE

Auf diese Weise verwende ich wp_query, um die Produktliste ohne Shortcode anzuzeigen, die Sie zum Anzeigen von Produkten verwendet haben.

<?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>&nbsp;(<?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();?>
1
Rishabh

Die Verwendung von query_posts wird immer die Hoffnung auf eine erfolgreiche Paginierung zunichte machen. Sie sollten den pre_get_posts-Filter verwenden, um die Hauptabfrage anzupassen, wenn Sie sich für die Paginierung interessieren.

Es ist tatsächlich schwer zu erreichen, wenn Sie in einem Kontext einer Seitenvorlage alles benötigen, was Sie tun, und Sie sollten Ihre eigene URL-Struktur besser verwenden, indem Sie entsprechende Umschreiberegeln hinzufügen.

0
Mark Kaplun