Wordpress Multiple Post Type Loop在每个页面上显示相同的结果


Wordpress Multiple Post Type Loop shows same results on every page

所以我使用WordPress的下划线主题。我使用了来自2014主题的带有分页的代码。

if ( ! function_exists( 'public_notices_paging_nav' ) ) :
function public_notices_paging_nav() {
global $wp_query, $wp_rewrite;
// Don't print empty markup if there's only one page.
if ( $wp_query->max_num_pages < 2 ) {
    echo ("<h4 class='one-page-results'>End of Results</h4>");
    return;
}
$paged        = get_query_var( 'paged' ) ? intval( get_query_var( 'paged' ) ) : 1;
$pagenum_link = html_entity_decode( get_pagenum_link() );
$query_args   = array();
$url_parts    = explode( '?', $pagenum_link );
if ( isset( $url_parts[1] ) ) {
    wp_parse_str( $url_parts[1], $query_args );
}
$pagenum_link = remove_query_arg( array_keys( $query_args ), $pagenum_link );
$pagenum_link = trailingslashit( $pagenum_link ) . '%_%';
$format  = $wp_rewrite->using_index_permalinks() && ! strpos( $pagenum_link, 'index.php' ) ? 'index.php/' : '';
$format .= $wp_rewrite->using_permalinks() ? user_trailingslashit( $wp_rewrite->pagination_base . '/%#%', 'paged' ) : '?paged=%#%';
// Set up paginated links.
$links = paginate_links( array(
    'base'     => $pagenum_link,
    'format'   => $format,
    'total'    => $wp_query->max_num_pages,
    'current'  => $paged,
    'mid_size' => 1,
    'add_args' => array_map( 'urlencode', $query_args ),
    'prev_text' => __( '&larr; Previous', 'public_notices' ),
    'next_text' => __( 'Next &rarr;', 'public_notices' ),
    'type'      => 'list',
) );
if ( $links ) :
?>
<nav class="navigation paging-navigation" role="navigation">
    <h1 class="screen-reader-text"><?php _e( 'Posts navigation', 'public_notices' ); ?></h1>
    <?php echo $links; ?>
</nav><!-- .navigation -->
<?php
endif;
}endif;

当我只有一个帖子类型时,这工作得很好,但现在我做了一个循环,显示两个帖子类型,它工作了。但是在每个页面上都是同一组帖子。

<?php
      $postLoop = array(
        'post_type' => array('public_notice_post', 'post'),
            'orderby' => 'date',
            'order' => 'DESC'
    );
    $query = new WP_Query( $postLoop );
                 if ($query->have_posts()) :
                     while ($query->have_posts()) : $query->the_post(); 
                     get_template_part( 'template-parts/content', get_post_format() );
                endwhile; 
                public_notices_paging_nav();
                endif;
     wp_reset_query(); ?>  

什么都可以。我试过很多次了

也许你得到了一个没有"wp_reset_query()"的循环,这可能会导致其他循环上的一些错误。请检查所有的循环,以确保没有没有reset查询。

你在哪一种页面上编写了这个循环?这是自定义模板还是其他?

对不起,我是法语。

要修复每个页面上重复帖子的原始问题,我所要做的就是像这样编写代码。然而,我仍然有一个问题的页数,但这将在其他地方解决。

        <?php  
        $page = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
        $ppp = get_option( 'posts_per_page' );      
        if ( $page == 1 )
            $offset = 6;
        else
            $offset = 6 + ( $page - 1 ) * $ppp;
    ?>
    <?php
      $postLoop = array(
            'post_type' => array('public_notice_post', 'post'),
            'orderby' => 'date',
            'order' => 'DESC',
            'paged' => $paged,
            'posts_per_page'=> $ppp,
            'offset' => $offset
    );
            $wp_query = new WP_Query( $postLoop );
                 if ($wp_query->have_posts()) :
                     while ($wp_query->have_posts()) : the_post(); 
                     get_template_part( 'template-parts/content', get_post_format() );
                endwhile; 
                public_notices_paging_nav();
                endif;

     wp_reset_query(); ?>