WordPress安装-当运行简单的php脚本时,“在标题之前结束脚本输出”

时间:2016-04-19 作者:Solflux

我为客户端安装了多站点Wordpress,对于其中一个表单,我需要进行一些手动数据库交互,因为该功能是独立的。

然而,我遇到的问题是,根据日志,我上传到网站上任何地方的任何简单PHP脚本都会抛出“在头之前输出脚本结束”错误。

该脚本实际上只回显“hello world”,权限设置为755。

这个问题是否与Wordpress有关?否则,整个网站都可以正常工作。至少可以这么说,这很令人困惑

我是否需要在开头的文件中包含特定于Wordpress的内容?

没有可共享的代码-有一个html表单:

<form action="<?php bloginfo(\'template_directory\') ?>/add-calories.php" method="get" id="add-calories">
    <input class="required" type="text" name="item" placeholder="Food or Drink">
    <input class="required" type="number" name="calories" placeholder="Calories">
    <input class="required" type="time" name="time" placeholder="Time">
    <input class="required" type="date" name="date" placeholder="Date">
    <button type="submit">Add to diary<i class="fa fa-chevron-right"></i></button>
</form>
最初,此表单指向的php脚本回显了$\\u POST变量,但目前它只是读取:

<?php
    echo "hello world!";
?>
我已尝试检查发送的邮件头headers_sent(), 但这似乎也没什么帮助。。。

1 个回复
SO网友:bravokeyl

不知道使用自定义脚本究竟要完成什么。您可以使用短代码、页面模板和插件以WP的方式有效地做到这一点。

如果您不想这样做,只想将脚本放在活动主题库目录中。我建议的一种方法是:

假设我们有两个php文件aform.php (实际表单页)和add-calories.php (Form action page)在active theme base目录中。

您可以将其重命名为page-aform.phppage-add-calories.php 并创建两个名称相同的页面aformadd-calories. 然后这些脚本可以在http://example.com/aformhttp://example.com/add-calories(请确保将表单操作更改为req url)。

您可以查看有关模板层次结构的更多信息here.无论我们在主题目录中放置什么,都会经历这个循环。

如果你不想那样做http://example.com/aform.php 然后将php脚本文件放在WP安装的根目录中(记住,如果这样做,您将无法访问WP函数)

相关推荐

Repeated headers in wp_mail

由于标记原因,我多次将自定义标头传递给wp_mail(), 但实际上只有头的最后一个实例被发送。看来wp_mail() 正在筛选自定义标头,以便只发送唯一的标头。我相信这是因为wp_mail 函数定义(wp includes/pluggable.php,第173行)自定义头通过添加到关联数组(第303行)进行处理: $headers[trim( $name )] = trim( $content ); 有没有一种方法可以在不修改wp_mail 功能本身?WP Codex for wp_mai