Php 将post术语单独插入数据库

Php 将post术语单独插入数据库,php,wordpress,term,Php,Wordpress,Term,我试图将标签作为术语添加到我的视频中,问题是如果一个视频有更多的标签,它们存储在一个变量中,并作为一个组传递给DB,我需要的是每个标签分别插入DB 现在是这样的: 例如: $tags = #tag1 #tag2 #tag3 wp_insert_term( $tags, 'post_tag'); 在数据库中,它看起来像 term_id name slug 1

我试图将标签作为术语添加到我的视频中,问题是如果一个视频有更多的标签,它们存储在一个变量中,并作为一个组传递给DB,我需要的是每个标签分别插入DB

现在是这样的: 例如:

          $tags = #tag1 #tag2 #tag3
          wp_insert_term( $tags, 'post_tag'); 
在数据库中,它看起来像

          term_id           name              slug
             1         #tag1 #tag2 #tag3  tag1-tag2-tag3
我需要它像这样

          term_id           name              slug
             1              #tag1             tag1
             2              #tag2             tag2
             3              #tag3             tag3
试试这个:

$tags = "#tag1 #tag2 #tag3";
$tagsArray = explode(" ", $tags);
foreach($tagsArray as $tag)
{
    wp_insert_term( $tag, 'post_tag'); 
}

Wordpress不知道你的意图,所以

$tags = '#tag1 #tag2 #tag3'
实际上是一个变量。所以,换个说法,试试下面的片段

$tags = array('#tag1', '#tag2', '#tag3', '#tag4', '#tag5');
foreach($tags as $tag){
    wp_insert_term(trim($tag), 'post_tag'); // just in case, use trim() for cleaning
}


如果要使用
explode()
,请确保使用
trim()
清除每个值;或者更好的说法是确保没有空字符串。

So
explode
标记字符串。@Prashant用户为什么要构建字符串?如果他/她真的不需要它。顺便说一句,像do那样使用explode()是不够好和安全的。如果用户有如下内容,则突出图像:
$tags=“#tag1#tag2#tag3”结束您将在数据库中添加五个值。