使用iframe创建一个简单的Wordpress插件页面



我正在为Wordpress创建一个插件页面。此插件页面包含一个 iframe。但是你建议的 php 方法(而不是 iframe html 方法)也会很好。

问题是此插件页面没有响应。因为此插件页面尚未创建自己的管理菜单。这个插件页面有什么问题?

这是代码:

<?php
/*
Plugin Name: Leo
Plugin URI: http://www.example.com
Description: Blabla
Author: Leo
Version: 1.1
Author URI: http://www.example.com
function schedule() {
  ?>
    <h1>schedule</h1>
    <a href="/wp-admin/admin.php?page=schedulesite">Show schedule</a><br />
  <?PHP
}
function schedulesite() {
  echo "<iframe style="width:100%;height:800px;border=0;"
src="http://www.example.com/schedule.php"></iframe>";
}

function scheduleAddMenu() {
  add_menu_page('schedule', 'schedule', 10, __FILE__, 'schedule');
  add_submenu_page(__FILE__, 'Show schedule', 'Show schedule', 10, 'schedulesite', 'schedulesite');
}
?>

不确定是否修复了此问题,但您需要更正此函数:

function schedulesite() {
  echo "<iframe style="width:100%;height:800px;border=0;"
src="http://www.example.com/schedule.php"></iframe>";
}

将其更改为:

function schedulesite() {
  echo '<iframe style="width:100%;height:800px;border=0;"
src="http://www.example.com/schedule.php"></iframe>';
}

字符串周围有双引号 ("),而您应该使用单引号 (')

你的

函数scheduleAddMenu()永远不会被调用。您只需添加一个语句即可在文件末尾调用它。

如果其他人对 OP 有同样的怀疑,请按照以下步骤操作。

您的文件中有一些拼写错误。
首先,查看标题。您没有关闭注释块。在标头末尾添加一个简单的*/。它像:

/*
Plugin Name: Leo
Plugin URI: http://www.example.com
Description: Blabla
Author: Leo
Version: 1.1
Author URI: http://www.example.com
*/

其次,在函数schedule()中,从 href 属性中的 ulr 中删除/wp-admin/。喜欢这个:

function schedule() {   
  ?>
    <h1>schedule</h1>
    <a href="admin.php?page=schedulesite">Show schedule</a><br/>
  <?php
}

第三,在函数schedulesite()中,在双引号前添加转义字符。喜欢这个:

function schedulesite() {
  echo "<iframe style="width:100%;height:800px;border=0;"
src="http://www.example.com/schedule.php"></iframe>";
}

第四,也是最重要的一点,你需要给menu_admin一个钩子。钩子是整个WordPress核心的一部分。

关于钩子:插件 API/钩子
关于admin_menu钩子:插件 API/操作参考/管理菜单

因此,在插件的末尾添加一个简单的钩子,如下所示:

add_action('admin_menu', 'scheduleAddMenu');

您的插件将能够工作!
注意:也许,您需要转到插件页面并激活您的插件!

相关内容

最新更新