my theme breaks WP export

时间:2011-07-07 作者:mikkelbreum

我知道这是一个模糊的问题,如果你有心情的话,请花点时间在上面,我不需要因为没有更准确的回答而被激怒。

我正在开发一个主题,由于某种原因,它破坏了WordPress的导出功能。

我并没有要求任何人来解决我的问题,但在花了几个小时的时间之后,我想问一下,是否有人认识到这个问题,并会给我一个提示,告诉我应该朝什么方向寻找问题。

不知何故,我觉得这与临时检查失败有关,但不确定。。

无论如何,问题是,如果我单击页面中的导出按钮

http://www.myserver.com/wp-admin/export.php
然后,我会看到WP故障通知屏幕。我要访问的url是:

http://www.myserver.com/wp-admin/export.php?download=true&content=all&cat=0&post_author=0&post_start_date=0&post_end_date=0&post_status=0&page_author=0&page_start_date=0&page_end_date=0&page_status=0&submit=Download+Export+File
页面上写着:

是否确实要执行此操作?请重试。

我想这一定是来自wp-includes/functions中的wp\\u explain\\u nonce()。php

如果我换到210主题,问题就没有了。回到我的主题,它就在那里,所以它一定是主题。。

欢迎提供任何关于在我的主题中查找错误的位置或方法的建议。

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

这里调试的基本思想是,主题显然会影响一些它完全不应该影响的东西。要么事情是以错误的方式做的,要么是在错误的地方做的。

检查主题是否未直接在中运行任何功能functions.php.

检查theme的所有功能是否在适当的挂钩上运行。

对于前端和后端都使用的挂钩,有条件地排除了本不应该在后端使用的主题功能。

SO网友:mikkelbreum

问题是,我的一个主题管理页面中有以下代码:

if (isset($_GET[\'download\']))
    check_admin_referer(\'mytheme_options_storage\');
它由导出请求触发,因为它还设置了$\\u GET[\'download\']var。

我想出的解决方案是确保我的检查只在请求相关页面时运行,并且我将变量更改为唯一的:

if (isset($_GET[\'mytheme_download\']))
    check_admin_referer(\'mytheme_options_storage\');

结束

相关推荐

为什么我需要在使用wp_nonce_field()之前检查它是否存在

我真的不明白为什么在运行nonce函数之前要检查它是否存在。。。if ( function_exists(\'wp_nonce_field\') ) wp_nonce_field(\'gmp_nonce_check\'); 我理解它的向后兼容性。。。还要注意您是如何验证wp_nonce_field 函数在尝试调用它以实现向后兼容性之前已存在但如果我在邮件背面检查,它会不会破裂if ( isset($_POST[\'submit\']) ) { check_a