重力形式动态填充帖子/页面类别

问题描述 投票:0回答:3

我希望能够在多个页面上使用相同的表单,并知道提交的表单来自哪个页面。由于一长串的原因,我需要根据类别来做到这一点。

我找到了向页面添加类别的代码,效果很好。

但我不知道如何让重力形式动态填充类别的字段。

我在表单上选择了“允许动态填充字段”,我已将参数名称设置为“pagecategory”

这就是我所得到的 - 它什么也没做:

//Get Page Category - For Demo Form
add_filter("gform_field_value_pagecategory", "populate_pagecategory");

function populate_pagecategory($value){
    global $post; 
    $value = get_the_category( $post->ID,'metakeyname',true);
   return $value;

}
php wordpress gravity-forms-plugin
3个回答
0
投票

get_the_category() 实际上返回分配给该帖子的所有类别的数组。下面的代码适用于我仅获取第一个类别的名称。

//Get Page Category - For Demo Form
add_filter("gform_field_value_pagecategory", "populate_pagecategory");

function populate_pagecategory($value){
    global $post; 
    $categories = get_the_category( $post->ID,'metakeyname',true);
    $value = $categories[0]->cat_name;
    return $value;
}

0
投票

我有点惊讶这种类型的需求/问题并不普遍。我必须做同样的事情,但是为了自定义分类法。如果有人来到这里需要如何做马什的答案,但使用自定义分类法,以下内容对我有用。我的自定义分类是“服务”,您可以看到它替换了 Mash 答案中的“metakeyname”。

  //Get Page Custom Taxonomy - For Gravity Forms
add_filter("gform_field_value_pagecategory", "populate_pagecategory");

function populate_pagecategory($value){
    global $post; 
    $terms = get_the_terms( $post->ID,'services',true);
    $value = $terms[0]->name;
    return $value;
}

0
投票

@杰夫·特拉维拉

我实际上需要做同样的事情,所以感谢您的代码!

我应该把它放在WP中的哪个位置,哪个文件中? 如果我的类别来自 cpt ui custom cat 怎么办?

谢谢你的灯

© www.soinside.com 2019 - 2024. All rights reserved.