激活时插件错误-中断页面编码并打印插件php文件的代码

时间:2014-09-04 作者:Ihor Vorotnov

我有WordPress多站点安装,一切正常。在我的本地服务器上开发了一个自定义pugin(与Nginx、PHP、MySQL、Memcached的配置相同,唯一的区别是本地操作系统-Windows 7与服务器上的Ubuntu 14.04 LTS),它运行得很好。插件处理自定义前端重新注册、登录、密码重置和用户激活、自定义配置文件页面和配置文件编辑(配置文件是带有一些自定义分类的自定义帖子类型)。所有表单都通过ajax提交。一切都在本地运行。

当我尝试在服务器上激活插件时,它会激活,但会完全弄乱西里尔文编码,并从页面顶部(前端和后端)的插件文件中打印一些代码。

尝试禁用所有插件和主题,还原为默认值。我甚至切换到新的空数据库,再次安装网络,并在新安装时激活。同样的错误。

我的一个文件中也有此功能:

add_action( \'init\', \'feup_output_buffer\' );
function feup_output_buffer() {

    ob_start();

}
所以它不能是“header ready sent”问题(如果是,它将抛出一个php警告)。调试已打开,没有php错误、警告或通知。有什么想法吗?

这是截图

enter image description here

2 个回复
最合适的回答,由SO网友:Ihor Vorotnov 整理而成

尝试了一切,最终从头开始重新构建插件,并将其拆分为几个较小的插件。逐个安装并激活,问题已修复。现在一切都正常了。

SO网友:SergeyBiryukov

如果其他人偶然发现此线程,则问题可能是由使用PHP引起的short open tag feature (<? ?> vs。<?php ?>), 鉴于short_open_tag 已在服务器上禁用指令。

结束

相关推荐

Creating custom login errors

我希望能够创建自定义登录错误。例如,如果用户未登录就访问了受限区域,那么我将重定向到wp-login.php?ref=access 我想输出Restricted area, please login to continue. 或者类似的东西。你知道怎么做吗。我发现有过滤器login_errors 但是我在出现的代码中找不到其他地方,除了登录页面本身。最后,我真的不想为了做到这一点而改变任何核心文件。我花费了大量的时间和精力来确保wordpress的核心完全没有受到影响,以便我可以升级它。有人有什么想法吗?