Wordpress WP_Query删除ORDER BY wp_posts.menu_order

时间:2017-12-28 01:58:02

标签: wordpress

我想按照我要求的顺序收到帖子。

幸运的是,有一个查询参数 - > orderby =' post_name__in'。

但是,我按其他顺序收到帖子。

我看到了查询的请求。

下面

ORDER BY wp_posts.menu_order

我发现ORDER BY wp_posts.menu_order是个问题。

如果我删除它然后在phpmyadmin上查询,它运行良好。

我按照我想要的顺序收到帖子。

那么,如何使用hook&amp;删除<a [attr.disabled]="someCondition ? true: null"></a> 。过滤器或其他一些wordpressful方式?

2 个答案:

答案 0 :(得分:2)

我找到了答案!

由于帖子类型订单插件而添加了wp_posts.menu_order

在这个插件中,

add_filter('posts_orderby', array($this, 'posts_orderby'), 99, 2);
~
~
~
//check for ignore_custom_sort
if (isset($query->query_vars['ignore_custom_sort']) && $query>query_vars['ignore_custom_sort'] === TRUE)
    return $orderBy;
if(trim($orderBy) == '')
  $orderBy = "{$wpdb->posts}.menu_order " . $order;
else
  $orderBy = "{$wpdb->posts}.menu_order". $order .", " . $orderBy;
~
~
return $orderBy;

因此,我将$args['ignore_custom_sort'] = true添加到我的查询参数中。

这很有效!

答案 1 :(得分:0)

另一个不直接更改插件的解决方案是删除帖子类型顺序。我发现另一个叫做“直观的自定义邮政订单”,它不会影响我们不想订购的订单,而且更完整。