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
*/
问题1:拥有这样结构的插件是否合法/是否受支持:
是。每个目录结构(只要服务器支持)都是合法的。
问题2:如果是这样,wordpress如何确定哪个php文件是主插件文件?
见上文↑
问题3:当PHP代码跨越多个模块时,是否需要使用子目录(如上例中的inc /)?
需求?不,更好阅读:是的。易于维护:也是。
Q4:是的,在主插件目录中最多应该有一个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.
。我建议仅将子文件夹用于大型插件。如果您获得了诸如小部件之类的其他东西,那么您可以为它们使用特定的子文件夹。
最后一句话:不,您发现的内容都是真实的,这些(如我向您展示的内容)仅是建议。