重力表格动态填充帖子/页面类别

时间:2017-07-18 21:01:49

标签: php wordpress gravity-forms-plugin

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

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

但我无法弄清楚如何让Gravity Forms动态填充该类别的字段。

我已选择"允许字段动态填充"在表单上,​​我已将参数名称设置为" 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;

}

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

我有点惊讶这种需求/问题并不普遍。我必须做同样的事情,但是要使用自定义分类法。如果有人在这里需要如何解决Mash的问题,但是使用自定义分类法,则以下内容对我有用。我的自定义分类法是“服务”,您可以在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;
}