我正在练习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获取表单。
任何帮助将不胜感激。
答案 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