wordpress - $query->set orderby 类型未按预期工作

标签 wordpress hook

我尝试使用 pre_get_posts Hook - track 帖子类型结果 administration 帖子类型结果按帖子类型确定搜索结果的优先级。 我不确定是否可以使用 $query->set( 'orderby', 'type' ) 来完成。在 WP_Query 中使用相同的参数是可行的,但我想避免这种情况。

这是完整的功能:

function tcb_pre_get_posts( $query ) {
    if ( is_admin() || ! $query->is_main_query() )
       return;

    if ( is_search() ) {
       $query->set( 'post_type', array( 'track', 'administration' )  );
       $query->set( 'posts_per_page', 15 );
       $query->set( 'orderby', 'type' );
       // orderby 'post_type' did not work as well
   }
}

add_action( 'pre_get_posts', 'tcb_pre_get_posts', 1 );

虽然 track 写在 post_type 数组中的 administration 之前,但在结果中我看到 administration 位于 跟踪

最佳答案

您似乎希望更改自定义帖子类型的显示顺序,因为您只需指定 ASCDESC 使用 $query->set('order','ASC');:

function tcb_pre_get_posts( $query ) {
    if ( is_admin() || ! $query->is_main_query() )
       return;

    if ( is_search() ) {
       $query->set( 'post_type', array( 'track', 'administration' )  );
       $query->set( 'posts_per_page', 15 );
       $query->set( 'orderby', 'type' );
       $query->set( 'order', 'ASC' ); // or DESC
   }
}

add_action( 'pre_get_posts', 'tcb_pre_get_posts', 1 );

关于wordpress - $query->set orderby 类型未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45563784/

相关文章:

php - Wordpress 模板中框的 CSS 网格

php - 如何按名称从类别的子类别中获取帖子?

php - 无法创建具有空登录名的用户

c++ - 使用头文件中定义的方法调用 SetWindowsHookEx

hook - Liferay文档库: execute method on document download

c# - 在 C# 中监听另一个窗口调整大小事件

wordpress - WooCommerce 需要注册才能购买

wordpress - WPBakery 视频背景自动播放不起作用

Git 提交 Hook - 如何使用 commit-msg Hook 检查消息中的字符串?

Python Alt Hook