如何以编程方式更改POST标记

时间:2012-03-15 作者:Alexander Bird

是否有可以添加/删除帖子标签的php函数?如果不是,我该怎么做?

我在找这样的东西:

add_tag($post_id, \'tag-name\');
remove_tag($post_id, \'tag-name\');

1 个回复
最合适的回答,由SO网友:Boone Gorges 整理而成

您在这里寻找的关键功能是wp_set_post_tags().

要将标签“awesome”添加到post 98,

wp_set_post_tags( 98, array( \'awesome\' ), true );
请注意true 参数表示此标记将添加到现有的post标记中。如果忽略此值,则默认为false, 现有的post标签将被传递的新标签覆盖。

要删除标记,请首先使用https://codex.wordpress.org/Function_Reference/wp_get_post_tags:

$tags = wp_get_post_tags( 98 );
然后,列出要保留的标签列表(不包括要“删除”的标签),并用新列表替换现有的post标签:

$tags_to_delete = array( \'radical\', \'bodacious\' );
$tags_to_keep = array();
foreach ( $tags as $t ) {
    if ( !in_array( $t->name, $tags_to_delete ) ) {
        $tags_to_keep[] = $t->name;
    }
}

wp_set_post_tags( 98, $tags_to_keep, false );

结束

相关推荐

Automaticly add slug to posts

我的永久链接使用了us/news/%postname%/结构。这对常规帖子非常有用。然而,我有几种不同的自定义帖子类型,我不想在它们的slug中包含美国/新闻部分。我怎么能两全其美呢?