【问题标题】:Create a simple Wordpress plugin page with iframe?使用 iframe 创建一个简单的 Wordpress 插件页面?
【发布时间】:2013-10-10 22:35:59
【问题描述】:

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

【问题讨论】:

  • 所以问题是关于管理菜单,而不是关于 iframe?

标签: php wordpress iframe plugins


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    你的函数scheduleAddMenu() 永远不会被调用。您可以在文件末尾添加一条语句来调用它。

    【讨论】:

      【解决方案3】:

      如果其他人对 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钩子:Plugin API/Action Reference/admin menu

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

      add_action('admin_menu', 'scheduleAddMenu');
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-15
        • 2023-03-23
        • 2013-03-03
        • 1970-01-01
        • 1970-01-01
        • 2016-08-26
        • 2017-02-14
        • 2013-08-15
        相关资源
        最近更新 更多