Wordpress 如何禁用呈现重力表单的特定ID的HTML代码?

Wordpress 如何禁用呈现重力表单的特定ID的HTML代码?,wordpress,gravityforms,Wordpress,Gravityforms,我需要在我的Gravity表单中禁用特定id的HTML。 我已经找到了这样的东西: add_filter( 'gform_field_content', function ( $field_content, $field, $value ) { if ( $field->id == 2 ) { if ( $field->is_entry_detail_edit() ) { $value = esc_attr( $value );

我需要在我的
Gravity表单中禁用特定id的
HTML

我已经找到了这样的东西:

add_filter( 'gform_field_content', function ( $field_content, $field, $value ) {
    if ( $field->id == 2 ) {
        if ( $field->is_entry_detail_edit() ) {
            $value = esc_attr( $value );
            $name  = 'input_' . esc_attr( $field->id );

            return "<input type='hidden' name='{$name}' value='{$value}'>";
        } elseif ( $field->is_entry_detail() ) {
            return '';
        }
    }

    return $field_content;
}, 10, 3 );
add_filter('gform_field_content',函数($field_content,$field,$value){
如果($field->id==2){
如果($field->is\u entry\u detail\u edit()){
$value=esc_attr($value);
$name='input\'.esc\'attr($field->id);
返回“”;
}elseif($field->is\u entry\u detail()){
返回“”;
}
}
返回$field\u内容;
}, 10, 3 );
这一个将隐藏我的id,但是仍然呈现
HTML

我想我需要使用
filter=>gform\u pre\u render


有人给我一些建议吗

您给出的代码阻止在entry detail部分输出html。不是主窗体输出

试着这样做:

add_filter( 'gform_field_content', function ( $field_content, $field, $value ) {
    if ( $field->id == 2 ) {
        // Show the field in entry_detail and form editor
        if ( GFCommon::is_entry_detail_view() || GFCommon::is_form_editor()) {
            return $field_content;
        }

        // Otherwise don't show the field
        return '';
    }

    // Show all other fields
    return $field_content;
}, 10, 3 );
如果要删除容器列表项标记,请尝试以下操作:

add_filter( 'gform_field_container', function ( $field_container, $field, $form, $css_class, $style, $field_content ) {
    if ( GFCommon::is_entry_detail_view() || GFCommon::is_form_editor()) {
        return $field_container;
    }
    if ( $field->id == 2 ) {
        return '';
    }
    return $field_container;
}, 10, 3);

您给出的代码阻止在entry detail部分输出html。不是主窗体输出

试着这样做:

add_filter( 'gform_field_content', function ( $field_content, $field, $value ) {
    if ( $field->id == 2 ) {
        // Show the field in entry_detail and form editor
        if ( GFCommon::is_entry_detail_view() || GFCommon::is_form_editor()) {
            return $field_content;
        }

        // Otherwise don't show the field
        return '';
    }

    // Show all other fields
    return $field_content;
}, 10, 3 );
如果要删除容器列表项标记,请尝试以下操作:

add_filter( 'gform_field_container', function ( $field_container, $field, $form, $css_class, $style, $field_content ) {
    if ( GFCommon::is_entry_detail_view() || GFCommon::is_form_editor()) {
        return $field_container;
    }
    if ( $field->id == 2 ) {
        return '';
    }
    return $field_container;
}, 10, 3);

像这样的东西应该可以做到:

function remove_field_by_id($objForm)
{        
    foreach ($objForm['fields'] as $iIndex => $objField) {
        // if its the one you want to remove ...
        if ($objField->id == 3) {
            // replace that field object with an empty array
            array_splice($objForm['fields'], $iIndex, 1, array());
        }
    }
    return $objForm;
}
add_filter('gform_pre_render', 'remove_field_by_id');

像这样的东西应该可以做到:

function remove_field_by_id($objForm)
{        
    foreach ($objForm['fields'] as $iIndex => $objField) {
        // if its the one you want to remove ...
        if ($objField->id == 3) {
            // replace that field object with an empty array
            array_splice($objForm['fields'], $iIndex, 1, array());
        }
    }
    return $objForm;
}
add_filter('gform_pre_render', 'remove_field_by_id');

您能更清楚地说明“禁用呈现HTML”的含义吗?如果不希望表单输出,是否可以将其从页面中删除?例如,我在表单中定义了id为13的输入文本,但我希望它不显示,也不呈现其HTML。这就是我所需要的。正如我所说,我使用了gform_field_内容,但它只隐藏元素。HTML仍然是呈现的。您能更清楚地理解“禁用呈现HTML”的含义吗?如果不希望表单输出,是否可以将其从页面中删除?例如,我在表单中定义了id为13的输入文本,但我希望它不显示,也不呈现其HTML。这就是我所需要的。正如我所说,我使用了gform_field_内容,但它只隐藏元素。HTML仍然呈现感谢您的回答。但仍呈现一些html:
  • 。我将重力表单与自定义Post类型连接。当我没有在帖子中输入一些信息时,我想完全跳过这个id。可能这就是我所能做的,我已经测试过了,它不会呈现HTML。请注意,我在发布此答案后对其进行了编辑。您确定使用的代码正确吗?如果你正在复制粘贴,也不要忘记在我的代码中修改id。是的,我使用了这个:添加过滤器('gform_field_content',函数($field_content,$field,$value){if($field->id==1){//在条目_detail和表单编辑器if(GFCommon::is_entry_detail_view()| GFCommon::is_表单_编辑器()){return$field_content;}//否则不显示字段return“”;}//显示所有其他字段return$field_content;},10,3);您无法使用此方法删除
  • 包装标签…此方法仅删除实际字段的html。请参阅我的编辑以执行此操作。谢谢您的回答。但仍呈现一些html:
  • 。我将重力表单与自定义帖子类型相连接。当我没有在帖子中输入一些输入时,我想完全跳过这个id来呈现。可能这就是我所能做的。我已经测试了这个,它不会呈现HTML。请注意,我在发布后编辑了这个答案。你确定使用了正确的代码吗?也不要忘记alt是的,我使用了这个:添加过滤器('gform_field_content',函数($field_content,$field,$value){if($field->id==1){//在条目_detail和表单编辑器if(GFCommon::is_entry_detail_view()| GFCommon::is_表单_editor())中显示字段{return$field_content;}//否则不显示字段return“”;}//显示所有其他字段return$field_content;},10,3);无法使用此方法删除
  • 包装标签…此方法仅删除实际字段的html。请参阅我的编辑以执行此操作。