WP-CLIを使用したWordPressプラグインのインストール、更新、および管理

公開: 2022-07-26

WP-CLIを使用すると、WordPress管理者で実行できる実質的にすべてのことを実行できますが、コマンドラインで実行できます。 これにより多くの時間が節約され、よりクリーンなワークフローが提供されます。 WP-CLIを使用して、WordPressコアの管理、テーマの更新の実行、マルチサイトインストールの管理などを行うことができます。 この記事では、WordPressプラグインの管理という最も一般的なユースケースの1つに焦点を当てます。

WP-CLIコマンドはすべて同じように構成されています。 親コマンド( wp pluginなど)とサブコマンド( installなど)が常にあり、その後にパラメーターとスイッチが続きます。 この記事では、 wp pluginとそのサブコマンドに焦点を当てますが、WP-CLIコマンド構造のガイドでより詳細な説明を見ることができます。

この記事では、例としてwp pluginコマンドを使用し、WP-CLIを使用してプラグインをインストールしてアクティブ化する方法を強調しました。 この記事では、WordPressコマンドラインインターフェイスを使用してプラグインを管理する方法について詳しく説明します。

プラグインのインストールとアクティブ化

現在、 wp pluginの親コマンドには16の公式サブコマンドがあります。 このセクションでは、インストールとアクティベーションのサブコマンドについて説明します。 また、1つのコマンドでプラグインをインストールしてアクティブ化する方法についても説明します。 また、WordPressプラグインディレクトリ以外のソースからプラグインをインストールする方法についても説明します。

wp plugin install入力し、続いてプラグインの公式スラグを入力して、最新バージョンをインストールします。

wpプラグインインストールhello-dolly
ハロー・ドーリー(1.7.2)のインストール
https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zipからインストールパッケージをダウンロードしています...
キャッシュされたファイルを使用する'/Users/eriktorsner/.wp-cli/cache/plugin/hello-dolly-1.7.2.zip'.. ..
署名が見つからなかったため、hello-dolly.1.7.2.zipの信頼性を確認できませんでした。
パッケージを開梱しています...
プラグインをインストールしています...
プラグインが正常にインストールされました。
成功:1つのプラグインのうちの1つをインストールしました。

次に、 wp plugin activateコマンドを使用してプラグインをアクティブ化します。

wpプラグインはhello-dollyをアクティブにします
プラグイン「hello-dolly」がアクティブ化されました。
成功:1つのプラグインのうちの1つをアクティブ化しました。

プラグインスラッグの検索

スラッグはプラグイン名とは異なる場合が多いことに注意してください。 スラッグはWordPressプラグインディレクトリのプラグインのURLに表示されますが、コマンドラインを使用してsearchサブコマンドを使用し、その後に2つのパラメーターとその値を使用することでワークフローを高速化できます: --per-page=1および--fields=name,slug

オプションの--per-pageパラメーターは、表示する結果の数(この場合は1つ)をWP-CLIに指示します。 このパラメーターを指定しない場合、デフォルトで10件の結果が表示されます。 最も関連性の高い結果のみを表示したいので、ここでは値1を指定しました。

--fieldsパラメーターは、APIから特定のフィールド(この場合はプラグインの名前とスラッグ)を要求するようにWP-CLIに指示します。 ここで使用できる値には、現在のversion番号を表示するバージョンや、プラグインのratingをパーセンテージと評価の総数の両方として表示する評価など、さまざまなものがあります。 単一のフィールドの結果のみを表示する場合は、代わりに--field=<field>を使用できます。 wp plugin searchコマンドでは、 --fieldsまたは--fieldパラメーターのいずれかを使用する必要があります。

wpプラグイン検索"wpoffload media" --per-page = 1 --fields = name、slug
成功:66個のプラグインのうち1個を表示しています。
+ ------------------------------------------------- ------------------------------- + ------------------ -------- +
| 名前| ナメクジ|
+ ------------------------------------------------- ------------------------------- + ------------------ -------- +
| Amazon S3、DigitalOcean Spaces、およびGoogleCloudSto向けのWPオフロードMediaLite| amazon-s3-and-cloudfront |
| 怒り| |
+ ------------------------------------------------- ------------------------------- + ------------------ -------- +

このコマンドの応答はリストであるため、これは--formatパラメーターで何ができるかを示す良い機会です。 WP-CLIにそのリストをJSON形式で提供するように依頼し、jqユーティリティを介してパイプしてよりきれいな形式にします。 jqユーティリティは軽量のコマンドラインJSONプロセッサであり、上記のリンクからインストールするか、オンラインで試すことができます。 必ず省略してください| jq インストールされていない場合は、以下のコマンドから| jqを実行します。

JSON形式の出力を要求すると、WP-CLIはステータスメッセージを省略して、JSONが壊れないようにします。


