重力表单为出现在不同位置的同一表单自定义字段标记

时间:2016-10-06 作者:yuvilio

我知道我可以使用gform_field_input 滤器有a吗

add_filter( \'gform_field_input\', \'my_gf_inputs\', 10, 5 );
function my_gf_inputs( $input, $field, $value, $lead_id, $form_id ) {
    if ($field->formId == 1){ //the form i\'m customizing

        switch( $field->id ){
            case 1: //email field in that form
            $input = <<<INPUT
<div class="col-sm-3 col-md-4">
    <div class="form-group">
        <input name="input_1" id="input_1_1" type="text" value="" placeholder="name" class="form-control" tabindex="1" aria-invalid="false">
    </div>
</div>
INPUT;
    }
  }
}
有没有办法为同一表单生成不同的标记?也就是说,假设它同时出现在页面的页眉和页脚中,但设计不同。有没有办法使用shortcode 表明这一点?例如,通过添加一个任意键/值参数,如“position”,如下所示?

[gravityform id="1" title="false" description="false" position="header"]

[gravityform id="1" title="false" description="false" position="footer"]

然后使用position不同标记的筛选器中的s值?

1 个回复
SO网友:T.Todua

您有三种方法:

1) 找出正确的钩子(此时我可以判断它是否存在)

2) 只使用CSS(例如,只需使用#header .form-group{} (或由其另一个母公司div代替#header )

3) 每次执行该函数时,使用全局变量进行计数。i、 e,参见示例:

add_filter( ........... );
function ..........{
    $GLOBALS[\'my_form_counter\'] = empty($GLOBALS[\'my_form_counter\']) ? 1 : $GLOBALS[\'my_form_counter\'] + 1;
    if($GLOBALS[\'my_form_counter\'] == 1){
       //it\'s the first time of the form EXECUTION, so you know where it is happening.. Code what you want
    }

    if($GLOBALS[\'my_form_counter\'] == 2){
       //it\'s the second time of the form EXECUTION, so do now what you want
    }
}

相关推荐

SHORTCODE_ATTS()中的$ATTS参数是什么?

这个WordPress developers reference page for shortcode_atts() 国家:$atts(array)(必选)用户在shortcode标记中定义的属性。但我不理解这个定义。例如,在WP Frontend Profile 插件:$atts = shortcode_atts( [ \'role\' => \'\', ], $atts ); 据我所知,shortcode\