第二页显示与我的第一页完全相同的帖子(不包括第一个帖子)

时间:2013-09-23 作者:user2803938

网站链接:http://manofmany.com &;http://manofmany.com/page/2/

我看到我的第二页显示了与我的第一页完全相同的帖子(减去第一篇/最新的帖子)。所有其他第3、4、5页等均按正常/预期执行。我改变了编码以排除类别,所以我尝试复制原始编码来修复它,但没有成功。以下是循环的开始:

<?php if( is_front_page() && !is_paged() ) : ?>
<div style="border-bottom: #c4c4c4 1px solid; margin-bottom: 20px; padding-bottom:20px;">
<?php dynamic_content_gallery(); ?></div><?php endif;?>

<?php global $query_string; query_posts( $query_string . \'&cat=-1470\'); ?>
<?php if (have_posts()) : $i = 1; while ( have_posts() && $i <= $loop ) : the_post(); ?>
我也看到了这一点,但无法完全发挥作用:Wordpress second page displays the same content as my first

我发现的大多数其他错误和解决方案都与显示与第一个帖子相同的所有页面(3、4、5)有关。我只遇到了第二页的问题。

非常感谢详细的说明,因为我绝不是处理php的专家。

1 个回复
SO网友:Eugenious

解决方案1看起来您的模板可能发生了以下情况:http://codex.wordpress.org/Pagination#Adding_the_.22paged.22_parameter_to_a_query

基本上,它的意思是,第二页没有意识到它是第二页,因为;第paged页;缺少参数。

我刚刚直接从wordpress文档中复制了一些内容,其中说您应该这样做:

<?php
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
query_posts(\'posts_per_page=3&paged=\' . $paged); 
?>
因此,在代码中,您可以尝试替换此行:

<?php global $query_string; query_posts( $query_string . \'&cat=-1470\'); ?>
具有以下功能:

<?php
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
global $query_string;
query_posts($query_string . \'&cat=-1470&posts_per_page=3&paged=\' . $paged); 
?>
您应该将“3”替换为您想要的每页帖子数。

解决方案2第一个解决方案可能不是实现您想要的目标的最佳方式,但它应该能够完成任务。为了获得更好的方法,您可以研究使用pre\\u get\\u posts过滤器来排除某个类别,这不应该产生破坏分页的副作用。以下是对此的参考:http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts#Exclude_categories_on_your_main_page

代码非常简单;您应该能够简单地将其放入函数中。php在您的主题中,您完成了:

function exclude_category( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( \'cat\', \'-1,-1347\' );
    }
}
add_action( \'pre_get_posts\', \'exclude_category\' );
所以,你有两种可能的解决方案。我先试试第二个。。。

结束

相关推荐

如何使wp-login.php不可访问

我已成功使wp admin无法访问(重定向到404页),以下是我的函数文件中的代码:add_filter(\'site_url\', \'wpadmin_filter\', 10, 3); function wpadmin_filter( $url, $path, $orig_scheme ) { $old = array( \"/(wp-admin)/\"); $admin_dir = WP_ADMIN_DIR; $new = array