posting twice from an array?

时间:2013-02-14 作者:Lars van Peij

我使用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”都有一个值。

我认为阵列可能有问题。我是阵列新手。有什么建议吗?谢谢你的帮助

1 个回复
最合适的回答,由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个项。

结束