Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WordPress分类法模板分页问题_Php_Wordpress_Templates_Pagination_Taxonomy - Fatal编程技术网

Php WordPress分类法模板分页问题

Php WordPress分类法模板分页问题,php,wordpress,templates,pagination,taxonomy,Php,Wordpress,Templates,Pagination,Taxonomy,在花了几个小时讨论这个问题之后,我终于决定向社区询问我所面临的问题。这个问题本身有点有趣和奇怪 我创建了一个自定义分类法模板,当我使用默认的wordpress循环时,我面临分页问题每页中的帖子都是随机出现的 因此,假设我在分类法分页的1页面上,它会显示我2帖子,如果我进入2页面,它会显示我4帖子,然后2然后每页3帖子 我已经在functions.php文件上使用pre\u get\u posts操作将每页posts\u设置为6 我将给出下面的简要代码 模板文件 <?php get_head

在花了几个小时讨论这个问题之后,我终于决定向社区询问我所面临的问题。这个问题本身有点有趣和奇怪

我创建了一个自定义分类法模板,当我使用默认的wordpress循环时,我面临分页问题每页中的帖子都是随机出现的

因此,假设我在分类法分页的
1
页面上,它会显示我
2
帖子,如果我进入
2
页面,它会显示我
4
帖子,然后
2
然后每页
3
帖子

我已经在
functions.php
文件上使用
pre\u get\u posts
操作将每页
posts\u设置为6

我将给出下面的简要代码

模板文件

<?php get_header(); ?>
<?php
global $wp_query;
$big = 999999999; // need an unlikely integer
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
?>

<div <?php post_class('main-section page-inner-wrapper'); ?>>
    <?php get_template_part('talent_filter', 'talent_filter.php'); ?>
    <?php if ( have_posts() ) : ?>

            <?php while ( have_posts() ) : the_post(); ?>                                       

                <!-- POST HTML -->

            <?php endwhile;  ?>

            <!-- PAGINATION BEGIN -->
            <nav class="navigation pagination" role="navigation">
                <?php 
                    echo paginate_links( array(
                        'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
                        'format' => '?paged=%#%',
                        'current' => $paged,
                        'prev_text' => __( '<i class="fa fa-angle-left"></i>', 'bridge' ),
                        'next_text' => __( '<i class="fa fa-angle-right"></i>', 'bridge' ),
                        'before_page_number' => '<span class="meta-nav">' . __( '', 'bridge' ) . ' </span>',
                        'total' => $wp_query->max_num_pages
                    ) );
                ?>
            </nav>
            <!-- PAGINATION END -->

      <?php endif; ?>   
</div>
<?php get_footer(); ?>

首先,我会删除所有插件,并查看结果是否会根据您使用的主题发生变化。有可能是其他东西正在挂接“pre_get_posts”,并且正在破坏您的“posts_per_page”设置。您可以查看实际发出的“请求”。我想你可以用一些东西来看看数字是否正确。好吧,我已经检查了插件的事情。虽然我不确定主题,但我使用的是bridge主题,它是最畅销的,应该有这样的bug,但让我检查一下..如果在测试“if(have_posts())”之后将“var_dump($wp_query->request);”放在循环的前面,输出是什么。查看查询末尾的LIMIT语句,如果最后一个数字不是6,那么你的每页帖子会有问题,或者你的“我的帖子”没有按照你的想法执行。谢谢你,伙计,
LIMIT
设置为6,但是mysql查询让我发现了代码中的问题。。
function my_post_queries( $query ) {
  // do not alter the query on wp-admin pages and only alter it if it's the main query
    if (!is_admin() && $query->is_main_query()){

    // alter the query for the home and category pages 

        if( is_tax( 'talent_groups' ) ) {
            $query->set('posts_per_page', 6);
            $query->set('posts_per_archive_page', 6);
            $query->set('orderby', 'date');
        }
    }
}
add_action( 'pre_get_posts', 'my_post_queries');

// Solves Pagination Pages 404's
add_filter( 'option_posts_per_page', 'tdd_tax_filter_posts_per_page' );
function tdd_tax_filter_posts_per_page( $value ) {
return (is_tax('talent_groups')) ? 1 : $value;
}