根据某些条件将一些帖子排除在wp_Query中显示

时间:2018-01-28 作者:Javad Yousefi

我需要在某些情况下从wp\\U查询中显示一些帖子排除。我使用下面的代码来做这件事,代码工作正常,但我设置了posts_per_page12 根据该代码,跳过的帖子将被计数,例如,而不是12 每页的帖子都有不同的帖子编号(10,2,5,…)

while( $query->have_posts() ){ 
   $query->the_post();        

    if(condition)
    {

            //Show the post

    }
}

2 个回复
SO网友:Vlad Olaru

要使分页正常工作,您需要使用pre_get_posts action.

通过查看您的代码,我看不出其中涉及特定于帖子的信息。是$course_options 持有该职位的信息?

SO网友:Joel M

当您使用php过滤帖子时,要使分页工作起来会很棘手。例如,当您转到第2页时,查询将有一个offset和limit参数,有效地直接从sql获取从12到24的帖子。除非sql知道必须跳过前12个选项中的哪一个,否则过滤这些选项对您没有任何好处。在大多数情况下,您会希望在$wp\\u查询中使用meta\\u查询,或者使用get\\u posts()函数(两者最终都会或多或少地使用相同的代码)。元查询可以处理很多事情,但如果您的条件太复杂,那么可能就是无法通过sql复制过滤。请让我们知道条件,我可以告诉您如何编写元查询。此外,如果您没有自己编写$wp\\u查询(例如,您的页面已经为您运行了,如archive.php),那么您需要使用pre\\u get\\u posts操作将meta\\u查询添加到$wp\\u查询中。

结束

相关推荐

Should our pages be posts?

我们正在为我们的社区发布大量内容(大约每天3页)。所有正在发布的内容都是在页面中创建的。我的问题是:“页面”和“帖子”在数量上有什么区别吗?为了速度或效率,Dos WP更喜欢帖子而不是页面?谢谢