Lesson 1

開発環境を整備する

Lesson 1 chapter 0
はじめに

WordPress(ワードプレス)は、オープンソースのCMS(コンテンツ管理システム)で、ブログやウェブサイトを簡単に作成・管理することができます。

初心者でも手軽に扱えることから、世界中の多くのサイトで導入されており、今後も更に需要が増加していくことが見込まれています。

しかし、こだわりのデザインや便利な機能を使いこなすにはWordPressについての深い知見が必要になりますので日々の学習は必須でしょう。

そこで今回は、応用編としてより実践に即した開発ノウハウを学ぶことを目的としています。

まずはWordPressの基本アーキテクチャを理解することから始め、テーマやプラグインの作成方法を学習していきましょう。

最終目標として、WordPressのソースコードが部分的に読め、ECサイトなどのアプリ開発が行える状態を目指しましょう。

この講座では

  • WordPressの導入・運用経験があり、基本機能は理解している方。
  • プラグインの知識もあり、要件に応じて機能を拡張することも可能な方。
  • PHPをある程度学習された方。

が対象となっています。

Lesson 1からは、サイト構築・プラグイン作成の際に便利な機能である「デバックモード」について学習していきましょう。

Lesson 1 Chapter 1
デバッグモードの有効化

まずはデバッグモードについて解説いたします。

デバッグモードは、エラーメッセージや警告メッセージをブラウザに表示させることで思いもよらぬエラーやバグを事前に予防することができる機能です。

サイト構築・アプリケーション開発・デバッグの工程で非常に有用なツールですが「wp-config.php」の知識がなくては扱うことができないのでここで学んでいきましょう。

wp-config.phpとは

WordPressの設定ファイルであり、WordPressのインストールに必要な情報や設定情報を含んでいます。

このファイルは、通常WordPressのインストールディレクトリに配置されています。

エラーメッセージとは

エラーメッセージとは、コンピュータプログラムやシステムがエラーを発生させた際に、その原因や内容を人間が理解できる形式で表示するメッセージのことです。
エラーメッセージは、プログラムの実行中に問題が発生した場合に、開発者が問題を特定し、解決するのに役立ちます。

インストールされた状態

wp-config.phpファイルの内容はインストールされた段階では以下のように記載されています。

wp-config.php
                    ‹?php
                  
                    /** @package WordPress*/
  
                          
                    /** MySQL設定 - これらの情報はホスティング先から取得してください */
                    /** WordPressのためのデータベース名 */
                    define('DB_NAME', 'database_name_here');
                        
                    /** MySQLデータベースのユーザー名 */
                    define('DB_USER', 'username_here');
                        
                    /** MySQLデータベースのパスワード */
                    define('DB_PASSWORD', 'password_here');
                        
                    /** MySQLのホスト名 */
                    define('DB_HOST', 'localhost');
                        
                    /** データベースのテーブル名の接頭辞 */
                    $table_prefix = 'wp_';
                        
                    /** 認証キーとソルト */
                    define('AUTH_KEY',         'put your unique phrase here');
                    define('SECURE_AUTH_KEY',  'put your unique phrase here');
                    define('LOGGED_IN_KEY',    'put your unique phrase here');
                    define('NONCE_KEY',        'put your unique phrase here');
                    define('AUTH_SALT',        'put your unique phrase here');
                    define('SECURE_AUTH_SALT', 'put your unique phrase here');
                    define('LOGGED_IN_SALT',   'put your unique phrase here');
                    define('NONCE_SALT',       'put your unique phrase here');
                        
                    /** WordPressデバッグモードを有効にするかどうか */
                    define('WP_DEBUG', false);
                    require_once(ABSPATH . 'wp-settings.php');
                    

上記のwp-config.phpファイルには以下の情報が含まれているということがわかりますね。

  • データベースの接続情報
  • データベース名、ユーザー名、パスワード、ホスト名など、WordPressがデータベースに接続するために必要な情報が含まれています。

  • 認証キー
  • WordPressが認証を行うために必要な、ランダムな文字列が含まれています。

  • WordPressの設定
  • WordPressの設定に関する情報が含まれています。

    デフォルト言語、投稿の保存場所、メディアの保存場所などが設定されています。

  • プラグインやテーマの設定
  • プラグインやテーマの設定に関する情報が含まれています。

    プラグインの有効化や無効化、テーマの変更などが設定されています。

wp-config.phpファイルは、WordPressのセキュリティに関する重要な情報が含まれているため、不正アクセスを防止するために、適切に保護する必要があります。

また、wp-config.phpファイルを編集する前に、必ずバックアップを作成しておくことが重要です。

デバックモードの有効化

