wordpress:在休息之前强制记录到顶部

wordpress: force record to top before the rest

我们有一个 wordpress 站点,我们希望在自定义 post 类型的档案页面上,始终强制某个 post 到顶部。

我们正在 functions.php 中使用 'pre_get_posts' 来编辑 sql。

直接在MySQL中我们可以使用: ... 按情况排序 WHEN ID = 7075 THEN 0 ELSE 1 END

但是我们无法获得从 functions.php 调用的 'order by' 子句 (我们将 sql 语句转储到页面以查看其处理方式)

$query->set( 'orderby', 'CASE WHEN WHEN = 7075 THEN 0 ELSE 1 END ' ); (这会更改为“...ORDER BY wp_posts.ID DESC”)

$query->set( 'orderby', ' (ID = 7075) ' ); $query->set( 'order', 'DESC' ); (这会被忽略,默认使用 '... ORDER BY wp_posts.post_date DESC ')

$query->set('orderby',array('CASE WHEN wp_posts.ID = 7075 THEN 1 ELSE 2 END'=>'ASC')); (这个完全没有 order by 子句)

以前有人设法做到这一点吗? 我们不想为页面编写自定义 sql。 任何帮助表示赞赏:)

V

我只做两个查询,一个只输出你想要的 post 在顶部,另一个输出所有 post,除了顶部的那个。