WordPressプラグインボイラープレート101:はじめに

約10年前のWordPressプラグインの登場以来、それらの記述方法に大きな変化はありませんでした。基本的に、ヘッダーとそれに続くWild Westが含まれるメインプラグインファイルがあります。フックを使用する以外に、プラグインを作成する標準化された方法はありません.


これは必ずしも問題ではありません。管理フレームワークを必要としない単純なプラグインは数多くあり、完全に一貫した手続き型コードを記述できる人もいます。とは言っても、プラグインのコードの品質は一般的に最高ではなく、フレームワークや方法論はそれを上げるのに長い道のりを行くでしょう.

この記事では、可能な解決策の1つを見ていきます。 WordPressプラグインのボイラープレート. これは、プラグイン開発、つまり、標準化されたプラグインを作成するオブジェクト指向の方法の出発点となることを目的としています。 OOP原則でコーディングされているため、主に中間コーダーを対象としていますが、何がどこにあるかがわかっていれば、初心者でも簡単に使用できます。この記事の終わりまでに、コーディングの経験に関係なく、何をどのように開始するかを理解する必要があります。.

一般的なファイル構造

ボイラープレートはGithubリポジトリとして使用することを目的としているため、メインディレクトリにはGithubリポジトリで一般的に見られるファイルが含まれています。 README.mdファイルは一般的なreadmeであり、メインのリポジトリページに説明として表示されます。 CHANGELOG.mdファイルはバージョン間の変更を記録するためのものであり、.gitignoreファイルはファイルを操作するときにgitが無視するファイルを設定するためのものです.

ここのメインフォルダーplugin-nameは、プラグインが格納される場所です。その構造はWordPressリポジトリに従います。 "チェックイン" このフォルダをSVNプラグインリポジトリに追加します。デフォルトでは、プラグインの画像とスクリーンショットを格納するアセットフォルダと、プラグインのコードを含むトランクフォルダが含まれています.

トランクフォルダーにはプラグインが含まれています。このフォルダーをWordPressインストールに貼り付けて、プラグインをアクティブ化できます。このフォルダーの内容については、後で詳しく説明します。その前に、ショップをセットアップしましょう.

新しいプラグイン

すべてを設定する

これらすべてのフォルダーとSVN / Gitの素晴らしさを1か所にまとめることは、すべてうまくいきますが、実際にこれをどのように使用できますか?フォルダー全体をプラグインフォルダーに直接チェックアウトすることはできません。単に機能しません。トランクディレクトリだけをチェックアウトするのは面倒であり、そのディレクトリの外部のファイルにアクセスすることはできません。.

好きな設定方法を紹介しましょう。コンピューターに次の構造のフォルダーがあります。

  • github
    • トップ作家
    • Easy-Featured-Images
    • Twitterユーザータイムライン
  • html
    • wp-admin
    • wp-content
    • wp-includes
    • 他のワードプレスファイル
  • ワードプレス
    • トップ著者
    • 簡単機能画像
    • ツイッターユーザータイムライン

htmlフォルダーは、WordPressがインストールされている場所です。 githubフォルダーには、GithubのすべてのWordPressプラグインが含まれています。 wordpressフォルダには、WordPressリポジトリからSVN経由でプルされた同じプラグインが含まれています.

シンボリックリンクを作成する

私が取る最初のステップは、GithubでWordPressプラグインボイラープレートのバニラバージョンを作成することです。それをgithubフォルダーにチェックアウトします。次に、WordPressインストールのwp-content / pluginsディレクトリ内のトランクフォルダー間にシンボリックリンクを作成します.

Symlinksは、期待どおりにターゲットに解決されるファイルまたはフォルダーへの参照です。これの最終結果は、システム上のどこからでもWordPressディレクトリにプラグインをシンボリックリンクする場合、それはうまく機能するということです。これには次の利点があります。

  • プラグインは他の場所に保存できます.
  • より大きなリポジトリ内からフォルダをシンボリックリンクできます.
  • 同じプラグインを複数のインストールにシンボリックリンクできます.

