wp-cli で記事投稿とインストール設定

2019年5月10日

WordPressをコマンドラインから管理するためのツールwp-cliをインストールして投稿記事の投稿、更新などを試してみます。

Ubuntu 18.04 で試しています。

コマンドラインからいろいろ出来てしまいますので、定期バックアップを確認して実行してください!

インストール

下記のリンクを参考に試してみました

https://make.wordpress.org/cli/handbook/installing/

pharファイルをダウンロードします。(Javaのjarファイルみたいなものとのことです。)

$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

実行権限を与えて、パスが通っているところに移動すればよいようです。

$ chmod +x wp-cli.phar
$ sudo mv wp-cli.phar /usr/local/bin/wp

wpコマンドをテスト実行してみます。

$ wp --info

このときにOS、PHPのバージョンやWP-CLI設定情報が表示されればOKです。

投稿をWP-CLIから実施

まずはwordpressのフォルダへ移動します。

$ cd /path/to/wordpress

またはwpコマンドでオプション

--path=path/to/wordpress

を使ってもよいかと思います。

・新規 投稿

新規の投稿(下書き状態)を表題 “CLI投稿テスト”、中身は空の投稿を作ってみます。

wp post create --post_title=CLI投稿テスト --post_status=draft --porcelain

投稿が成功すると投稿のIDが表示されます。ここでは106でした。

106

・投稿一覧表示

$ wp post list

コマンドを実行するとMariaDBのテーブルが返されます。IDが主キーですので、以後このIDを使って更新、削除などを実行します。

+-----+-------------------+--------------+-----------------------+-------------+
| ID  | post_title        | post_name    | post_date             | post_status |
+-----+-------------------+--------------+-----------------------+-------------+
| 106 | CLI投稿テスト     |              | 2019-05-06 12:41:38   | draft       |

先ほどのID 106の投稿のが確認できます。

・投稿詳細表示

$ wp post get 106
+-----------------------+---------------------------------------------------+
| Field                 | Value                                             |
+-----------------------+---------------------------------------------------+
| ID                    | 106                                               |
| post_author           | 0                                                 |
| post_date             | 2019-05-06 12:41:38                               |
| post_date_gmt         | 0000-00-00 00:00:00                               |
| post_content          | 					    |
| post_title            | CLI投稿テスト                                        |

・投稿の内容を更新

$ wp post update 106 --post_content="ああああああああ"

成功すると成功メッセージがでます。

Success: Updated post 106.

投稿内容の文字列を他のファイルに格納している場合は以下のコマンドで読み込ませることができます。いったんcat表示しているだけです。下書き用データのファイルを/tmp/text.txtに保存したものとします。

$ wp post update 106 --post_content="`cat
 /tmp/test.txt`"

ただ基本的にこの方法で投稿を作成するとwordpressのクラシックエディタで作成されているものと同様の投稿になりますので、画像ファイルやHTMLタグで編集したい場合は以下のようにブロックへ変換してやればOKと思います。

クラシックエディタからブロック変換