Wordpress中的插件管理页面

时间:2018-10-02 18:47:01

标签: wordpress menu admin

我正在尝试构建我的第一个WordPress插件,并且已经使用add_menu_page()创建了管理菜单标签,并且在我的functions.php文件中具有可调用函数的内容。为了我的生命,我似乎无法添加任何javascript函数,也无法链接到同一插件目录中的外部php页面。

其他任何人都可以做到吗?

谢谢!

这是一个代码示例。代码有点笨拙,我想知道是否有一种方法可以改善此/

function mt_sublevel_page() {
    echo "<h2>" . __( 'Welcome', 'menu-test' ) . "</h2>";
    echo '<div class="wrap">';
    echo '<input type="button" value="Text Button" onclick="demo()" style="background-color:blue;">';
    echo '</div>';
    echo '<p class="test"></p>';
    echo '<script>';
    echo 'function demo() {var x = "Hello";document.getElementId("test").innerHTML=x;}';
    echo '<script>';
}

1 个答案:

答案 0 :(得分:1)

通常,这是我为管理页面加载“标记”文件的方式:

首先,将您的管理页面功能注册到admin_menu挂钩:

// Standard PHP Structure:
add_action( 'admin_menu', 'register_admin_page' );

// Using a Class Based structure
add_action( 'admin_menu', [$this, 'register_admin_page'] );

然后定义您的管理页面功能:

// Standard PHP Structure
function register_admin_page(){
    add_menu_page( 'My Plugin', 'My Plugin', 'edit_posts', 'my-plugin', 'admin_markup', 'some-dashicon' );
}

// Class Based PHP Structure
public function register_admin_page(){
    add_menu_page( 'My Plugin', 'My Plugin', 'edit_posts', 'my-plugin', [$this, 'admin_markup'], 'some-dashicon' );
}

现在,您可以定义admin_markup函数了:

function admin_markup(){
    require_once dirname(__FILE__).'/admin-markup.php'; 
}

这会导致您出现以下情况:

add_action( 'admin_menu', 'register_admin_page' );
function register_admin_page(){
    add_menu_page( 'My Plugin', 'My Plugin', 'edit_posts', 'my-plugin', 'admin_markup', 'some-dashicon' );
}

function admin_markup(){
    require_once dirname(__FILE__).'/admin-markup.php'; 
}

现在,在admin-markup.php文件中,您可以使用admin_enqueue_scripts()函数来加载脚本和样式以根据需要设置页面样式。