我使用jquery动态地创建表单字段的迭代,但它们的第一个变量名为extrakosten[],另一个变量名为vergoeding[]。
php:
$postTitle = \'\'; // save post title
if(isset( $_POST[\'submit\'] )){ // if submit button is present
for ($i=0; $i < count($_POST[\'vergoeding\']); $i++) {
$new_post = array(
\'post_title\' => $postTitle,
\'post_content\' => \' \', // can not be empty
\'post_status\' => \'publish\',
\'post_type\' => \'landschapselement\' // custom post type
);
$pid = wp_insert_post($new_post); // insert the post
wp_set_post_terms( $pid, $_POST[\'extrakosten\'],\'kostenpost\',false);
wp_set_post_terms( $pid, $_POST[\'vergoeding\'],\'vergoedingaanleg\',false);
} // close for loop
}
现在发生的事情是,当我单击提交按钮时,在自定义帖子类型“landschapsakket”下生成了一篇新帖子。vergoeding和kostenpost下的值发布在自定义分类法“vergoedingaanleg”和“kostenpost”中。
它现在所做的是创建一个帖子,其中包含“kostenpost”和“vergoeding”两个值。我试图实现的是创建两个帖子,每个帖子对“kostenpost”和“vergoeding”都有一个值。
我认为阵列可能有问题。我是阵列新手。有什么建议吗?谢谢你的帮助
最合适的回答,由SO网友:birgire 整理而成
您可以尝试以下方式:
$postTitle = \'\'; // save post title
if(isset( $_POST[\'submit\'])){ // if submit button is present
$vergoeding=$_POST[\'vergoeding\'];
$extrakosten=$_POST[\'extrakosten\'];
for ($i=0; $i < count($vergoeding); $i++) {
$new_post = array(
\'post_title\' => $postTitle,
\'post_content\' => \' \', // can not be empty
\'post_status\' => \'publish\',
\'post_type\' => \'landschapselement\' // custom post type
);
$pid = wp_insert_post($new_post); // insert the post
if(isset($extrakosten[$i]) && $pid > 0){
wp_set_post_terms( $pid, $extrakosten[$i],\'kostenpost\',false);
}
if(isset($vergoeding[$i]) && $pid > 0){
wp_set_post_terms( $pid, $vergoeding[$i],\'vergoedingaanleg\',false);
}
} // close for loop
}
看起来像是在每个
wp_set_post_terms()
. 在上面的代码示例中,我尝试添加一个字符串。
ps:不清楚您为什么使用count($vergoeding)
如果只需要两个插入的帖子?看起来这个数组应该包含2个项。