Php WordPress分类法模板分页问题
在花了几个小时讨论这个问题之后,我终于决定向社区询问我所面临的问题。这个问题本身有点有趣和奇怪 我创建了一个自定义分类法模板,当我使用默认的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
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;
}