请不要在管理/后端中使用get\\u template\\u part()。它是为模板使用而设计的(显示主题,请参见codex), 因此,这旨在用于主题中的模板和模板部分:
函数引用/获取模板部分
将模板部件加载到模板中(页眉、侧栏、页脚除外)。使主题可以轻松地以易于重载的方式重用子主题的代码段。
该函数实际上也包含一般的源代码,但您所经历的(正如John所指出的)可能与范围有关。由于我不知道您的代码,我不能肯定这是否是您面临的问题(可变范围)的确切原因,因此我倾向于在回答中保持简单:
该函数的设计并不是为了替换标准php代码,例如编写管理页面。
所以,除非你真的知道自己在做什么,否则不要在你的管理页面上使用它。
Update:
如果要在查找子主题目录和父主题目录时将php文件加载到全局范围,可以使用一个函数为您搜索文件:
locate_template():
检索存在的最高优先级模板文件的名称。
在TEMPLATEPATH之前的STYLESHEETPATH中进行搜索,以便从父主题继承的主题可以只重载一个文件。
对于给定的示例,包括include(TEMPLATEPATH."sitewideSettings.php");
这可以写为:
include(locate_template(\'sitewideSettings.php\'));
这允许您控制文件包含的位置和方式(include/\\u once;require/\\u cone),并防止在示例中出现范围问题,从而打破NONCE机制。
出现“请重试”消息是因为wp admin无法验证请求,更具体地说是所谓的nonce. 可能有两个原因:请求中没有任何内容(例如,表单没有提供任何内容,或者没有通过管理代码传输或读取get),或者nonce无效。nonce总是代表一个动作链,如果这个链断了,你就会得到这个信息。但这条信息并没有告诉你链条在哪里断了。
管理中的这些错误消息并不总是很有信息性,甚至可能会产生误导(相关:#14060). 要了解这里发生了什么,最有效的方法是在出现错误的系统上进行调试,因为可以非常明确地知道链的哪一部分断开了。
请参阅关于如何为主题或插件创建管理页面的codex,以获取有关nonce、管理页面等的更深入信息。由于某种原因,管理员请求无法验证nonce。