在WordPress插件样板插件中扩展类

在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

有人知道如何在这个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_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类扩展主类”有什么用