我有一个功能来添加标签的帖子ID,但现在我想删除所有当前标签的ID在添加我的新标签之前?WordPress的 - 删除所有标签的帖子ID
有没有人知道内置函数或wordpress查询来做到这一点?
-Hudson
我有一个功能来添加标签的帖子ID,但现在我想删除所有当前标签的ID在添加我的新标签之前?WordPress的 - 删除所有标签的帖子ID
有没有人知道内置函数或wordpress查询来做到这一点?
-Hudson
如果你可以直接访问数据库(PhpMyAdmin),最快的方法是SQL请求。
看在食品中database schema:
DELETE FROM wp_term_relationships
WHERE wp_term_relationships.object_id = 'yourPostId'
AND wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
AND wp_term_taxonomy.taxonomy = 'post_tag';
警告:明显,直接修改数据库是很危险的。小心这样做。
我发现一个,那就是我有我的添加标签脚本,但我没有阅读或理解删除该资源中的所有标签功能。 – atwellpub 2010-07-28 19:02:29
我拼凑在一起。它的纯数据库工作,因为我相信没有快速的功能来通过ID删除标签,(但我仍然不是100%确定的)。
//define array of tags
$tags = array("new tag","new tag 2");
//define post ID
$val = 254;
//delete tags associated to post id
$query = "SELECT * FROM ".$table_prefix."term_relationships tr JOIN ".$table_prefix."term_taxonomy tt ON tr.term_taxonomy_id=tt.term_taxonomy_id WHERE tr.object_id='$val' AND tt.taxonomy='post_tag'";
$result = mysql_query($query);
if (!$result){echo $query; echo mysql_error();}
while ($arr = mysql_fetch_array($result))
{
$tid = $arr['term_taxonomy_id'];
$query2 = "DELETE FROM ".$table_prefix."term_relationships WHERE term_taxonomy_id='$tid'";
$result2 = mysql_query($query2);
if (!$result2){echo $query2; echo mysql_error();}
}
//add tags to post id
wp_add_post_tags($val,$tags);
是的,有...看看我更新的答案。 – 2010-07-28 19:30:56
我相信这也可能会删除类别关联。 – atwellpub 2010-07-28 19:23:42
是的。为了只删除标签,必须精简这个代码(由wp_term_taxonomy的一个条件,但由于我没有数据库,我不能说现在是什么条件:/) – 2010-07-28 19:40:43
我查看了一个WP数据库并编辑了我的回应。新的SQL请求只会删除帖子标签。 – 2010-07-28 19:46:48