我目前正在创建我的第一个插件;我远道而来;虽然我偶然发现了一个问题。
我不知道在wordpress中实际创建字段的正确方法是什么-如果有任何验证,是否需要添加安全性,如nonce等。
我当前的问题:我注意到一个奇怪的行为,当我向表单中注入一个可重复的表单字段并提交表单时,我看不到注入的数据,即使它们在DOM中是相同的。-虽然当我在文档中添加更多内容时(不插入表单字段),我会得到与表单一起提交的数据。
Form
<form id=\'new-form\' action="" method="post">
<tr>
<td><input type="text" value="AUTO_GENERATED" disabled></td>
<td>
<select name="new-placement" id="new-placement">
<option value="val">slug</option>
</select>
</td>
<td><input type="text" id="new-slug" name="new-slug"></td>
<td>
<ol id="list-container-new">
<li>
<select name="new-items[]">
<option value="val">name</option>
</select>
<button class="remove-item-new">Remove</button>
</li>
</ol>
<button id="add-item-to-items-new">Add</button>
</td>
<td>
<?php wp_nonce_field( "items_save", "items_save") ?>
<button id="newsubmit" name="newsubmit" type="submit">Create</button>
</td>
</tr>
</form>
jQuery to add
jQuery(\'#add-item-to-list-new\').on(\'click\', function(e) {
e.preventDefault();
let html = \'<li>\';
html += \'<select name="new-items[]">\';
itemsVariable.forEach((element, index, arr) => {
html += \'<option value="\' + element.id + \'">\' + element.name + \'</option>\';
});
html += \'</select>\';
html += \'<button class="remove-item-new">Remove</button>\';
html += \'</li>\'
jQuery(\'#list-container-new\').append(html);
})
以上未与表单数据一起提交;虽然如果我在页面中手动添加它,它确实会添加。-有没有我跳过的步骤?比如告诉wordpress我正在添加一个新字段?