我正在尝试让我的主页(home.php)显示来自自定义帖子类型的几个帖子缩略图,并对所有帖子进行分页 .
第一页的工作正常,但是当我尝试进入第二页时,它不起作用 .
如果我将以下代码添加到我的functions.php
function homepage_custom( $query )
{
if ($query->is_home() && $query->is_main_query())
{
$query->set('post_type', array( 'custom' ));
}
}
add_action( 'pre_get_posts', 'homepage_custom' );
我没有帖子 .
在没有检查主查询的情况下再次尝试
function homepage_custom( $query )
{
if ($query->is_home())
{
$query->set('post_type', array( 'custom' ));
}
}
add_action( 'pre_get_posts', 'homepage_custom' );
我得到了第一篇帖子(我在每页上显示16条) . 当我转到第二页时,URL显示“localhost / page / 2”,但我看到相同的16个帖子 . 将永久链接重置为默认值会给出相同的结果 .
如果我尝试直接从home.php查询:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts(array("post_type" => "custom", "paged" => $paged));
我看到前16个,我在第2页得到404 . 同样,重置永久链接会产生相同的结果 .
-
我有17个这种自定义类型的帖子 .
-
每页显示16个我看到相同的帖子有2个页面,每个页面显示5个,我看到相同的帖子有4个页面 .
echo get_query_var( 'paged' );
每次输出0 .
2 回答
尝试使用此代码:
猜猜我找到了 .
在同一页面中,我必须显示两种不同的自定义帖子类型 . 一个帖子类型在主要区域显示,每页16个 . 另一个用于填充侧栏中的列表 .
使用这段代码我改变了主查询
但是当我在home.php中使用以下内容时
主查询以某种方式被忽略,这就是为什么我对主查询的检查没有任何结果 . 没有主要的查询检查,我总是在搜索我的自定义帖子类型,它适用于前16个帖子,然后来自侧栏的查询以某种方式打破它,它失去了显示哪些帖子的参考,我结束无论页面如何都一样 .
使用wp_reset_query()方法,从sidebar.php中删除此查询,或使用循环遍历局部变量的WP_query实例解决问题 .