基于form_id的Wordpress表单短代码

时间:2018-04-19 21:04:23

标签: php wordpress

我正在练习WordPress。我创建了一个简单的表单插件,它通过form_id从数据库中获取表单字段。 我正在尝试将form_id添加到短代码中,因此如果我输入带有表单ID的短代码,我将获得基于form_id的表单。

我有这个功能来获取表单字段,我正在循环。结果很好所以如果我手动更改form_id,我将得到相同form_id的结果。

获取表单的代码

function my_html_form() {
    $results = my_form_get_form_id();

    foreach ($results as $result) {
        $form_id = $result->id;

        $fields = my_form_get_fields($form_id);
    }

    //in here I am looping through $fields and getting all fields
}

并且在这里我将表单添加到短代码中我知道错误添加像这样的form_id但我不知道如何。

添加短代码

function my_form_shortcode() {
    ob_start();
    my_html_form();
    return ob_get_clean();
}


$results = my_form_get_form_id();
foreach ($results as $result) {
    $form_id = $result->id;

    $fields = my_form_get_fields($form_id);
    foreach ($fields as $field) {
        $fields_form_id = $field->form_id;
        add_shortcode( "my_form_shortcode:$fields_form_id", 'my_html_form()' );
    }


}

那么如何获得此my_form_shortcode:$fields_form_id的值。现在我只是获取所有form_id,但表单只返回带有最后一个id的表单。所以如果输入[my_form_shortcode:form_id]。我将根据form_id获取表单。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以为短代码功能添加属性并使用do_shortcode('[my_form_shortcode id = 1]')调用它;

void reverseArray(int a[],int size)
{
  if (size > 1)
  {    
    //swapping
    int temp = a[0]; 
    a[0]= a[size-1]; 
    a[size-1]= temp;

    reverseArray(a+1, size-2);
  }
}

你可以删除my_html_form中的id,因为它调用了一个函数(认为它会生成html)

<强>被修改 我更改上面的代码来修复一些错误

作为参考检查链接 Shortcode Atts