Php 将post术语单独插入数据库
我试图将标签作为术语添加到我的视频中,问题是如果一个视频有更多的标签,它们存储在一个变量中,并作为一个组传递给DB,我需要的是每个标签分别插入DB 现在是这样的: 例如: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
$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()
清除每个值;或者更好的说法是确保没有空字符串。Soexplode
标记字符串。@Prashant用户为什么要构建字符串?如果他/她真的不需要它。顺便说一句,像do那样使用explode()是不够好和安全的。如果用户有如下内容,则突出图像:$tags=“#tag1#tag2#tag3”代码>结束您将在数据库中添加五个值。