从 WP-CLI 添加 tags/categories 到 WordPress post

Add tags/categories to a WordPress post from WP-CLI

我有一个 bash 脚本 post 到 WordPress。它做得很好,但我想让它向 post 添加标签。它使用 WP-CLI 并且似乎没有办法从中向 post 添加标签。

澄清一下,我说的是 post 标签,而不是 HTML 标签。 此外,此 bash 脚本正在 运行 托管 WordPress 站点的同一台服务器上。

我也找到了blogpost.py,不过好像也没有标签功能。

根据我的阅读,我认为我可以使用 XML-RPC 以某种方式完成我想要的,但我对此几乎一无所知。

这是我一直在使用的 WP-CLI 命令。哪个有效,但不添加标签。

wp post create --post_title="This is the title" --post_content="This is the post" --post_status=future --porcelain

无奈之下,我尝试添加--post_tags="these are tags",但是没有用。这几天我一直在寻找答案。

我只想能够从 cronjob 制作一个带有标签和类别的 WordPress post。我熟悉 bash,所以最好,但如果您知道使用其他语言的任何解决方案,也欢迎。

谢谢。

如您所知,post 标签是一个名为 post_tag.

的 WordPress taxonomy(如类别)

您需要一组 wp post, specifically wp post term 的子命令来编辑它们。

您还需要 WP-CLI v0.18.0 或更高版本——旧版本没有。

在所有这些示例中,1 表示 post ID。

向任何现有标签添加一个或多个标签

用空格(不是逗号)分隔多个标签。

wp post term add 1 post_tag foo
Success: Added term.

"Set" 一个或多个标签

这将替换(覆盖)post 的任何现有标签。
您将使用它而不是 remove 后跟 add (需要少一个命令。)

用空格分隔多个标签。

wp post term set 1 post_tag bar baz
Success: Set terms.

列出当前标签

wp post term list 1 post_tag

+---------+------+------+----------+
| term_id | name | slug | taxonomy |
+---------+------+------+----------+
| 7       | bar  | bar  | post_tag |
| 5       | baz  | baz  | post_tag |
+---------+------+------+----------+

删除标签

wp post term remove 1316 post_tag baz

您也可以将其用于类别或任何其他分类法。

现在可以更简单地完成此操作。在今天最新版本的 wp-cli (2.4) 中,tags_input 是 wp post create 和 update 的一个选项。因此,您可以使用

wp post create file --tags_input="Tag1,Tag2,Tag3.."

wp post update (postID) --tags_input="Tag1,Tag2,Tag3.."