Php Wordpress“按顺序”不工作

Php Wordpress“按顺序”不工作,php,wordpress,Php,Wordpress,首先,我花了大约3个小时阅读和尝试不同的解决方案,所以我想让你们知道我并没有直接问这个问题 我接管了一个网站,该网站为教员设置了自定义字段->字段组 原代码为: query_posts(array( 'posts_per_page' => 15, 'post_type' => 'faculty', 'paged' => $paged, 'orderby' => 'menu_order', 'order' => 'ASC'

首先,我花了大约3个小时阅读和尝试不同的解决方案,所以我想让你们知道我并没有直接问这个问题

我接管了一个网站,该网站为教员设置了自定义字段->字段组

原代码为:

  query_posts(array(
    'posts_per_page' => 15,
    'post_type' => 'faculty',
    'paged' => $paged,
    'orderby' => 'menu_order',
    'order' => 'ASC'
  ))
我把它换成了

$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$args = array(
    'post_type' => 'faculty',
    'orderby' => 'meta_value_num',
    'meta_key' => 'sort_field',
    'order' => 'ASC',
    'posts_per_page' => 100,
    'paged' => $paged
);
$the_query = new WP_Query( $args );
并尝试了一系列的变化,但没有任何运气。明确地说,我的目标是将排序添加到教员字段组,我的方法是添加一个名为“sort_field”的字段,在该字段中他们可以键入一个数字,然后此sql查询将以正确的顺序返回结果

这是var_dump$query->request的结果

"SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) WHERE 1=1 AND ( wp_postmeta.meta_key = 'sort_field' ) AND wp_posts.post_type = 'faculty' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'acf-disabled' OR wp_posts.post_status = 'private') GROUP BY wp_posts.ID ORDER BY wp_postmeta.meta_value+0 ASC LIMIT 0, 100"
编辑:

我试着用Jordi的链接重做我的方法

$posts = get_posts(array(
    'post_type'         => 'faculty',
    'posts_per_page'    => -1,
    'meta_key'          => 'sort_field',
    'orderby'           => 'meta_value_num',
    'order'             => 'ASC'
));
print_r($posts);

我没有得到任何结果,因为它的ACF列需要在查询中重新命名,还需要指定它的类型。这有点奇怪,但事实就是这样。为此,您使用了一些对所有结果都有效的“单调”元查询条件

$quoteRulesAgs = [
    'post_type' => 'custompost',
    'post_status' => 'publish',
    'posts_per_page' => 200,
    "meta_query" => array(
        "rule_order_custom" => array(
            "key" => "rule_order",
            "compare" => ">=",
            "value" => -100000,
            'type' => 'numeric'
        )
    ),
    'orderby' => [
        'rule_order_custom' => 'ASC'
    ]
];

Order by和“rule\u Order”不起作用,但在我输入了一些无意义的条件后,使用“rule\u Order\u custom”时,rule\u Order列始终大于0,还必须指定类型,否则它会将其排序为字符串。

看起来您的站点使用了ACF。你检查过了吗?当你说不工作时,你能详细说明一下吗?你有错误吗?它是否正确获得帖子,但它们不是您期望的帖子?如果不知道不工作的背景,真的很难提供帮助…谢谢你的提问。上述查询不返回任何结果。在我尝试过的其他变体中,它根本没有排序。谢谢Jordi Nebot的链接。我通读了这篇文章,似乎我在做我最初的问题中所说的事情。如果您想让我做任何更改,请告知。