duanlu6268 2014-10-30 19:59
浏览 22
已采纳

为帖子分配多个类别ID

All, The following code adds categories to a post within Wordpress:

$bmt_post = array(
          'post_title'    => wp_strip_all_tags( $title ),
          'post_content'  => wp_strip_all_tags( $information ),
          'post_status'   => 'publish',
          'post_category' => array( 2,3 )
        );

$post_id = wp_insert_post( $bmt_post );

I am trying to assign post categories when I create a new post from a PHP front end webpage. I have the following on a form:

echo '<input type="checkbox" name="category_name[]" value="'.$category->term_id.'"> '.$category->name.'<br>';

Then I try and process it like this:

if($_POST['category_name'] != ''){
            $cat_ids = '';
            foreach($_POST['category_name'] as $cat_name){
                 $cat_ids .= $cat_name.',';
            }
            $cat_ids = rtrim($cat_ids, ",");
            echo 'The ids are: '.$cat_ids;
        }else{
            $cat_ids = 0;
        }

When I echo out the $cat_ids variable I have 2,3 so it should work but in this example it only adds the first category id to the post instead of doing both. How can I make this work correctly?

  • 写回答

1条回答 默认 最新

  • dongping2023 2014-10-30 20:05
    关注

    You need to create an array instead of a string with comma separated ids:

    foreach($_POST['category_name'] as $cat_name){
        if ( is_int( $cat_name ) ) {
            $cat_ids[] = $cat_name;
        }
    }
    var_dump( $cat_ids );
    

    Reason: Converting your string to int only returns the first value: http://codepad.org/y76D3krI

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥30 请帮我解决一下下面六个代码
  • ¥15 关于资源监视工具的e-care有知道的嘛
  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?