【问题标题】:Including a PHP-file containing form in WordPress widget在 WordPress 小部件中包含包含表单的 PHP 文件
【发布时间】:2013-06-24 17:39:42
【问题描述】:

我目前正在开发一个网站,我需要一个小部件来显示即将到来的比赛。该网站是为一个足球队。因此,我创建了一个插件来创建自定义帖子类型和小部件。一切都运行良好,但由于我不喜欢将我的 PHP 代码与 HTML 混淆,我想我会在插件目录中的另一个文件中包含小部件设置。尽管包含返回 bool(true),但小部件表单中没有显示任何内容。

这是我用来包含文件的代码:

public function form($instance){
    require_once($this->plugin_directory.'/views/widget-form.php');
}

变量$this->plugin目录在构造函数中定义,指向正确的路径。

这是包含文件中的 html 代码,它很简短,但只是为了测试。无论我在那里输入什么,它都会返回空白。

<input type="text" name="title" value="Hello World!" />

知道为什么这种情况不断发生,或者 WordPress 不支持在这样的地方加载额外的文件吗?我可以只在插件文件中包含我的 html,但我更喜欢保持 PHP 干净,而不是与 HTML 和/或 CSS、JS 等杂乱无章。

如果有人能帮我解决这个问题,我将不胜感激! :)

提前致谢, 乔纳森

【问题讨论】:

  • 您是否尝试过从 ypur 插件创建简码,然后将简码加载到小部件中?在此处阅读有关短代码的更多信息codex.wordpress.org/Shortcode_API

标签: php widget wordpress


【解决方案1】:

我知道您提到您的 $this->plugin_directory 在构造函数中设置为正确路径,您是否测试过 this 的输出和/或它设置为绝对路径还是相对路径?

过去我遇到过插件文件无法正确读取相对路径的问题,因此我不得不切换到绝对路径,反之亦然。

【讨论】:

  • @user2166894:感谢您的回答。我正在使用我包含的文件的绝对路径。这里是:“/home/a/USERNAME/www/demo/2013/06/bois/wp-content/plugins/lb-widget-matches”。用户名被替换以保护域。由于该函数在我转储它时返回 boolean(true),所以我不知道该怎么做。
  • 嗯好吧 - 你用来调用函数的代码是什么?如果您使用 var_dump 函数,它会返回任何内容还是仅返回“空白”?如果将 require_once 从函数中取出并将其插入 html 段的 php 标记中会发生什么? - 我想知道插件设置中的函数构造是否存在问题或冲突。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-13
  • 2013-10-11
  • 2011-08-02
  • 1970-01-01
  • 2020-05-23
  • 2012-02-13
  • 1970-01-01
相关资源
最近更新 更多