端末またはWindowsのコマンドプロンプトからシンボリックリンクを作成するのは簡単です。 WordPressインストールのプラグインディレクトリを開いて、pluginsディレクトリに移動することをお勧めします。次に、次のコマンドを入力します。

#OSXまたはLinuxの場合
ln -s / absolute / path / to / github / My-Plugin-Name / my-plugin-name / trunk my-plugin-name

#Windowsの場合
mklink / j C:\ absolute \ path \ to \ github \ My-Plugin-Name my-plugin-name

これにより、最初のパスから2番目のパスへのリンクが作成されます。最初のパスは、Githubリポジトリ内のトランクディレクトリへの絶対パスです。 2つ目は、WordPressインストールのプラグインディレクトリに既にいる場合にリンクするフォルダーの名前のみです。.

完了すると、上の画像のように、新しいプラグインが表示されます。カスタマイズする必要がありますが、Githubリポジトリからプラグインを実行して、開発を たくさん より簡単に.

名前の変更

トランクディレクトリには多数のフォルダとファイルがあります。名前を変更してみましょう。まず第一に、My-Awesome-Pluginのようにダッシュと大文字を使用してリポジトリに名前を付けることをお勧めします。内のメインフォルダーは「my-awesome-plugin」という名前にする必要があります。プラグイン全体でこの規則を使用することをお勧めします.

OSXでは、ファイル名の変更は簡単です。すべてのフォルダーを開き、文字列plugin-nameが含まれているすべてのファイルを選択します。右クリックして14個のファイルすべての名前を変更し、ロットの名前を一括で変更します.

リネーム

Windowsではもう少し難しいでしょう、これを見てください HowToGeek 詳細については記事、または1つずつ進んでください.

のような用語 "プラグイン名" その他のバリエーションもファイルのコンテンツ全体に広がっています。使用できます 荘厳な, Atom.io または、複数のファイル内で一括置換できる他の有能なテキストエディタ。置換する必要があるもののリストを次に示します(大文字と小文字を区別した検索置換を必ず実行してください)。.

  • plugin_name my_awesome_pluginになるはずです
  • プラグイン名 My_Awesome_Pluginになるはずです
  • プラグイン名 私の素晴らしいプラグインになるはずです

完了したら、メインファイルのヘッダーコメント(my-awesome-plugin.php)に記入して、ニーズに合わせてカスタマイズしてください.

目次

WordPressプラグインのボイラープレートには多くのものが含まれています。アイデアは、物を置く場所について厳格なガイドラインを設定することです。たとえば、フロントエンド関数を追加するための標準的な場所など、フックを追加するための特定の場所が1つあります。フレームワークの主要部分を見てみましょう.

ファイルの名前が変更されたので、たとえば、includes / class-my-awesome-plugin.phpのようにファイルを参照することに注意してください。プラグインの名前を別の名前に変更した場合は、ファイル名のmy-awesome-pluginの部分が異なることを覚えておく必要があります.

アクティブ化、非アクティブ化、およびアンインストール

プラグインがアクティブ化されたときに実行するコードはすべて、includes / my-awesome-plugin-name-activator.phpに配置する必要があります。このファイルには、My_Awesome_Plugin_Activatorという名前のクラスがあり、その中に使用するactivate()メソッドがあります。.

オブジェクトの処理速度にまだ慣れていなくても心配はいりません。物事をどこに置くかを知っていれば、始めるのに十分です。.

非アクティブ化で実行する必要があるコードは、includes / my-awesome-plugin-name-deactivator.phpに配置する必要があります。 My_Awesome_Plugin_Deactivator内のactivate()メソッドは、使用する必要があるものです.

これは少し複雑すぎると思いますか?私はあなたを責めません!オブジェクト指向の概念の使用を開始すると、手続き型コードよりも優れていることがわかります。他に何もなければ、それはそれ自体が大きな助けであるあなたのコードを置くための非常に明白な場所を提供します.

