WordPress 中的插件管理页面

Plugin Admin Pages in Wordpress

我正在尝试构建我的第一个 WordPress 插件,并且已经使用 add_menu_page() 创建了管理菜单标签,并在我的 functions.php 文件中包含了一个可调用函数。对于我的生活,我似乎无法添加任何 javascript 功能,或 link 到同一插件目录中的外部 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>';
}

这通常是我为管理页面加载 "mark-up" 文件的方式:

首先,将您的管理页面功能注册到 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() 函数加载脚本和样式,根据需要设置页面样式。