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:その場合、wordpressはどのphpファイルがメインのプラグインファイルであるかをどのように決定しますか?
上記を参照してください↑
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
そして settings_extended.class.php
my_class_prefix_settings
そして my_class_prefix_settings_extended
また、js/css/img
このような名前のディレクトリにすべてのファイルを保存するなど、いくつかの基本的なディレクトリ構成も行います。
一部の人々は(より大きなプラグインのために)という名前のフォルダを使用しますinc/includes/assets/extensions/lib/etc.
。大きなプラグインにのみサブフォルダーを使用することをお勧めします。ウィジェットなどの追加のものがある場合は、それらに特定のサブフォルダーを使用できます。
最後の言葉:いいえ、あなたが見つけたものは真実ではありません。それら(私があなたに示したもののように)は単なる推奨です。