如何运行从筛选器函数调用的WordPress循环?

时间:2013-10-17 作者:Jodi Warren

因此,我尝试使用基于一些post数据的复杂数组填充高级自定义字段选择框。我一直试图通过自定义查询和循环返回的帖子来实现这一点。

不幸的是,环路似乎返回了diddly蹲。在我的测试安装中,应该返回10个帖子。然而var_dump 在下面的语句中将返回NULL 10次。背景get_post($post) 循环内部将为每个实例返回第一个结果。

奇怪的是,var_dumping公司$hw_selectbox_query 将返回看似正确的对象,因此实际循环本身没有定义$post 对象我可以运行foreach 循环遍历返回的查询,但这似乎不是正确的方法。

FWIW,当放置在空白的前端页面上时,该函数可以完美运行。

function populate_selectbox_field( $field ){

    $field[\'choices\'] = array();

    $hw_selectbox_args = array(
        post_type => \'custom_post_type\',
        orderby => \'title\',
        order => \'ASC\',
        posts_per_page => -1
    );

    $hw_selectbox_query = new WP_Query($hw_selectbox_args);

    if ( $hw_selectbox_query->have_posts() ) : while ( $hw_selectbox_query->have_posts() ) : $hw_selectbox_query->the_post();

        var_dump($post);

        $field[\'choices\'][$post->ID] = $post->post_title

        // Do more complicated stuff in real life

    endwhile; endif;

    return $field;
}

add_filter(\'acf/load_field/name=destination_node\', \'populate_destination_node_field\');

1 个回复
最合适的回答,由SO网友:random_user_name 整理而成

使用自定义查询时,为了访问$post 信息,您需要参考post 自定义WP\\U查询作为类变量。

因为您将查询构造为:
$hw_selectbox_query = new WP_Query($hw_selectbox_args);

然后您可以访问post 变量$hw_selectbox_query, 像这样:

var_dump($hw_selectbox_query->post);
这将为您提供构建$field 大堆

结束

相关推荐

Temp URL Redirect Loop

我试图通过hostgator使用临时URL(IP/~用户名/域)建立我的网站,但我遇到了一些问题。我已进入数据库,并用新的临时URL替换了旧域的所有实例。问题是我遇到了重定向循环。我在某个地方读到了试图重置永久链接的内容,但我没有访问管理面板的权限。我不知道还有什么可以修复重定向循环。我甚至换了我的。使用新的htaccess,仍然可以获得重定向循环。这是我当前的wp配置文件:define(\"WP_SITEURL\",\"http://IP/~username/example.com\"); de

如何运行从筛选器函数调用的WordPress循环? - 小码农CODE - 行之有效找到问题解决它

如何运行从筛选器函数调用的WordPress循环?

时间:2013-10-17 作者:Jodi Warren

因此,我尝试使用基于一些post数据的复杂数组填充高级自定义字段选择框。我一直试图通过自定义查询和循环返回的帖子来实现这一点。

不幸的是,环路似乎返回了diddly蹲。在我的测试安装中,应该返回10个帖子。然而var_dump 在下面的语句中将返回NULL 10次。背景get_post($post) 循环内部将为每个实例返回第一个结果。

奇怪的是,var_dumping公司$hw_selectbox_query 将返回看似正确的对象,因此实际循环本身没有定义$post 对象我可以运行foreach 循环遍历返回的查询,但这似乎不是正确的方法。

FWIW,当放置在空白的前端页面上时,该函数可以完美运行。

function populate_selectbox_field( $field ){

    $field[\'choices\'] = array();

    $hw_selectbox_args = array(
        post_type => \'custom_post_type\',
        orderby => \'title\',
        order => \'ASC\',
        posts_per_page => -1
    );

    $hw_selectbox_query = new WP_Query($hw_selectbox_args);

    if ( $hw_selectbox_query->have_posts() ) : while ( $hw_selectbox_query->have_posts() ) : $hw_selectbox_query->the_post();

        var_dump($post);

        $field[\'choices\'][$post->ID] = $post->post_title

        // Do more complicated stuff in real life

    endwhile; endif;

    return $field;
}

add_filter(\'acf/load_field/name=destination_node\', \'populate_destination_node_field\');

1 个回复
最合适的回答,由SO网友:random_user_name 整理而成

使用自定义查询时,为了访问$post 信息,您需要参考post 自定义WP\\U查询作为类变量。

因为您将查询构造为:
$hw_selectbox_query = new WP_Query($hw_selectbox_args);

然后您可以访问post 变量$hw_selectbox_query, 像这样:

var_dump($hw_selectbox_query->post);
这将为您提供构建$field 大堆

相关推荐

Generating a perfect loop

所以我现在已经在这里坐了大约三个小时了,我不得不让这件事过去几个小时来好好睡一觉,同时我希望能得到你的帮助。我已经能够使用$wpdb->get\\u results从数据库中获取内容,并且能够将它们放入一个数组中,但是我想使用这些信息在循环中运行一个新的查询,以获取列表中的多个项目。我使用了本指南的一个变体https://stackoverflow.com/questions/45848249/woocommerce-get-all-orders-for-a-product 获取订单ID。现在,我已