それではデバッグモードを有効化する手順について以下に解説します。

  1. 設定ファイル「wp-config.php」を開きます。
  2. WordPressインストール後は、ウェブサイトのルートディレクトリに配置されています。

    たとえば、インストールされている場所がサーバーの/public_html/以下であれば、wp-config.phpファイルは/public_html/wp-config.phpのようなパスになります。

    ただし、一部のホスティングサービスではwp-config.phpファイルが隠しファイルとして扱われる場合がありますので、 ファイルマネージャーなどのツールから隠しファイルを表示する設定を有効にする必要があります。

    ※OSやバージョンによって設定方法が異なります。

  3. ファイルの末尾に以下のコードを追加します。
  4. wp-config.php
                            define('WP_DEBUG', true);
                            define('WP_DEBUG_LOG', true);
                            define('WP_DEBUG_DISPLAY', false);
                            @ini_set('display_errors', 0);
                          

    このコードを追加することで、ウェブサイトのエラー内容をWordPressが自動生成するログファイルに記録し、画面には表示されなるためウェブサイトの利用者にエラーが表示されることがなくなります。

    ログファイルは、「wp-content/debug.log」に保存されています。

    ログファイルとは

    ログファイルには、システムの動作やエラー、アプリケーションの利用状況などが記録されます。

    これらの情報はトラブルシューティング、セキュリティ分析などの目的で使用されます。

    ログファイルには以下のような情報が含まれています。

  • エラーメッセージ
  • エラーが発生したときに、エラーの詳細が記録されます。

  • 警告メッセージ
  • 警告が発生したときに、警告の詳細が記録されます。

  • デバッグメッセージ
  • 開発者がデバッグ目的で出力したメッセージが記録されます。

  • アクセスログ
  • サイトにアクセスしたユーザーのIPアドレスやアクセス時間などが記録されます。

  • 変更を加えたファイルを保存します。
  • これで、デバッグモードが有効化されました。

    セキュリティに注意

    デバッグモードを有効にすると、エラーメッセージが公開されてしまうため、セキュリティ上のリスクがあります。

    デバッグが完了したら、必ずデバッグモードを無効にすることを忘れないようにしましょう。

    デバッグモードを無効にするには、上記のコードの「true」を「false」に変更し、保存するだけです。

    以下からは各項目の役割について解説します。

    WP_DEBUG

    「WP_DEBUG」は、設定ファイル「wp-config.php」に追加することで、WordPressのデバッグモードを有効化するための定数です。

    WP_DEBUGがtrueに設定されると、WordPressのエラーメッセージを表示するためにエラーを出力し、WordPressのログファイルにエラーメッセージを記録します。

    そして、それらのエラーや警告メッセージは、エラーログなどで確認することができます。

    エラーログファイルの配置場所と形式

    エラーログファイルは、WordPressのインストールディレクトリ内の「wp-content」フォルダにある「debug.log」というファイルに保存されます。

    このファイルには、WordPressのエラーメッセージや警告などがテキスト形式で記録されていきます。

    WP_DEBUGがfalseに設定されている場合、Webサイトのユーザーにエラーや警告メッセージが表示されなくなります。

    つまり、WP_DEBUGを使用することで開発者は、自分が作成したテーマやプラグインがエラーを起こした場合にエラーメッセージを記録することができます。

    これらのエラーメッセージを読み解くことで、問題点を発見しやすくなります 。

    実際に起こりやすい、一般的なWordPressのエラーメッセージの例は以下になります。

    1. "WordPress database error: [Error Message]"
    2. 上記はデータベースに関連するエラーが発生した際に、表示されます。

    3. "Fatal error: Call to undefined function [Function Name]"
    4. 上記は定義されていない関数を呼び出しているエラー表示です。

    5. "404 Not Found"
    6. 上記はページが見つからないことを示すエラーメッセージです。URLが正しくない、ファイルやページが削除された、リンクが切れているなどの理由で発生することがあります。

    WP_DEBUGは、以下のように設定できます。

    wp-config.php
                              define('WP_DEBUG', true); 
                            

    WP_DEBUGを有効にすることで、エラーが表示されます。

    特に発生しやすいエラーメッセージの例をいくつか解説してみましょう。

    • PHPのエラーメッセージ
    • 未定義の変数を使用している場合

      Notice: Undefined variable: test_variable in /path/to/your/file.php on line 10

      上記のエラーメッセージは、変数「test_variable」が定義されていないことを示しています。
      具体的には、PHPファイルの「/path/to/your/file.php」の10行目で、未定義の変数「test_variable」が使用されていることを示しています。

      通常は変数を使用する前に、その変数を宣言する必要がありますが、未定義の状態だということが警告メッセージとして記されます。

      警告レベルのエラーであるため、コードの実行には影響しませんが、未定義の変数を使用することは予期せぬ動作を引き起こす可能性があるため、修正が推奨されます。

    • PHPのエラーメッセージ
    • 非推奨の関数を使用している場合

      Warning: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /path/to/your/file.php on line 5

      上記の警告メッセージは、「mysql_connect()」関数が推奨されていないことを示しています。
      具体的には、PHPファイルの「/path/to/your/file.php」の5行目で、mysql拡張機能を使用してデータベースに接続しようとしていることが警告されています。

      PHPのバージョンが古かったり、ホスティングプロバイダーが古いPHPバージョンを使用している場合によく表示されます。

    • WordPressのエラー
    • テーマやプラグインのファイルに問題がある場合

      Fatal error: Call to undefined function get_header() in /path/to/your/file.php on line 5

      上記のエラーメッセージは、「/path/to/your/file.php」の5行目で未定義の関数get_header()を呼び出していることを示しています。

      get_header()は、通常、WordPressのテーマファイルで使用される関数であり、テーマのヘッダー部分を表示するために使用されます。

    これらのエラーメッセージの原因は、開発環境や状況などによって異なりますので、エラーメッセージが表示された場合は翻訳してみましょう。

    翻訳を行うことで、エラーが発生しているファイルのパスや原因が見つかる可能性が高くなります。

    セキュリティに注意

    WP_DEBUGを有効にする場合は、デバッグ情報を表示する際にセキュリティ上の問題が発生する可能性があるため、注意するようにしましょう。

    また、デバッグが完了したら必ずWP_DEBUGをfalseに設定して、エラーメッセージを非表示にしてください。

    WP_DEBUG_DISPLAY

    「WP_DEBUG_DISPLAY」は、設定ファイル「wp-config.php」に追加することで、WordPressのデバッグモードでエラーメッセージをブラウザに表示するかどうかを設定するための定数です。

    WP_DEBUG_DISPLAYには、以下のような値を設定することができます。

    • true: ブラウザにエラーメッセージを表示する
    • false: ブラウザにエラーメッセージを表示しない

    デフォルトの設定はtrueとなっていますので、WP_DEBUG_DISPLAYを編集していない場合はWordPressのデバッグモードでエラーが発生すると、ブラウザにエラーメッセージが表示されます。

    WP_DEBUG_DISPLAYをfalseに設定すると、エラーメッセージはブラウザに表示されず、その代わりにログファイルに内容が記録されます。

    メリットとしては、falseに設定することでエラーメッセージが一般ユーザーに表示されることを防止し、開発者が問題を追跡するために必要な情報がログに残るようになります。

    以下は、WP_DEBUG_DISPLAYをfalseに設定する方法となります。

    wp-config.php
                            define('WP_DEBUG_DISPLAY', false);
                          

    ログファイルを保護しよう

    WP_DEBUG_DISPLAYをfalseに設定する場合でも、デバッグ情報がログファイルに残ることから、ログファイルを保護する必要があります。

    ログファイルは、外部からアクセスできない場所に保存するようにして必要な場合にだけ開発者がアクセスできるようにすることが重要です。

    WP_DEBUG_LOG

    「WP_DEBUG_LOG」は、WordPressの設定ファイル「wp-config.php」に追加することで、WordPressのデバッグモードでエラーメッセージをログファイルに出力するための定数です。

    WP_DEBUG_LOGが「true」に設定されると、WordPressはエラーメッセージをブラウザに表示することはありませんが、 その代わりにWordPressのログファイルに以下のようなエラーメッセージが書き込まれます。

    • PHPのエラーメッセージ
    • 未定義の変数を使用している場合

      Notice: Undefined variable: test_variable in /path/to/your/file.php on line 10

    • PHPの警告メッセージ
    • 非推奨の関数を使用している場合

      Warning: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /path/to/your/file.php on line 5

    • WordPressのエラー
    • テーマやプラグインのファイルに問題がある場合

      Fatal error: Call to undefined function get_header() in /path/to/your/file.php on line 5

    debug.logを活用することで、開発者がエラーを見つけて修正するのに役立つでしょう。

    WP_DEBUG_LOGが「false」に設定されている場合、WordPressはエラーメッセージをブラウザに表示し、ログファイルは書き込みません。

    以下は、WP_DEBUG_LOGを有効にする方法です。

    wp-config.php
                            define('WP_DEBUG_LOG', true);
                          

    ログファイルを保護しよう

    ログファイルには個人情報が含まれる可能性があるため、外部からアクセスできない場所に保存し、必要な場合にだけ開発者がアクセスできるようにすることが重要です。

    また、ログファイルは確認次第、定期的に削除するとよいでしょう。

    SAVEQUERIES

    「SAVEQUERIES」は、設定ファイル「wp-config.php」に追加することで、WordPressが発行したすべてのSQLクエリを保存するための定数です。

    SAVEQUERIESがtrueに設定されると、WordPressは発行されたSQLクエリを記録します。

    SQLクエリとは

    SQLクエリは、リレーショナルデータベースであるMySQLやMariaDBなどを操作するためのコマンドのことを指します。

    SQLは、Structured Query Language(構造化問い合わせ言語)の略称であり、データベースの管理や操作に使用されます。

    SQLクエリ実行ログとは

    SQLクエリの実行ログは、WordPressがデータベースに対して実行するSQLクエリの詳細な情報を記録するログです。

    以下は、SAVEQUERIESを有効にする方法です。

    wp-config.php
                            define('SAVEQUERIES', true);
                          

    SAVEQUERIESを使用すると、SQLクエリが実際に実行された場所を特定することができます。

    パフォーマンスを維持しよう

    この機能はサイトパフォーマンスに影響を与える可能性があるため、常に有効にしておくことは望ましくありません。

    デバッグのために一時的に有効にして、デバックが終わったら忘れずに無効(false)にしましょう。

    DISALLOW_FILE_EDIT

    「DISALLOW_FILE_EDIT」は、WordPressの設定ファイル「wp-config.php」に追加することで、管理画面からファイル編集機能を無効化するための定数です。

    WordPressには、ブラウザの管理画面からテーマファイルやプラグインファイルを編集するための機能があり、 この機能を利用することで、HTML・CSS・PHPの知識がなくても、直感的かつ簡単にWordPressの機能を柔軟に拡張することができます。

    しかし、管理者以外の編集者が不意に編集してしまうデメリットもあるため注意が必要です。

    それらのリスクを回避するために、DISALLOW_FILE_EDITをtrueに設定することで管理画面からテーマファイルやプラグインファイルの編集機能を無効化するとよいでしょう。

    以下は、DISALLOW_FILE_EDITを有効にする方法です。

    wp-config.php
                            define('DISALLOW_FILE_EDIT', true);
                          

    この設定を有効にすると、管理画面からテーマファイルやプラグインファイルを編集するための「外観」>「エディター」や「プラグイン」>「エディター」のメニュー項目が非表示になりアクセスできなくなります。

    DISALLOW_FILE_EDITを有効に設定することで、

    • 不正なアクセスによるファイルの改ざん
    • 誤ったファイルの編集によるサイトのダウン
    • サイトパフォーマンスの悪化

    などの不具合を事前に防止することができます。

    保守性が高まるので、複数人で運用する場合は積極的に活用していきたい設定です。

    DISALLOW_FILE_MODS

    DISALLOW_FILE_MODS」とは、設定ファイル「wp-config.php」に追加することで、WordPressのプラグイン・テーマの自動更新を無効化するための定数です。

    デフォルト設定では、自動的に最新バージョンのプラグインやテーマをインストールしたり、更新されるようになっています。

    しかし、セキュリティやWordPressのバージョンとの互換性に問題がある場合、自動更新を行ったことが原因となり予期せぬアクシデントを引き起こす可能性があります。

    「DISALLOW_FILE_MODS」をtrueに設定すると、自動更新が無効になるので、これらのリスクを回避することができます。

    各更新は管理者が手動行うことができます。

    以下は、DISALLOW_FILE_MODSを有効にする方法の例です。

    wp-config.php
                            define('DISALLOW_FILE_MODS', true);
                          

    この設定をtrueにすることで、管理画面のプラグインやテーマの自動更新オプションが非表示になりました。

    定期的にチェックしよう

    セキュリティ上の問題を修正するための緊急更新があった場合など、自動更新機能が必要な場合もありますので定期的な確認が必要です。

    WordPressで開発を始めていく際、WordPressに元々備え付けられている強力な機能を活用することで、より保守性・安全性の高いサイト制作を行うことができます。

    これらの機能はWordPressを使用する大きなメリットとなり、必須知識といえます。

    そこで「Chapter 2」ではインストール方法などの初歩的な環境構築ではなく、開発に役立つ設定やツールについて詳しくご紹介していきます。

    WordPressの知見を深めてより、高度なサイト制作を極めましょう。

    Lesson 1 Chapter 2
    WP-CLIのインストール

    WordPressはブラウザからアクセスし、構築・開発を進めていくことが一般的ですが、WP-CLIというツールを組み込むことでそれらの手順を手助けしてしてくれます。

    扱えるようになると、迅速かつ手軽に運用していくことができるので身に着けていきましょう。

    WP-CLIとは

    「WP-CLI (WordPress Command Line Interface)」は、WordPressのコマンドラインツールであり、ターミナルやコマンドプロンプトからWordPressの管理作業を行うことができるツールです。

    WordPressのデータベースやテーマ、プラグインなどのファイルに直接アクセスすることが可能になることで、WordPressの管理作業を迅速に実行することができるうえに保守性も高まるでしょう。

    ターミナル/コマンドプロンプトとは

    ターミナル/コマンドプロンプトは、コンピュータ上でテキストベースのユーザーインターフェースを提供するアプリケーション。
    テキストベースのコマンドラインインターフェース(CLI)を提供し、ユーザーがコマンドを入力し、コンピュータに対して操作を実行することができます。
    Windows/Macに標準で搭載されています。

    テーマ(Theme)とは

    WordPressサイトの外観やデザインを定義するためのファイル群です。
    テーマは、サイトの見た目やレイアウト、色、フォントなどのスタイルを定義するために使用されます。
    テーマによって、サイトの外観を大きく変えることができます。

    WP-CLIのインストール方法

    WP-CLIをインストールするためには、以下の手順を実行する必要があります。

    ターミナルまたは、コマンドプロンプトから実行してください。

    1. PHPのインストール
    2. WP-CLIはPHPで動作するため、最新バージョンのPHPが必要になります。

      インストールされていることを確認してください。

      PHPのバージョンは、以下のコマンドで確認できます。

      bash
                            php -v
                          
    3. WP-CLIのダウンロード
    4. WP-CLIをダウンロードするために、以下のコマンドを実行します。

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

      "curl"は、コマンドラインからURLを使用してデータを転送するためのコマンドで、"-O"オプションを使用することで、ダウンロードしたファイルを現在のディレクトリに保存することができます。

    5. ダウンロードしたスクリプトがあるディレクトリに移動します。
    6. 以下を実行してダウンロードしたファイルのディレクトリ移動します。

      bash
                            cd インストールしたファイル名
                          

      cdとは、Change Directoryの略で、ターミナル(コマンドプロンプト)で現在のディレクトリ(カレントディレクトリ)を変更するコマンドです。

    7. WP-CLIをグローバルにインストール
    8. WP-CLIは、WordPressをコマンドラインから管理するためのツールです。

      WP-CLIをグローバルにインストールすることで、システム全体で利用できるようにしましょう。

      それでは、以下をコマンドを実行します。

      bash
                            sudo bash ./wp-cli.phar install --global
                          

      "sudo"は、管理者権限でコマンドを実行するためのコマンドで"bash"は、Bashシェルを使用してコマンドを実行するためのコマンドです。

      "./wp-cli.phar"は、ローカルに保存されているWP-CLIの実行ファイルを指定するためのコマンドであり、"install --global"は、WP-CLIをグローバルにインストールするためのコマンドです。

    9. WP-CLIの確認
    10. WP-CLIが正常にインストールされたかどうかを確認するために、以下のコマンドを実行します。

      bash
                            wp --version
                          

      ※バージョンが表示されたら正常にインストールされているということになります。

      例えば、バージョン2.5.0がインストールされている場合、以下のような結果が返されます。

      bash
                            WP-CLI 2.5.0
                          

    以上の手順で、WP-CLIをインストールすることができ、『wp』コマンドが使用できるようになりました。

    WP-CLIを使用するためには、コマンドラインで先頭に『wp』と入力して、利用可能なコマンドの一覧を確認することができます。

    また、

    bash
                          wp help command
                        

    と実行すると、指定したコマンドのヘルプを表示することができます。

    具体的には、"wp help"コマンドはWP-CLIのコマンドリファレンスを表示するためのコマンドであり、"command"はヘルプを表示したいコマンドの名前を指定するためのパラメータです。

    以下は、WP-CLIの使い方の例です。

    ターミナルまたは、コマンドプロンプトから実行してください。

    WordPressのダウンロード

    bash
                          wp core download --locale=ja
                        

    "wp core download --locale=ja" は、WordPressの日本語版をダウンロードするためのWP-CLIのコマンドです。

    具体的には、"wp"はWP-CLIのコマンドラインインターフェイスを表し、"core download"はWordPressのインストールファイルをダウンロードするためのコマンドで、"--locale=ja"は、日本語版をダウンロードするオプションです。

    設定ファイル(wp-config.php)の生成

    bash
                          wp core config --dbname=wordpress --dbuser=username --dbpass=password --dbhost=localhost
                        

    "wp core config --dbname=wordpress --dbuser=username --dbpass=password --dbhost=localhost" は、WordPressの設定ファイル(wp-config.php)を生成するためのWP-CLIのコマンドです。

    "core config"はWordPressの設定ファイルを生成するためのコマンドで、"--dbname=wordpress"はWordPressのデータベース名、"--dbuser=username"はデータベースに接続するためのユーザー名、"--dbpass=password"はデータベースに接続するためのパスワード、"--dbhost=localhost"はデータベースのホスト名を指定するオプションです。

    このコマンドを実行することで、WordPressの設定ファイル(wp-config.php)が自動的に生成されます。

    WordPressのインストール

    bash
                          wp core install --url=http://example.com --title=Example --admin_user=admin --admin_password=password --admin_email=admin@example.com
                        

    "wp core install --url=http://example.com --title=Example --admin_user=admin --admin_password=password --admin_email=admin@example.com" はWordPressをインストールするためのWP-CLIのコマンドです。

    ここで入力した--admin_user=admin --admin_password=password --admin_email=admin@example.comはログインに必須の情報になるため、忘れないようにしましょう。

    "core install"はWordPressのインストールを行うコマンドです。

    このコマンドを実行することで、WordPressのインストールが自動的に行われ、 インストールが完了するとWordPressの管理画面にアクセスし、指定した管理者ユーザー名とパスワードを使ってログインすることができます。

    プラグインのインストールと有効化

    bash
                          wp plugin install contact-form-7 --activate
                        

    上記のコマンドではwp plugin install contact-form-7でWordPressにContact Form 7というプラグインをインストールし、--activateでプラグインを有効化しています。

    プラグインのアップデート方法

    bash
                          wp plugin update --all
                        

    上記のコマンドではwp plugin updateでプラグインをアップデートし、--allで全てのプラグインを指定しています。

    テーマの有効化

    bash
                          wp theme activate twentytwenty
                        

    上記のコマンドではWP-CLIを使用して、WordPressのテーマをアクティブ化するコマンドです。

    "theme activate twentytwenty"では、Twenty Twentyというテーマをアクティブ(有効化)にし、WordPressのテーマをTwenty Twentyに切り替えています。

    Twenty Twentyは、WordPressが標準で提供しているテーマの1つで、シンプルで使いやすいデザインが特徴です。

    メディアファイルの削除方法

    bash
                          wp media delete $(wp media list --porcelain --mime_type=image/jpeg)
                        

    上記のコマンドはWordPressのメディアライブラリからJPEG形式の画像を一括削除するコマンドです。

    具体的には、"wp media list --porcelain --mime_type=image/jpeg"はJPEG形式の画像のIDを一覧で取得するコマンドで、"wp media delete"はメディアライブラリから指定したIDのメディアファイルを削除するコマンドです。

    この2つのコマンドを組み合わせて、JPEG形式の画像を一括削除することができます。

    わざわざWordPressの管理画面にアクセスしなくとも簡単に行えるのでとても便利です。

    迅速な開発環境構築を実現する

    WP-CLIは、WordPressの管理者や開発者にとって非常に便利であり、サイトのセットアップ、アップデート、バックアップ、セキュリティ管理などの作業をより迅速に行うことができます。

    簡単な操作方法

    初めからさまざまなコマンドが用意されていますが、特に抑えておきたい使用頻度の高いコマンドを抜粋してご紹介いたします。

    • WordPressのダウンロード方法
    • bash
                            wp core download --locale=ja --allow-root
                          

    "--allow-root"は、rootユーザーとしてコマンドを実行することを許可するためのオプションです。

  • WordPressの設定方法
  • bash
                            wp core config --dbname=データベース名 --dbuser=ユーザー名 --dbpass=パスワード --dbhost=ホスト名 --allow-root
                            
                          

    上記ではデータベース名、ユーザー名、パスワード、ホスト名を一括で設定できます。

  • WordPressのインストール方法
  • bash
                            wp core install --url=サイトのURL --title=サイトのタイトル --admin_user=管理者ユーザー名 --admin_password=管理者パスワード --admin_email=管理者メールアドレス --allow-root
                            
                          

    上記ではWordPressをインストールする際に、サイトのタイトル、管理者ユーザー名、管理者パスワードをまとめて設定できます。

  • プラグインのインストールと有効化
  • 以下はWordPressサイトに「Jetpack」というプラグインをインストールし、有効化するコマンドです。

    bash
                            wp plugin install jetpack --activate --allow-root 
                          

    以下は、"Hello" というプラグインを無効化するためのコマンドです。

    bash
                            wp plugin deactivate hello
                          

    以下は、サイト上から 「Akismet」 というプラグインを削除するためのコマンドです。

    bash
                            wp plugin delete akismet
                          

    wp plugin deleteで削除、akismetはプラグイン名を指定します。

    以下は、サイト上のすべてのプラグインを更新するためのコマンドです。

    bash
                            wp plugin update --all
                          

    更新したことによってサイトが壊れたり、互換性の問題が発生する可能性があるため、更新前にはバックアップを取ることをおすすめします。

    また、有料版のプラグインを利用している場合、更新によって機能制限がかかる場合があるため、注意が必要です。

  • テーマの管理
  • テーマのインストール

    bash
                            wp theme install twentytwenty --activate --allow-root
                          

    "wp theme install twentytwenty --activate --allow-root"は、Twenty Twentyテーマをダウンロードしてインストールし、アクティブ化するためのコマンドです。

    "wp theme install"は、WordPressのテーマをインストールするためのコマンドで、"twentytwenty"は、ダウンロードするテーマの名前を指定するためのパラメータです。

    "--activate"は、テーマをダウンロードしてインストールした後に自動的にアクティブ化するためのオプションです。

    "--allow-root"は、rootユーザーとしてコマンドを実行することを許可するためのオプションです。

    テーマの有効化

    bash
                            wp theme activate twentynineteen
                          

    "wp theme activate twentynineteen"は、インストールしたTwenty Nineteenテーマをアクティブ化するためのコマンドです。

    このコマンドを実行することで、WordPressの外観がTwenty Nineteenテーマに変更されます。

    アクティブ化するテーマが事前にインストールされている必要があります。

    テーマの削除

    bash
                            wp theme delete twentyseventeen
                          

    "wp theme delete twentyseventeen"は、Twenty Seventeenテーマを削除するためのコマンドです。

    "wp theme delete"は、WordPressのテーマを削除するためのコマンドで、"twentyseventeen"は、削除するテーマの名前を指定するためのパラメータです。

    テーマのアップデート

    bash
                            wp theme update --all
                          

    "wp theme update --all"は、すべてのテーマを最新版に更新するためのコマンドです。

    具体的には、"wp theme update"は、WordPressのテーマを更新するためのコマンドで、"--all"は、すべてのテーマを対象にしています。

  • データベースのエクスポート/インポート
  • データベースを以降する際に使用します。

    bash
                            wp db export backup.sql --allow-root
                            wp db import backup.sql --allow-root
                          

    "wp db export backup.sql --allow-root"は、WordPressデータベースのエクスポートを行うためのコマンドです。

    "wp db export"は、WordPressデータベースのエクスポートを行うためのコマンドで、"backup.sql"はエクスポートされたデータベースを保存するファイル名を指定しています。

    エクスポート(Export)とは

    エクスポート(Export)とは、あるシステムやソフトウェアからデータを外部ファイルや別のシステムに出力することを指します。

    "--allow-root"は、rootユーザーとしてコマンドを実行することを許可しています。

    "wp db import backup.sql --allow-root"は、WordPressデータベースのインポートを行うためのコマンドです。

    "wp db import"は、WordPressデータベースのインポートを行うためのコマンドで、"backup.sql"はインポートするデータベースのファイル名を指定しています。

    インポート(Import)とは

    インポート(Import)とは、あるシステムやソフトウェアに外部ファイルや別のシステムからデータを取り込むことを指します。

  • ユーザーの管理
  • 新しいユーザーの作成

    bash
                            wp user create newuser newuser@example.com --role=author --user_pass=password --allow-root
                          

    "wp user create newuser newuser@example.com --role=author --user_pass=password --allow-root"は、新しいユーザーを作成するためのコマンドで、 管理者や編集者が増えた際に使用します。

    "wp user create"は、新しいユーザーをWordPressに作成するためのコマンドで、"newuser"はユーザー名、"newuser@example.com"はユーザーのメールアドレス、"--role=author"は、新しいユーザーが持つ役割を指定するパラメータが指定されています。

    "--user_pass=password"は、新しいユーザーのパスワードを指定するパラメータであり、ここでは"password"というパスワードが指定されています。

    "--allow-root"は、rootユーザーとしてコマンドを実行することを許可しています。

    このコマンドを実行することで、"newuser"というユーザー名でパスワードが"password"の新しいユーザーが作成されます

    ユーザーの表示名を更新

    bash
                            wp user update 3 --display_name=
                          

    wp user update 3 --display_name="は、WordPressのユーザーの表示名を更新するためのコマンドです。

    "wp user update"は、WordPressのユーザーの情報を更新するためのコマンドであり、"3"は更新するユーザーのIDを指定するパラメータです。

    任意のIDを指定しましょう。

    "--display_name="は、更新する表示名を指定するパラメータであり、ここでは何も指定されていないため、表示名は空欄になります。

    このコマンドを実行することで、IDが3のユーザーの表示名が空欄に更新されます。

    ユーザーの削除

    bash
                            wp user delete 4
                          

    "wp user delete 4"は、WordPressのユーザーを削除するためのWP-CLIコマンドです。

    "wp user delete"は、WordPressのユーザーを削除するためのコマンドであり、"4"は削除するユーザーのIDを指定するパラメータです。

    任意のIDを指定しましょう。

    このコマンドを実行することで、IDが4のユーザーが完全に削除されます。

    ※この操作は取り消せないため、注意して実行する必要があります。

  • 投稿の管理
  • 新しい投稿を作成

    bash
                            wp post create --post_type=page --post_title='新しいページ' --post_content='ページの内容' --post_status=publish --allow-root
                          

    "wp post create"は、WordPressに新しい投稿を作成するためのコマンドであり、"新しいページ"というタイトルと"ページの内容"というコンテンツを持つ新しいページを作成するためのコマンドです。

    また、"publish"というステータスで新しいページを公開するためのオプションも指定されています。

    投稿の更新

    bash
                            wp post update 3 --post_status=draft
                          

    "wp post update"は、WordPressの投稿を更新するためのコマンドです。

    この場合、投稿IDが3である投稿のステータスを"draft"(下書き)に更新しています。

    このコマンドを実行することで、投稿IDが3である投稿のステータスが"publish"(公開状態)から"draft"(下書き状態)に変更されます。

    投稿の削除

    bash
                            wp post delete 4
                          

    "wp post delete"は、WordPressの投稿を削除するためのコマンドです。

    この場合、投稿IDが4である投稿のステータスを対象にしています。

    ※この操作は取り消せないため、注意して実行する必要があります。

    以上が、WP-CLIの一般的な操作方法の例です。

    解説したこれら以外にも、多数のコマンドがありますので、 必要に応じて wp help コマンドを入力して使用できるコマンドの一覧を確認するとよいでしょう。

    また、日本語に対応していませんが公式ドキュメントがありますので一目通しておくとよいでしょう。
    公式ドキュメント

    VCCWによるローカル環境の構築

    WordPressサイトの制作・開発を行う上で、ローカル環境を構築することは必須の作業となります。

    ローカル環境を構築すれば、インターネットに接続していなくてもWordPressを使った開発が行えるため、作業効率の向上につながります。

    そこで、VCCWという仮想環境構築ツールを使って、手軽にWordPressのローカル環境を構築する方法を解説します。

    VCCWとは

      VCCW(Virtual Computer for WordPress)は、ローカル環境でWordPressを構築するための仮想マシンです。

      仮想マシンとは

      「仮想マシン」とは、物理的なハードウェア上にあるかのように振る舞う、ソフトウェアによってエミュレートされた仮想的なコンピュータのことを指します。
      つまり、仮想的なハードウェアやオペレーティングシステムをソフトウェア上で再現した環境を提供する技術のことです。

      Vagrant(ベイグラント)とAnsible(アンシブル)を使用して構築されており、仮想マシン内でWordPressサイトを簡単にセットアップすることができます。

      また、VCCMのメリットとして挙げられるのは複数のWordPressサイトを同じ仮想マシン内で実行することができるので、複数のサイトを開発する場合に非常に便利です。

      以下は、VCCWの詳細について詳しく解説します。

    • Vagrant(ベイグラント)
    • Vagrantは、仮想マシンを構築するためのツールです。

      開発者が異なるプラットフォーム、環境でアプリケーションを開発することができるように仮想マシンを自動的に作成、構成、管理することができます。

      VirtualBox、VMware、Dockerなどの仮想化ソフトウェアと組み合わせて使用します。

      VirtualBoxとは

      VirtualBoxは、オラクル社が提供するオープンソースの仮想化ソフトウェアです。
      仮想化とは、1つのコンピュータ上に複数の仮想マシンを作り出し、それらを独立して利用することができる技術のことです。
      VirtualBoxを利用することで、1台のコンピュータ上で複数の仮想的なコンピュータを稼働させることができます。

      VMwareとは

      VMwareは、仮想化ソフトウェアを提供する会社の代表的なソフトウェアです。
      VMwareの仮想化技術を利用することで、1つのコンピュータ上に複数の仮想的なコンピュータを作成し、それらを独立して利用することができます。

      Dockerとは

      Dockerは、コンテナ仮想化技術を提供するオープンソースのプラットフォームです。
      Dockerを利用することで、アプリケーションやサービスを独立したコンテナにパッケージ化し、それを様々な環境で実行することができます。

      Vagrantを使用すると、開発者はプロジェクトごとに仮想マシンを構築することができます。

      これにより、開発者は、開発用のマシンを別途手動で設定する必要がなくなり、より迅速かつ一貫性のある環境を作成することができます。

      また、Vagrantは、共有フォルダ、ネットワーク設定、ポート転送などの機能を提供しています。

      ポート転送とは

      ポート転送(ポートてんそう、Port Forwarding)とは、コンピュータネットワークにおいて、ある特定のポートに対するネットワークトラフィックを、別のポートやIPアドレスに転送する機能または操作のことを指します。
      ポート転送は、ルータやファイアウォールなどのネットワーク機器を介して、インターネット上の外部から内部のネットワーク内の特定のサーバやデバイスに接続するために使用されます。
      一般的に、インターネット上から内部ネットワークにあるサーバにアクセスする場合に利用されます。

      Vagrantfileと呼ばれる設定ファイルを使用して、仮想マシンの構成を定義しており、Vagrantfileには、仮想マシンのネットワーク設定、共有フォルダの設定、ポート転送の設定などが含まれます。

      また、Vagrantは、プロビジョニングツールを使用して、仮想マシンにソフトウェアやパッケージを自動的にインストールすることもできます。

      プロビジョニングツールとは

      プロビジョニングツールは、コンピューターシステムやソフトウェアの設定、管理、自動化を行うためのツールのことです。
      主に、クラウド環境や仮想マシンで利用されます。
      代表的なプロビジョニングツールには、Ansible、Chef、Puppet、Saltなどがあります。

      複数の開発者が同じ環境で開発することを容易にするため、チームでの開発に最適でしょう。

    • Ansible(アンシブル)
    • Ansibleは、IT自動化ツールの1つで、構成管理など、さまざまなタスクを自動化することができます。

      Pythonで開発されており、SSHプロトコルを使用することでリモートサーバーにアクセスし、タスクを実行します。

      SSHプロトコルとは

      SSH(Secure Shell)プロトコルは、ネットワーク上で安全にリモートコンピューターにアクセスするためのプロトコルです。
      SSHは、暗号化された通信チャネルを提供し、機密性と完全性を保証することができます。
      様々なネットワークプロトコルで動作するため、様々なアプリケーションに利用されています。

      Ansibleは、自動化を促進することで、人為的な不意なミスを減らし、タスクの再現性を高め、運用コストを低減することが可能となっています。

      また、Ansibleはエージェントレスの自動化ツールであるため、管理するサーバーにエージェントをインストールする必要がありません。

      サーバーエージェントとは

      サーバーエージェントとは、サーバー管理や監視を自動化するためのプログラムのことを指します。
      このエージェントは、ホストされる各サーバーにインストールされ、サーバーの様々な情報を収集し、その情報を中央管理サーバーに送信します。
      これにより、システム管理者は、複数のサーバーの状態を一元的に監視・管理することができます。
      また、自動的にシステムのパフォーマンスを最適化するための設定変更や、トラブル解決のためのアラート通知などを行うこともできます。
      一般的なサーバーエージェントとしては、Zabbix AgentやNagios NRPEが挙げられます。

      プレイブックと呼ばれるYAMLファイルにタスクを定義し、それを実行することで、構成管理やデプロイなどの自動化が行われます。

      プレイブックとは

      プレイブックは、Ansibleの構成管理ツールにおける実行対象となる、YAML形式で書かれたファイルのことを指します。
      このファイルには、一連のタスク(Task)が記述されており、それらのタスクがAnsibleによって実行されます。
      サーバーの環境構築やソフトウェアのインストール、構成管理などの自動化に利用されます。

      また、Ansibleはインベントリと呼ばれるファイルに管理するサーバーのリストを定義することで、複数のサーバーに対して同じタスクを一度に実行することができます。

      Ansibleの機能は、プラグインやモジュールを追加することで拡張することが可能となっており、AWS、Azure、Google Cloud Platformなどのクラウドプロバイダーや、Docker、Kubernetesなどのコンテナ技術との統合も可能になっています。

    Lesson 1 Chapter 3
    VCCMのインストール方法

    WordPressのローカル環境を構築するには、仮想環境構築ツールを使うのが一般的です。

    その中でも、VCCWは手軽にWordPressのローカル環境を構築できることから、多くのWordPress開発者に利用されています。

    VCCW(Virtual Computer for WordPress)をインストールするには、以下の手順に従って行ってください。

    1. Vagrantをインストールする
    2. Vagrantのダウンロードは、以下のURLから行えます。

      Vagrant

      ※英語版の公式ドキュメントが公開されていますので導入の際は一目通しておくと良いでしょう。

    3. VirtualBoxをインストールする
    4. VirtualBoxは、仮想マシンの作成と管理を行うためのツールです。

      VirtualBoxをダウンロードしてインストールします。

      ダウンロードは、以下のURLから行えます。

      VirtualBox
    5. VCCWをダウンロードする
    6. VCCWは、GitHubから入手できます。

      GitHubとは

      GitHubは、ソフトウェア開発プラットフォームであり、ソースコードのホスティング、バージョン管理、コラボレーションを提供するウェブベースのサービスです。
      GitHubは2008年に創業され、オープンソースプロジェクトや商用プロジェクト、個人のプロジェクトなど、さまざまな規模のソフトウェア開発に広く利用されています。

      途中で操作を加えてしまうと、思いもよらないエラーが起こる場合がありますので完了するまで待ちましょう。

      以下のコマンドを実行することで、最新バージョンのVCCWをダウンロードすることができます。

      bash
                            git clone git://github.com/miya0001/vccw.git
                          

      git cloneは、Gitリポジトリをローカル環境に複製するためのコマンドです。

      Gitリポジトリとは

      Gitリポジトリ(Git Repository)は、Gitという管理システムによって管理されるプロジェクトデータです。
      プロジェクトのソースコードやファイル、履歴、変更履歴などの情報が格納されます。

      途中で操作を加えてしまうと、思いもよらないエラーが起こる場合がありますので完了するまで待ちましょう。

    7. VCCWを起動する
    8. コマンドプロンプト/ターミナルを開いて、VCCWがダウンロードされたディレクトリに移動し、以下のコマンドを実行しましょう。

      bash
                            vagrant up
                          

      これにより、Vagrantが仮想マシンを作成し、WordPressがインストールされます。

    待機

    初回の起動時には、数分から数十分かかる場合があります。

    途中で操作を加えてしまうと、思いもよらないエラーが起こる場合がありますので完了するまで待ちましょう。