在WordPress插件样板插件中扩展类
有人知道如何在这个WP样板插件中正确扩展主管理类吗 简化代码: admin/class-plugin-name-admin.php在WordPress插件样板插件中扩展类,wordpress,class,extend,boilerplate,Wordpress,Class,Extend,Boilerplate,有人知道如何在这个WP样板插件中正确扩展主管理类吗 简化代码: admin/class-plugin-name-admin.php class Plugin_Name_Admin { ... } (自定义)扩展类: admin/class-plugin-name-admin-custom.php if ( ! defined( 'ABSPATH' ) ) exit; if( ! class_exists('Plugin_Name_Admin') ) { require
class Plugin_Name_Admin { ... }
(自定义)扩展类:
admin/class-plugin-name-admin-custom.php
if ( ! defined( 'ABSPATH' ) ) exit;
if( ! class_exists('Plugin_Name_Admin') ) {
require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-plugin-name-admin.php';
}
class Plugin_Name_Admin_Fields extends Plugin_Name_Admin {
// as a test I simply added an admin link
public function books_register_ref_page() {
add_submenu_page(
'edit.php?post_type=books',
__( 'Books Shortcode Reference', 'textdomain' ),
__( 'Shortcode Reference', 'textdomain' ),
'manage_options',
'books-shortcode-ref',
'books_ref_page_callback'
);
}
}
$fields = new Plugin_Name_Admin_Fields();
然后在里面
includes/class-plugin-name.php
我希望我能用下面的钩子
$plugin_admin = new Plugin_Name_Admin( $this->get_plugin_name(), $this->get_version() );
$this->loader->add_action( 'admin_menu', $plugin_admin, 'books_register_ref_page' );
但我却犯了几个错误
call_user_func_array() expects parameter 1 to be a valid callback, class 'Plugin_Name_Admin' does not have a method 'books_register_ref_page' in...
我知道我可以用这个来解决这个问题:
$plugin_extended = new Plugin_Name_Admin_Fields( $this->get_plugin_name(), $this->get_version() );
$this->loader->add_action( 'admin_menu', $plugin_extended, 'books_register_ref_page' );
问题是,首先我是否正确理解了“classx扩展主类”
?我的目标是不要在
class Plugin_Name_Admin { ... }
相反,我想将一些特定的代码放在一个不同的类中,该类扩展了主插件名称管理类
如果我在主类(Plugin\u Name\u Admin
)中有一个函数需要扩展类中的代码,那么它应该可以在不重新定义扩展类的情况下立即运行。否则,“X类扩展主类”有什么用