$wpプラグイン検索"wpoffload media" --per-page = 1 --fields = name、slug --format = json | jq
[
  {{
    "name": "Amazon S3、DigitalOcean Spaces、およびGoogleCloudStorage用のWPOffloadMedia Lite"、
    「スラッグ」:「amazon-s3-and-cloudfront」
  }
]

インストール後にプラグインをアクティブ化するには、 wp plugin activateを使用してからプラグインの公式スラッグを使用します。

プラグインのインストールとアクティブ化を同時に行う

WP-CLIを使用してプラグインを管理する場合、大きな利点の1つは、1つのコマンドでプラグインをインストールしてアクティブ化できることです。 activatewp pluginのサブコマンドとして使用できますが、 wp plugin installコマンドのパラメーターとしても使用できます。

#プラグインのインストールとアクティブ化を同時に行う
wpプラグインインストール--activatehello-dolly

特定のプラグインバージョンのインストール

テスト目的で特定のバージョンのプラグインをインストールすることは珍しくありません。 必要なバージョンがWordPressプラグインディレクトリで引き続き利用可能である限り、適切と思われるバージョンを選択できます。

#特定のプラグインバージョンをインストールする
wpプラグインインストールwoocommerce--version= 5.5.3

他の場所からのプラグインのインストール

プラグインを入手できるのはWordPressプラグインディレクトリだけではありません。 ファイルシステムから直接プラグインをインストールすることもできます。 ほとんどの場合、プレミアムプラグインを購入すると、zipファイルの形式で最初の配信が行われます。 WP-CLIは、最初にパッケージを抽出する必要なしに、そのzipファイルを直接インストールします。

#ダウンロードフォルダからプラグインをインストールする
$ wpプラグインのインストール〜/ Downloads / Advanced-custom-fields-pro.zip

これは、インストールするプラグインがURLで利用できる場合にも機能します。おそらく、リクエストパラメータを介して資格情報を提供するか、自己署名証明書を使用してサーバーでのみアクセスできます。

#URLからプラグインを取得します
wpプラグインインストールhttp://www.hellfish.media/my-plugin.zip

#...またはAmazonバケットからのプライベートファイル:
wpプラグインのインストールhttps://s3.amazonaws.com/bucketname/my-plugin.zip?X-Amz-SignedHeaders=host&X-Amz-Expires=900&X-Amz-Signature=abc123

#自己署名証明書を使用して内部サーバーから:
wpプラグインインストールhttps://intranet.hellfish.media/my-plugin.zip--insecure

WP-CLIを使用したプラグインの更新

プラグインをインストールしたら、セキュリティ上の理由からプラグインを更新しておくことが重要です。更新するプラグインがあるかどうかを確認するには、 wp plugin listコマンドを実行します。

wpプラグインリスト
+ ------------------------------- + ---------- + ------ ----- + --------- +
| 名前| ステータス| 更新| バージョン|
+ ------------------------------- + ---------- + ------ ----- + --------- +
| amazon-s3-and-cloudfront | アクティブ| 利用可能| 2.6.1 |
| こんにちは-ドリー| アクティブ| 利用可能| 1.7.1 |
| wunderdevmu | 必見| なし| 1.0 |
+ ------------------------------- + ---------- + ------ ----- + --------- +

この場合、HelloDollyプラグインとWPOffloadMediaプラグインの両方を更新する必要があります。 当然、 updateと呼ばれる別のサブコマンドがあります。

それらを1つずつ更新するか、少し怠惰になって、 --allスイッチを使用して一度に更新する必要があるすべてのものを更新することができます。 updateコマンドのデフォルトの動作は、メジャーバージョンのアップグレードを含む最新の利用可能なバージョンまで完全に更新することです。 ただし、 --minorスイッチを使用すると、もう少し注意が必要になり、マイナーバージョンのみを更新できます。 たとえば、1.2.3から1.3.0に更新するように指示できますが、2.0.0には更新できません。 さらに細心の注意を払い、 --patchスイッチを使用して、更新をパッチのみに制限することもできます。つまり、1.2.3から1.2.5に制限しますが、1.3.0には制限しません

#プラグインを1つずつ慎重に更新する
wpプラグインの更新wp-offload-media
wpプラグインアップデートhello-dolly

#カウボーイアプローチ
wpプラグインの更新--all

#もう少し賢明
wpプラグインの更新--all--minor

#非常に防御的
wpプラグインの更新--all--patch

注: --minorおよび--patchスイッチは、プラグインがセマンティックバージョニングを使用していることを前提としています。 すべてのプラグインがこれを行うわけではないので、使用しているプラ​​グインを探す必要があります。そうすれば、不快な驚きを感じることはありません。 --dry-runオプションを使用すると、コマンドが正しいことを確認できます。

#単一のプラグインをパッチのみに更新するテスト
wpプラグインアップデートhello-dolly--patch--dry-run

--exclude=<plugin name>パラメーターは、更新から除外するプラグインを示すために使用されます。 プラグイン名をコンマ区切りのリストとして含めると、WP-CLIは他のすべてのプラグインを更新しますが、それらはそのままにします。

wpプラグインの更新--all--exclude= hello-dolly
メンテナンスモードを有効にする...
https://deliciousbrains.com/my-account/download/7512/?version=2.6.2からアップデートをダウンロードしています...
アップデートを解凍しています...
最新バージョンをインストールしています...
プラグインの古いバージョンを削除しています...
プラグインが正常に更新されました。
メンテナンスモードを無効にする...
+ -------------------------- + ------------- + -------- ----- + --------- +
| 名前| old_version | new_version | ステータス|
+ -------------------------- + ------------- + -------- ----- + --------- +
| amazon-s3-and-cloudfront | 2.6.1 | 2.6.2 | 更新|
+ -------------------------- + ------------- + -------- ----- + --------- +

プラグインの再インストールを強制する

ほとんどのプレミアムプラグインには、WP-CLIでもうまく機能する独自のアップデートチェッカーが組み込まれています。 私の経験では、WordPress管理ページからワンクリックで更新できるプラグインは、WP-CLIを使用して更新することもできます。 ただし、場合によっては、サーバーの正しい場所に配置する必要がある新しいバージョンのzipファイルを介して更新が提供されます。 --forceスイッチを使用してプラグインの再インストールを強制することにより、これらの種類の更新を適用できます。

#プラグインを強制的に再インストールする
wpプラグインインストール〜/ Downloads / my-custom-plugin-v2.zip --force

自動更新の有効化

バージョン5.5以降、WordPressはプラグインを自動的に更新できます。 個々のプラグインごとに自動更新を有効にする必要があります。 WP-CLIは、自動更新の一括処理を提供していません。 auto-updatesサブコマンドを使用して、プラグインごとに個別に実行する必要があります。 次のコマンドでどのように機能するかを確認できます。

#プラグインの自動更新が有効になっているかどうかを確認します
wpプラグインはステータスhello-dollyを自動更新します

#自動更新を有効にする 
wpプラグインの自動更新によりhello-dollyが有効になります

#もう一度無効にする
wpプラグインの自動更新はhello-dollyを無効にします

プラグインの非アクティブ化と削除

プラグインのインストール、アクティブ化、および更新は最も一般的なタスクの1つですが、WP-CLIが処理できるプラグイン管理ジョブは他にもあります。

WordPress Webサイトで問題の原因を突き止めようとしたことがある場合は、最初のステップの1つとして、すべてのプラグインを非アクティブ化することをお勧めします。 Webブラウザでの一括処理でこれを行うことは可能ですが、それはいつも私を緊張させます。 --allスイッチを使用してコマンドラインから実行することをお勧めします。

#すべてのプラグインを一度に非アクティブ化する
wpプラグインdeactivate--all

#そしてそれらを再びアクティブにします
wpプラグインアクティベート--all

プラグインを完全に削除することも、WP-CLIを使用して簡単に実行できます。 コマンドラインとブラウザを介してこれを行うことの1つの違いは、WP-CLIを使用すると、最初に非アクティブ化フックを実行せずにプラグインを削除できることです。 非アクティブ化中にWordPressをクラッシュさせるプラグインをインストールしたことがある場合は、これが非常に役立つ理由をご存知でしょう。

#非アクティブ化してアンインストール 
wpプラグインはhello-dollyを非アクティブ化します--uninstall

#プラグインを非アクティブ化する機会を与えずに削除します
wpプラグインdeletehello-dolly

プラグインのアクティブ化と非アクティブ化に関連するtoggleサブコマンドもあります。 アクティベーションステータスを反転または切り替えて、現在のステータスの反対に変更します。 --networkを追加して、マルチサイトネットワーク全体のプラグインのオンとオフを切り替えることができます。

プラグインのチェックサム

WP-CLIには、インストールされているプラ​​グインのチェックサムを、WordPressプラグインディレクトリ上の同じプラグインとバージョンのチェックサムと比較する機能があります。 これは、WordPressインストールのプラグインファイルが操作されているかどうかを判断するための非常に効率的な方法です。 もしそうなら、それはあなたがハッキングされたことを強く示しています。

チェックサムは、任意のタイプとサイズの入力を受け取り、それを短い文字列に変換できる特別なコンピューターアルゴリズムです。 この文字列は通常、約20〜40文字の長さであるため、データベースに保存するのに適しています。 この結果の文字列は、ハッシュ、署名、または歴史的な理由からチェックサムと呼ばれます。

これらのアルゴリズムの独自性は、入力で1文字でも変更された場合、出力が完全に異なることです。 プラグインのすべてのファイルをチェックサムアルゴリズムに1つずつフィードすると、プラグイン全体を表す1つの小さな署名またはチェックサムが作成されます。

プラグインの新しいバージョンがWordPressプラグインディレクトリに公開されるたびに、その特定のバージョンのチェックサムが計算されて保存されます。 数か月後、ハッキングされていないことを再確認したい場合は、WP-CLIにプラグインのチェックサムを計算してもらい、WordPressが保持している元のチェックサムと比較することができます。 あなたの側に追加、変更、または欠落しているファイルがある場合、プラグインのチェックサムは元のチェックサムとは異なり、WP-CLIはそれについていくらかのノイズを出します。

このハッシュチェックの魔法を処理するサブコマンドはverify-checksumsと呼ばれ、「WordPressプラグインディレクトリからプラグインを取得してからプラグインは変更されていませんか?」と尋ねるのと本質的に同じです。

#単一のプラグインを確認します
wpプラグインverify-checksumshello-dolly
成功:1つのプラグインのうちの1つを確認しました

#リポジトリからのすべてのプラグインを確認します
wpプラグインverify-checksums--all

これは、公式のWordPressプラグインディレクトリからインストールされたプラグインに対してのみ機能するため、プレミアムプラグインはこのコマンドによってチェックされません。 verify-checksumsサブコマンドはwp coreにも存在しますが、WordPressテーマの検証には使用できません。

スクリプトのコマンド

これまでに説明したコマンドは、WordPressプラグインを管理する必要があるすべての人に役立ちます。 ここで取り上げるwp pluginサブコマンドの最後のセットは、主にBashスクリプトでの使用を目的としているため、WordPress開発者が主に関心を持っています。

まず、Unixの終了コードについて少し説明する必要があります。 Unixシステムでは、実行を終了するすべてのプログラムが終了コードを返します。 標準的な解釈では、終了コード0はプログラムが正常に終了したことを意味し、ゼロ以外の終了コードはエラーが発生したことを示します。

エラーコードは、シェルスクリプトでよく使用され、 if/elseステートメントやその他の形式の分岐で使用されます。 コマンドプロンプトからコマンドを正常に実行すると終了コードが表示されませんが、 $?を使用していつでも終了コードを見つけることができます。 :

#動作するものを実行し、終了コードを取得します
日にち
エコー$?
0

#失敗したものを実行する
ls / nonexistingfolder
ls:/ idongfdg:そのようなファイルまたはディレクトリはありません
エコー$?
1

WP-CLIには、主に何かをチェックして有用な終了コードを返すことを目的とした一連のコマンドがあります。 wp pluginコマンドには、 is-installedis-activeの2つのサブコマンドがあり、特定のプラグインがインストールされてアクティブ化されているかどうかを確認できます。

#hello-dollyがインストールされているかどうかを確認します(インストールされています)
wpプラグインは-インストールされたhello-dolly
エコー$?
0

#ハロードーリーを削除して、もう一度確認してください
wpプラグインdeletehello-dolly
wpプラグインは-インストールされたhello-dolly
エコー$?
1

#woocommerceがアクティブ化されているかどうかを確認します
wpプラグインは-アクティブなwoocommerce
エコー$?
0

#woocommerceを非アクティブ化する
wpプラグインはwoocommerceを非アクティブ化します
wpプラグインは-アクティブなwoocommerce
エコー$?
1

上記のコマンドを使用すると、特定のプラグインがインストール/アクティブ化されているかどうかに応じて異なることを行うBashスクリプトを作成できます。

私が疑う最後のサブコマンドは、主にスクリプトを目的としたものであり、 pathです。 このコマンドは、プラグインのメインPHPファイルへのパスを返すだけであり、その結果、プラグインフォルダーへのパスも返します。 これを他のBashトリックと組み合わせることができます。たとえば、次のようになります。

#woocommerceプラグインフォルダー内のすべてのファイルを表示する
ls -al $(dirname $(wpプラグインパスwoocommerce))

これは日常のコマンドライン作業ではあまり役に立ちませんが、スクリプトを作成するときに確かに便利であり、プラグインのパスを取得する必要があります。

結論

ご覧のとおり、コマンドラインからWordPressプラグインを管理すると、速度が向上し、多くの一般的なタスクがはるかに簡単になります。 プラグインの管理に関して最も一般的なタスクについて説明しましたが、自分でさらに詳しく調べることをお勧めします。 WP-CLIの機能がプラグインをはるかに超えて拡張され、WordPress管理者で実行できることを実質的にすべて実行できるようになりますが、はるかに高速になります。

wp pluginコマンドをどのように使用しているかの良い例はありますか? コメントで教えてください。