【问题标题】:WordPress Admin Page Scope Problem - Menu Shows, Page Text Won't RenderWordPress 管理员页面范围问题 - 菜单显示,页面文本不会呈现
【发布时间】:2019-03-04 16:37:41
【问题描述】:

Wordpress 5.1,Windows 主机上的 Ubuntu 18.04 VBox

我创建了一个插件“示例管理页面”

我已经显示了菜单项,但页面呈现空白,而不是显示代码中建议的 html“欢迎...”文本。我知道这是一个范围问题,但我不确定如何解决它。 是的,我可以把它全部放在课堂之外并渲染,但使用类应该是一种很好的做法,所以我宁愿这样做。我将不胜感激如何正确进行的方法。

class EAP_Example_Widget {

    function __construct() {
        add_action( 'admin_menu', array($this,'my_admin_menu'));
    }

    function my_admin_menu() {
        add_menu_page( 'Example Admin Page', 'EAP Menu', 'manage_options', 'eap-plugin/eap-admin-page.php', 'eap_admin_page', 'dashicons-tickets', '9999' );
        add_submenu_page( 'eap-plugin/eap-admin-page.php', 'Example Admin Sub Page', 'EAP Sub Menu', 'manage_options', 'eap-plugin/eap-admin-sub-page.php', 'eap_admin_sub_page' ); 
    }

    function eap_admin_page(){
        echo '<h2>Welcome To Example Admin Page</h2>';
    }

    function eap_admin_sub_page(){
        echo '<h2>Welcome To Example Admin Sub Page</h2>';
    }

}

// Setup and initialize the admin page.
$eap_admin_page_startup = new EAP_Example_Widget();

【问题讨论】:

    标签: wordpress class plugins scope


    【解决方案1】:

    这绝对是一个范围问题。

    为了从另一个函数中调用一个函数,我必须自引用 EAP_Example_Widget 类。

    例如,对于可调用函数,不仅仅是“eap_admin_page”,它需要是:

    __CLASS__ .'::eap_admin_page'.
    

    请参阅下面的固定示例。现在可以了。

    class EAP_Example_Widget {
    
        function __construct() {
            add_action( 'admin_menu', array($this,'my_admin_menu'));
        }
    
        function my_admin_menu() {
            add_menu_page( 'Example Admin Page', 'EAP Menu', 'manage_options', 'eap-plugin/eap-admin-page.php', __CLASS__ .'::eap_admin_page', 'dashicons-tickets', '9999' );
            add_submenu_page( 'eap-plugin/eap-admin-page.php', 'Example Admin Sub Page', 'EAP Sub Menu', 'manage_options', 'eap-plugin/eap-admin-sub-page.php', __CLASS__ .'::eap_admin_sub_page' ); 
        }
    
        function eap_admin_page(){
            echo '<h2>Welcome To Example Admin Page</h2>';
        }
    
        function eap_admin_sub_page(){
            echo '<h2>Welcome To Example Admin Sub Page</h2>';
        }
    
    }
    
    // Setup and initialize the admin page.
    $eap_admin_page_startup = new EAP_Example_Widget();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-29
      相关资源
      最近更新 更多