У меня есть сценарий bash, который публикует сообщения в WordPress. Он делает это нормально, но я хочу, чтобы он добавлял теги к сообщениям. Он использует WP-CLI, и, похоже, нет способа добавлять из него теги к сообщению.

Чтобы уточнить, я говорю о тегах сообщений, а не о тегах 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", но это не сработало. Я искал ответ уже несколько дней.

Я просто хочу иметь возможность создавать пост WordPress с тегами и категорией из cronjob. Я знаком с bash, так что это было бы лучше всего, но если вы знаете какие-либо решения, использующие другие языки, это тоже приветствуется.

Спасибо.

5
Ray Walz 17 Фев 2015 в 04:04

2 ответа

Лучший ответ

Как вы, возможно, знаете, теги сообщений - это таксономия (например, категории) WordPress под названием post_tag.

Вам понадобится набор подкоманд wp post, в частности wp post term, чтобы изменить их.

Вам также понадобится WP-CLI v0.18.0 или выше - в более старых версиях его нет.

Во всех этих примерах 1 обозначает идентификатор сообщения.

Добавьте один или несколько тегов к любым существующим тегам

Разделите несколько тегов пробелами (не запятыми).

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

"Установить" один или несколько тегов

Это заменит (перезапишет) все существующие теги для сообщения.
Вы бы использовали это вместо 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

Вы также можете использовать это для категорий или любой другой таксономии.

6
William Turrell 28 Апр 2015 в 17:52

Теперь это можно сделать проще. В последней сегодняшней версии wp-cli (2.4) tags_input является возможность создания и обновления поста wp. Поэтому вы можете использовать

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

Или

wp post update (postID) --tags_input="Tag1,Tag2,Tag3.."
0
physicophilic 29 Ноя 2020 в 17:27