自定义帖子类型的WP_QUERY函数

时间:2015-04-24 作者:Justice Is Cheap

我有一个随机主页横幅图像的CPT(所以我们可以测试不同的图像和行动语言)。我有一个帖子类型的自定义字段,它接受每个横幅的特定ID,以便我们可以跟踪它。然后我需要把ID转换成重力形式。

这就是我面临的问题所在(并不是重力形式的特殊性)。我在我的函数中运行一个查询,但它在Gforms中为我提供了随机ID,而不是填写表单时横幅的实际ID(恰好在模式窗口中)。我使用ACF来创建自定义字段,如果这有什么不同的话(我的函数中有ACF特定的代码)。

以下是我的功能:

add_filter(\'gform_field_value_Banner_ID\', \'populate_Banner_ID\');

function populate_Banner_ID($value){
    global $wp_query;
    $args = array (
        \'post_type\' => \'home_banners\'
    );
    $home_banners = new WP_Query( $args );
    while ( $home_banners->have_posts() ) : $home_banners->the_post();
    $banner_id = get_field(\'home_banner_mail_id\', $post->ID);
    endwhile;
    return $banner_id;
}
我试过了global $post; 我也是,但那没用。就像我说的,它抓取自定义字段并用它填充重力表单,但它似乎抓取了ID的随机版本。

我在一个没有以模式加载表单的页面上使用了以下内容,它可以按预期工作(该页面上的ID也是动态的)。我还在模态中使用的特定表单中尝试了这种方法,但它根本无法提取ID。

function populate_ppc_mail_id($value){
    global $post;

    $mail_id = get_field(\'ppc_mail_id\', $post->ID);

    return $mail_id;
}
add\\u filter(\'gform\\u field\\u value\\u mail\\u id\',\'populate\\u ppc\\u mail\\u id\');

有人能指出我在查询中所做的错误,它没有提取正确的ID吗?我已经将id加载为css id,以测试它是否正常工作,并且该部分正在按预期工作--只是这个特定的查询,它似乎不想合作。

提前感谢!

1 个回复
SO网友:Rarst

这个$post 函数中的变量不指向任何内容。您正在声明全局$wp_query (您没有实际使用),但不是全局的$post.

结束