Wordpress在激活插件时添加菜单页面

时间:2017-05-25 17:32:44

标签: php wordpress plugins

我正在为wordpress制作自定义插件,我需要在管理菜单中创建一个页面。我已经有一个名为mailing_list.php的文件,其中包含以下代码:

function jps_mail_list_page_entry() {
add_menu_page(
    __('JPS Mailing List'),
    'JPS Mailing List',
    'manage_options',
    'jpsNews_mailinglist',
    'jpsNews_mailing_list',
    'dashicons-email'
);
}
add_action('admin_menu', 'jps_mail_list_page_entry');


function jpsNews_mailing_list() {
    echo 'hello';
}

现在,在插件页面中我有这个:

function jpsNews_activate_plugin() {
    include_once(plugin_dir_path(__FILE__).'pages/mailing-list.php');
}
register_activation_hook(__FILE__,'jpsNews_activate_plugin');

它不能正常工作,甚至可以像这样做吗?我怎么能这样做?

提前感谢。

2 个答案:

答案 0 :(得分:0)

我不确定你是否有意添加了echo'hello'的函数,但是这将在插件页面的内容区域中回显你好。

您的邮件列表.php

function jps_mail_list_page_entry() {
   add_menu_page(
        __('JPS Mailing List', 'jpsNews_mailinglist' ),
        'JPS Mailing List',
        'manage_options',
        'jpsNews_mailinglist',
        'jpsNews_mailing_list',
        'dashicons-email'
   );
}
add_action('admin_menu', 'jps_mail_list_page_entry');

对于插件页面,您只需执行以下操作:

include_once(plugin_dir_path(__FILE__).'/pages/mailing-list.php');

答案 1 :(得分:0)

让它发挥作用。事实证明,添加页面的功能必须在其他功能之外。只需将主题放在激活钩子之外的脚本末尾,就可以了。

// DISPLAY PAGES AND SUBPAGES
function jps_mail_list_page_entry() {
    add_menu_page(
        __('JPS Mailing List'),
        'JPS Mailing List',
        'manage_options',
        'jpsNews_mailinglist',
        'jpsNews_mailing_list',
       'dashicons-email'
    );
}
add_action('admin_menu', 'jps_mail_list_page_entry');


function jpsNews_mailing_list() {
    include_once(plugin_dir_path( __FILE__ ) . 'pages/mailing-list.php');
}

无论如何,谢谢=)