编辑:我会尽量详细解释我的问题。我在一个投资组合网站上工作。有几种自定义的帖子类型:项目、出版物、展览、讲座和幻灯片。主页由以下部分组成:
带幻灯片的滑块portfolio consisting of:<选定(由客户标记)的项目、出版物、展览和讲座以及剩余的项目、出版物、展览和讲座Now, I have problem with the portfolio section. 为了使用Desandro的无限滚动,需要对其进行分页-单击“加载更多”按钮后加载下一篇文章。前10篇文章由客户按照第二个自定义字段(从1到10)确定的特定顺序标记为“选定”(第一个自定义字段)。其余职位将按日期降序排列。
我使用wp\\u query查询自定义帖子,使用meta\\u query将这些“选定”帖子放在顶部,并按升序排序。我试图按日期对剩余的帖子进行排序,但我被卡住了。
查看我的wp\\U查询参数:
\'post_type\' => array( \'projekty\', \'publikacje\', \'wystawy\', \'wyklady\' ),
\'post_status\' => array( \'publish\' ),
\'meta_query\' => array(
\'relation\' => \'OR\',
\'home_rest\' => array(
\'key\' => \'sticky_home\',
\'compare\' => \'NOT EXISTS\'
),
\'home_sticky\' => array(
\'key\' => \'sticky_home\',
\'compare\' => \'EXISTS\'
),
\'orderby\' => array(
\'home_rest\' => \'DESC\',
\'home_sticky\' => \'ASC\',
),
\'posts_per_page\' => 10,
\'paged\' => get_query_var(\'paged\'),
因此,我实现了第一个目标(你可以在这里看到代表“选定”帖子的红色方块:
http://redesigned.pl/_sts/bxbstudio/strona-glowna-infinitemasonry/.
我想我可以做多次orderby
排序。首先,排序方式sticky_home
字段(真/假字段)以获取顶部的选定帖子;其次,按升序排序sticky_home_order
领域第三,用sticky_home
标记false
按发布日期递减。您认为可以在一个查询中获得所有这些信息吗?或者也许有另一种方法可以做到这一点?
我会感激你的帮助。
编辑:我不是一个有经验的PHP程序员。阅读了stack exchange上的各种内容后,我认为usort
可能是这样吗?连同get_posts
? 但另一方面,分页将停止。。
SO网友:jakesh_of_redesigned
在摆弄和搜索了一下之后,我终于有了:
“选定”顶部的10个帖子,下面的“剩余”帖子按日期降序排列,不幸的是,“选定”帖子按降序排列。。。以下是我的疑问:
$args = array(
\'post_type\' => array( \'projekty\', \'publikacje\', \'wystawy\', \'wyklady\' ),
\'post_status\' => array( \'publish\' ),
\'meta_query\' => array(
\'relation\' => \'OR\',
array(
\'key\' => \'sticky_home_order\',
\'type\' => \'numeric\',
\'compare\' => \'NOT EXISTS\'
),
array(
\'key\' => \'sticky_home_order\',
\'type\' => \'numeric\',
\'compare\' => \'EXISTS\'
),
),
\'orderby\' => array(
\'meta_value\' => \'DESC\',
\'meta_value_num\' => \'ASC\',
\'date\' => \'DESC\'
),
\'posts_per_page\' => 20,
\'paged\' => get_query_var(\'paged\')
);