前回はWordPressのサイトをmixhostのレンタルサーバーに引っ越してみました。WordPressの引っ越しはプラグインを使うことにより思ったより簡単にすることができました。
今回はWordPressをコマンドラインから管理するための「WP-CLI」というツールを導入したいと思います。
WP-CLIとは
WP-CLIとはWordPressをコマンドラインから管理するためのコマンドです。公式サイトは下記になります。うれしいことに公式サイトは日本語に対応していていました。
WP-CLIを使ってできることは多岐にわたります。WP-CLIのコマンドについては下記にまとまっています。
私がWP-CLIを使って便利だと思ったのが、コマンドラインを使って記事をポストできると言うことです。
シェルスクリプトと組み合わせたりすれば、自動的に記事を更新することもできたりします。
WP-CLIを使う前の準備
WP-CLIはコマンドラインのツールなので、mixhostのレンタルサーバーにSSH接続して作業する必要があります。
SSH接続方法については下記の記事で紹介しているので、参考にしてください。
WP-CLIのインストール
以降の作業はレンタルサーバーにSSHで接続して行います
WP-CLI自体はPHPのスクリプトのようなので、管理者権限がなくてもインストールが可能です。そのためレンタルサーバーでもインストールできるはずです。
WP-CLIのインストール方法は公式サイトに記載されているので、これに従って試してみます。
まずは「wp-cli.phar」というファイルを取得(ダウンロード)します。
$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
ダウンロードに成功したらこのファイルを正常に実行できることを確認します。
$ php wp-cli.phar --info OS: Linux 3.10.0-962.3.2.lve1.5.26.7.el7.x86_64 #1 SMP Wed Oct 2 07:53:12 EDT 2019 x86_64 Shell: /bin/bash PHP binary: /opt/cpanel/ea-php72/root/usr/bin/php.cagefs PHP version: 7.2.30 php.ini used: /opt/cpanel/ea-php72/root/etc/php.ini WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli WP-CLI vendor dir: phar://wp-cli.phar/vendor WP_CLI phar path: /home/foo WP-CLI packages dir: WP-CLI global config: WP-CLI project config: WP-CLI version: 2.4.0
次により簡単に「wp」だけで実行できるようにします。
$ mkdir -p bin $ chmod +x wp-cli.phar $ mv wp-cli.phar bin/wp
ここでもう一度動作確認をしてみます。
$ wp --info OS: Linux 3.10.0-962.3.2.lve1.5.26.7.el7.x86_64 #1 SMP Wed Oct 2 07:53:12 EDT 2019 x86_64 Shell: /bin/bash PHP binary: /opt/cpanel/ea-php72/root/usr/bin/php.cagefs PHP version: 7.2.30 php.ini used: /opt/cpanel/ea-php72/root/etc/php.ini WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli WP-CLI vendor dir: phar://wp-cli.phar/vendor WP_CLI phar path: /home/foo WP-CLI packages dir: WP-CLI global config: WP-CLI project config: WP-CLI version: 2.4.0
次にWP-CLIでタブ補完をできるように設定ファイルを取得します。
$ curl -O https://raw.githubusercontent.com/wp-cli/wp-cli/v2.4.0/utils/wp-completion.bash $ mv wp-completion.bash etc/
そして「.bash_profile」の末尾でこのファイルを読み込むようにします。
$ echo "source ~/etc/wp-completion.bash" >> .bash_profile
エディタでファイルを変更したい場合は、mixhostでは「vi」か「nano」が利用できます(emacsは利用できません)。
あとは.bash_profileを再読込してこの設定を有効にします。
$ source .bash_profile
この設定が有効になれば「wp 」と入力してからTABキーを押すと利用可能なコマンドが表示(補完)されます。
$ wp <タブキー> cache db import package search-replace term cap embed language plugin server theme cli eval maintenance-mode post shell transient comment eval-file media post-type sidebar user config export menu rewrite site widget core help network role super-admin cron i18n option scaffold taxonomy
WP-CLIを使って見る
mixhostのWordPressクイックスタートでWordPressをセットアップすると、ホームディレクトリのpublic_htmlディレクトリにWordPressがインストールされています。
インストールされているWordPressには「Hello world」というタイトルの記事があるはずです。この記事の内容をWP-CLIを使って確認してみましょう。
この記事はID=1なので、ID=1の内容をwp postコマンドでチェックしてみます。
$ wp post get --path=$HOME/public_html 1 +-----------------------+----------------------------------------------------------------------------------------------+ | Field | Value | +-----------------------+----------------------------------------------------------------------------------------------+ | ID | 1 | | post_author | 1 | | post_date | 2020-05-10 05:58:53 | | post_date_gmt | 2020-05-10 05:58:53 | | post_content | <!-- wp:paragraph --> <p>Welcome to WordPress. This is your first post. Edit or delete it, t | | | hen start writing!</p> <!-- /wp:paragraph --> | | post_title | Hello world! | | post_excerpt | | | post_status | publish | | comment_status | open | | ping_status | open | | post_password | | | post_name | hello-world | | to_ping | | | pinged | | | post_modified | 2020-05-10 05:58:53 | | post_modified_gmt | 2020-05-10 05:58:53 | | post_content_filtered | | | post_parent | 0 | | guid | https://example.com/?p=1 | | menu_order | 0 | | post_type | post | | post_mime_type | | | comment_count | 1 | +-----------------------+----------------------------------------------------------------------------------------------+
さらに「–field」というオプションを使うと特定のフィールドだけ取り出すことができます。この記事のタイトルを取り出す場合は次のようになります。
$ wp post get --path=$HOME/public_html 1 --field=post_title Hello world!
このタイトルを「Hello WP-CLI!」に書き換えてみましょう。
$ wp post update --path=$HOME/public_html 1 --post_title='Hello WP-CLI!' Success: Updated post 1.
これでブラウザでWordPressのサイトを開いてみるとタイトルが「Hello WP-CLI!」に変っているはずです。
まとめ
今回はmixhostのレンタルサーバーにWP-CLIというツールを導入してみました。
WP-CLIはPHPで動作するスクリプトなのでユーザ権限で簡単にインストールすることができます。このWP-CLIを使うとコマンドラインでWordPressのコンテンツなどを変更できるので、自動制御などを考えている方にはお勧めのツールです。
次回はmixhostのレンタルサーバーにPerlモジュールを追加してみます。
コメント