基本的なプラグインの概念がわかります。私は プラグインを書く に関するコーデックスの記事を読みました。
その記事は「メインプラグインファイル」について述べています。
Wordpressはどのように「メインプラグインファイル」を決定しますか?
Q1:
このような構造のプラグインを持つことは合法的/支持的です:
?
Q2:
もしそうなら、どのphpファイルがメインプラグインファイルであるかWordpressはどのように判断しますか?
「コードをこのように構成する」という推奨事項を見ました。
Q3:
PHPコードが複数のモジュールにわたる場合、サブディレクトリの使用(上記の例のinc/
のような)は必須ですか?
Q4:
メインプラグインディレクトリに最大1つのphpファイルがあるはずですか?
ありがとう。
Wordpressはどのように「メインプラグインファイル」を決定しますか?
プラグインヘッダのコメントが含まれているのは、プラグイン内のファイルです。
/**
* Plugin Name: A fresh example
* Plugin URI: http://example.com
* Description: Foo makes a bar
* Version: 2012-06-14.1426
* Author: John Doe
* Author URI: http://example.com
* TextDomain: your_textdomain
* License: MIT
* LicenseURI: http://www.opensource.org/licenses/mit-license.php
*/
Q1:このような構造のプラグインを持つことは合法的/支持的ですか?
はい。 (サーバーでサポートされている限り)すべてのディレクトリ構造は有効です。
Q2:もしそうなら、どのphpファイルがメインプラグインファイルであるかWordpressはどのように判断しますか?
↑上を見てください
Q3:PHPコードが複数のモジュールにまたがる場合、サブディレクトリ(上の例のinc /のように)を使用する必要はありますか?
要件?いいえ。読みやすく:はい。保守がより簡単:もちろんそうです。
Q4:メインプラグインディレクトリに最大1つのphpファイルがあるべきというのは本当ですか?
いいえ。
ファイルやディレクトリを完全に整理する方法は、あなた、あなたの個人的な好み、そして他にはありません。あなたが保守しやすくし、他の開発者があなたのコードをステップスルーするのをより簡単にしたいなら、あなたはある種のファイル/ディレクトリ編成を使うべきです。
自分でクラスを取得したとき、私は個人的に.class.php
を拡張子として追加します。私も自分のファイルにクラスとまったく同じ名前を付けています。その理由は簡単です。私の「メインプラグインファイル」 - これは私のbootstrap
クラスです。
// inside my PREFIX_bootstrap class:
public static $includes = array(
'settings' => false // Parent class - no need to hook
,'settings_extended' => true // Extending class - hooks static init() on `init` hook
);
public function construct()
{
// The prefix for every class in my plugin
$prefix = 'my_class_prefix_';
foreach ( $this->files as $handle => $hook )
{
require_once plugin_dir_path( __FILE__ )."{$handle}.class.php";
if ( ! $hook )
continue;
$class = $prefix.$handle;
class_exists( $class ) AND add_action( 'init', array( $class, 'init' ), 1 );
}
}
これは私のクラスとファイルが次のように命名されることを意味します:
settings.class.php
AND settings_extended.class.php
my_class_prefix_settings
AND my_class_prefix_settings_extended
このような名前のディレクトリにすべてのjs/css/img
ファイルを格納するなど、基本的なディレクトリ構成も行います。
一部の人々はinc/includes/assets/extensions/lib/etc.
という名前の(より大きいプラグイン用)フォルダを使用します。大きなプラグインにのみサブフォルダを使用することをお勧めします。あなたがウィジェットなどのような追加のものを手に入れたなら、あなたはそれらのために特定のサブフォルダを使うことができます。
最後の言葉:いいえ、見つけたものは何もありません真、それら(私のようなもの)あなたに示した)は推奨事項です。