wordpress - WordPress 查询组按 post_types
问题描述
是否可以按帖子类型对 WP_Query 进行排序或分组?
我正在制作一个搜索结果页面,我想要的是示例:
页数:
链接 1
链接 2
- 链接 3
帖子
- 链接 1
- 链接 2
- 链接 3
自定义帖子类型:
- 链接 1
- 链接 2
- 链接 3
解决方案
add_filter( 'posts_orderby', 'filter__posts_orderby', 10, 2 );
function filter__posts_orderby( $orderby, $wp_query ) {
if( ! $wp_query->is_admin && $wp_query->is_search ) :
global $wpdb;
$orderby =
"
CASE WHEN {$wpdb->prefix}posts.post_type = 'page' THEN '1'
WHEN {$wpdb->prefix}posts.post_type = 'post' THEN '2'
WHEN {$wpdb->prefix}posts.post_type = 'your_custom_post_type' THEN '3'
WHEN {$wpdb->prefix}posts.post_type = 'your_custom_post_type' THEN '4'
ELSE {$wpdb->prefix}posts.post_type END ASC,
{$wpdb->prefix}posts.post_title ASC";
endif;
return $orderby;
}
可能这会帮助你!
下面是在搜索结果中添加自定义帖子类型的代码:
add_action( 'pre_get_posts','action__pre_get_posts' );
function action__pre_get_posts($wp_query){
if ( !is_admin() && is_main_query() && is_search() ){
$wp_query->set( 'post_type'=>array('post','your_custom_post_type','page' ) );
}
}
也将此代码放在您的活动主题的functions.php文件中。
推荐阅读
- javascript - Type .. 的参数不能分配给 Typescript 和单元测试中的 .. 类型的参数
- php - 将字符串转换为 JSON 并在 php 中另存为 .json 文件
- java - 将新元素插入表时执行任务
- c# - 将组合框项目显示到图表中
- angular - Angular ngx-translate getTranslation 问题
- prolog - PROLOG:推理过程,为什么返回false
- keras - 在 Keras 中使用 ImageDataGenerator 时如何定义依赖于输入的自定义成本函数?
- javascript - 使用 List.js 对存储在 ID 上的数据进行排序
- mockito - 当mockito 时thenReturn on spy 不工作?
- postgresql - RDS Postgres 逻辑复制到 EC2