アンインストールでは、WordPressプラグインのボイラープレートが実行するuninstall.phpを使用することをお勧めします。コードはそのファイルの一番下に配置する必要があります.

フックを追加する

フックはWordPressプラグインのボイラープレートによって驚くほど処理されますが、最初は少し扱いに​​くいように見えるかもしれません。すべてのフックは、includes / class-my-awesome-plugin.php内に配置する必要があります。より具体的には、My_Awesome_Pluginクラス内の2つのメソッド内:

  • フロントエンドで使用されるフックを追加するときのdefine_public_hooks()
  • バックエンドで使用されるフックを追加するときのdefine_admin_hooks()

通常のようにadd_action()またはadd_filter()を使用する代わりに、少し異なる方法で処理を行う必要があります。たとえば、投稿内容を変更する方法は次のとおりです.

$ this->ローダ->add_action( ‘the_content’、$ plugin_public、 ‘modify_post_content’);

最初のパラメーターはフックの名前、2番目のパラメーターはpublicまたはadminオブジェクトへの参照です。パブリックフックの場合は$ plugin_public、管理フックの場合は$ plugin_adminになります。 3番目のパラメーターはフック関数です.

より複雑なように見えますが、フックの追加を完全に標準化し、プロセスでそれらを2つの異なるグループに分割します.

公共および管理コンテンツ

WordPressプラグインのボイラープレートは、フックを管理者グループと公開グループに分割しますが、それだけではありません。パブリックフォルダーにパブリック向けのコードを書き込み、アドミンフォルダーに管理者向けのコードを書き込むように依頼することで、すべてのコードを同じ方法で分割します。.

どちらのフォルダーにも、css、js、partialsフォルダーが含まれています。使用済みのCSS / JSアセットをこれらのフォルダーに配置し、テンプレートおよびその他の再利用可能なHTMLの一部をパーシャルフォルダーに書き込みます。パーシャルフォルダーに新しいファイルを作成しても問題ありません。実際、それが目的です。!

これらのフォルダーにも、対応するディレクトリのクラス内にフック関数を記述してください。上記のmodify_post_content関数をthe_contentにフックしたとき、WordPressプラグインのボイラープレートに、それを探す場所も伝えました。これをパブリック側に追加したため、WordPressプラグインボイラープレートは、パブリックフォルダーにあるMy_Awesome_Plugin_Publicクラス内で定義されることを期待しています。クラス内でこの関数を作成し、通常どおりに他のすべてを記述します.

リソースと依存関係

次のような外部リソースを使用したい場合 TGMプラグインのアクティブ化, それをincludeフォルダーに追加する必要があります。 TGMは、class-tgm-plugin-activation.phpという名前の単一のファイルであり、load_dependencies()メソッド内のclass-my-awesome-plugin.phpファイルに含める必要があります。

require_once plugin_dir_path(dirname(__FILE__))。 ‘includes / class-tgm-plugin-activation.php’;

概観

すべてのファイル名と機能に混乱していませんか?心配しないでください。すぐに慣れるでしょう。実際、通常は3つのファイルのみを変更します。

  • include / class-my-awesome-plugin.phpは、すべてのフックと依存関係を追加する場所です.
  • public / class-my-awesome-plugin-public.phpは、すべてのパブリック向け機能を追加する場所です.
  • admin / class-my-awesome-plugin-admin.phpは、すべての管理者向け機能が配置される場所です.

最初は、WordPressプラグインのボイラープレートを使用するのは面倒なように思えるかもしれませんが、最終的には効果があります。あなたは1年後に戻って、すべてがどこにあるかを理解します。プラグイン開発は製品全体で標準化され、他の開発者も何が起こっているのかを理解できるようになります.

最後に、シンプルなウィジェットを提供するプラグインがそのようなフレームワークを必要としない場合があることを忘れないでください。 WordPressプラグインのボイラープレートを使用してもプラグインの速度が低下することはありませんが、必要なのが数行のコードだけである場合、プラグインはビューを詰まらせます!

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map