我正在从头开始编写我的第一个简单插件,因此我正在寻找一些关于在插件中构建类的建议。我将一些基本函数封装在主插件文件中的一个类中,但我想如果在一个文件中包含许多函数,它会变得非常笨拙。
到目前为止,我的插件目录的结构如下所示:
inc
-果心php
-插件设置。php
css
-风格css
lang
插件文件。php
我一直在努力解决的一件事是使用类将插件构造成多个文件。
主插件文件的代码为:
<?php
/**
* Plugin Name: Plugin name
* Plugin URI: http://someurl.com
* Description: Some description
* Version: 1.0
* Author: Me
* Author URI: http://someurl.com
*/
define( \'SBP_DIR\', plugin_dir_path( __FILE__ ) ); // Defining plugin dir path.
/*----------------------------------------------
Including Files
----------------------------------------------*/
include(SBP_DIR_DIR . \'inc/core.php\'); // main plugin functions
include(SBP_DIR_DIR . \'inc/plugin-settings.php\'); // the plugin options page HTML
/*----------------------------------------------
Class Dummy_Class
----------------------------------------------*/
global $sbp_class;
if ( !class_exists("Dummy_Class") ) {
class Dumy_Class {
/*----------------------------------------------
Function Construct
----------------------------------------------*/
function __construct() {
$this->path = plugin_basename(__FILE__);
add_action( \'init\', array( $this, \'init\' ) );
add_action(\'admin_enqueue_scripts\', array( $this, \'enqueue\' ) );
add_filter("plugin_action_links_$this->path", array( $this, \'sbp_settings_link\' ) );
}
/*----------------------------------------------
Function init
----------------------------------------------*/
function init() {
load_plugin_textdomain( \'sb-pack\', false, basename( dirname( __FILE__ ) ) . \'/lang\' ); // load plugin textdomain
}
/*----------------------------------------------
CSS style of the plugin options page
----------------------------------------------*/
function enqueue($hook) {
global $sbp_settings_page;
if ( $hook != $sbp_settings_page ) // load stylesheet only on plugin option page
return;
wp_enqueue_style(\'styles\', plugin_dir_url( __FILE__ ) . \'css/styles.css\');
}
/*----------------------------------------------
Add settings link on plugins page
----------------------------------------------*/
function sbp_settings_link($links) {
$settings_link = \'<a href="options-general.php?page=sbp-options">Settings</a>\';
array_unshift($links, $settings_link);
return $links;
}
} //End class Dummy_Class
$sb_pack = new Dummy_Class; // instantiate the plugin class
} //End if (!class_exists("Dummy_Class"))
我想提一下核心。php文件包含插件的功能,即一些函数。我的问题是:
核心应包括哪些内容。php和插件设置。主插件文件中的php文件我对OOP没有深入的了解,所以我需要一点循序渐进的指导。
如有任何想法,将不胜感激。