【问题标题】:Plugin Admin Pages in WordpressWordpress 中的插件管理页面
【发布时间】:2019-03-07 22:44:29
【问题描述】:

我正在尝试构建我的第一个 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>';
}

【问题讨论】:

  • 关于js,google“admin_enqueue_scripts”。不太确定关于将页面内容链接到外部 php 文件的第二个问题是什么意思,但如果我不得不猜测,这可能会有所帮助:stackoverflow.com/questions/13343761/…
  • 分享您的代码,我们或许可以提供帮助。
  • 感谢您的回复!那不是很清楚,所以我编辑了我的问题。我的意思是在包含页面标记的同一目录中添加指向外部文件的链接。

标签: wordpress menu admin


【解决方案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() 函数加载脚本和样式以根据需要设置页面样式。

【讨论】:

  • 嘿,这是一个很棒的代码。我在尝试加载 admin-markup.php 时遇到了语法错误。里面可以有html标签吗? @xhynk
  • 您绝对可以在 PHP 中使用 HTML 标记,这是 PHP 的一部分,可以使输出复杂的 HTML 变得更容易和更语义化。如果您使用的是 IDE,它应该会告诉您有哪些语法错误以及它们发生在哪一行。开发时也可以开启WP_DEBUG输出到客户端。
猜你喜欢
  • 2017-09-19
  • 2015-02-07
  • 2012-03-05
  • 1970-01-01
  • 2014-08-08
  • 1970-01-01
  • 2011-02-22
  • 2011-06-17
  • 1970-01-01
相关资源
最近更新 更多