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

时间:2013-10-10 22:36:00

标签: php wordpress iframe plugins

我正在为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');
}
?>

3 个答案:

答案 0 :(得分:2)

不确定是否修复此问题,但您需要更正此功能:

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>';
}

当你应该有单引号(')

时,字符串周围有双引号(“)

答案 1 :(得分:1)

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

答案 2 :(得分:0)

如果其他人对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核心的一部分。

关于钩子:Plugin API/Hooks
关于admin_menu hook:Plugin API/Action Reference/admin menu

所以,在你的插件的末尾添加一个这样的简单钩子:

add_action('admin_menu', 'scheduleAddMenu');

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