将 PHP 文件添加到 wordpress - Header() 已发送
Posted
技术标签:
【中文标题】将 PHP 文件添加到 wordpress - Header() 已发送【英文标题】:Adding PHP file to wordpress - Header() already sent 【发布时间】:2012-07-06 16:37:56 【问题描述】:几天前,我正在寻找在 wordpress 网站上使用我的自定义 php 的方法,我在这里找到了答案:How to add a php page to Wordpress。 尝试了几个示例,每个示例都运行良好。但后来我想更进一步,在像这样添加的 wordpress 页面中使用 PHP 图像处理。它适用于普通 php 网站(仅使用此代码),但是当我尝试在 worpress 中使用它时出现错误:
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\wordpress\wp-content\themes\twentyeleven\header.php:13) in C:\xampp\htdocs\wordpress\wp-content\themes\twentyeleven\mynewsite.php on line 26
我尝试使用的代码是:
<?php
$dest = imagecreatefrompng('image1.png');
$src = imagecreatefromjpeg('image2.jpg');
imagealphablending($dest, false);
imagesavealpha($dest, true);
imagecopymerge($dest, $src, 10, 9, 0, 0, 181, 180, 100); //putting one image on top of other
header('Content-Type: image/png');
imagepng($dest);
imagedestroy($dest);
imagedestroy($src);
?>
我知道问题是我想在这里发送标头,但我不知道如何解决它。 我尝试将此标题移动到文件顶部,但整个 wopress 网站无法加载。
header('Content-Type: image/png');
get_header(); //<-- part of wordpress template, cant get rid of it, cuz it ruins whole site look.
所以看起来像 get_header();在某种程度上是“问题”。 尝试使用 ob_start()、flush、clean 等,但随后我得到了我想要的图像,而无需加载 worpress 站点。我用完了所有选项,但没有一个能解决我的问题。
我的问题是:如何发送此标头以使其正常工作,因为没有它我会看到一些奇怪的符号而不是 png 图像(就像我会用记事本打开 png 图像)
任何帮助表示赞赏。
【问题讨论】:
【参考方案1】:好的,找到了解决方案。发布答案,因为它可能在未来对其他人有用。
所以我将使用简单的词,这让我明白这一点。header('Content-Type: image/png');
使整个网站被“视为图像”。因此,当我什至找到将标题放入 WordPress 文件的位置时,它仍然没有显示任何结果。要解决这个问题,只需创建另一个名为 image.php
的文件并将 PHP GD 代码放在那里。
$dest = imagecreatefrompng('image1.png');
$src = imagecreatefromjpeg('image2.jpg');
imagealphablending($dest, false);
imagesavealpha($dest, true);
imagecopymerge($dest, $src, 10, 9, 0, 0, 181, 180, 100); //putting one image on top of other
header('Content-Type: image/png');
imagepng($dest);
imagedestroy($dest);
imagedestroy($src);
当然在<?php ?>
标签和WordPress 页面中,您要显示它的地方使用<img src = "image.php">
。这将消除标题的所有错误,并且还将显示此 PHP 代码已创建的图像。
【讨论】:
【参考方案2】:当我在结束 php 标记“?>”之后有一个空格/换行符时遇到了这个问题,我从所有文件中删除了它,它对我有用。很奇怪,但它起作用了。
【讨论】:
不幸的是,我的情况并非如此。好吧,我的文件中没有空格/换行符,但是不可能搜索所有 wordpress 文件。以上是关于将 PHP 文件添加到 wordpress - Header() 已发送的主要内容,如果未能解决你的问题,请参考以下文章
PHP Wordpress - 将CSS文件添加到样式Visual Editor中
Wordpress / WooCommerce wp_localize_script 将 php 变量日期添加到 javascript