我有一个 限制类别的插件 用户可以在管理员中查看/编辑。所有这些都在WordPress 3.0.1中正常工作,但是当我开始测试3.1时,我注意到Ajax类别过滤器允许您绕过限制。我可以在3.0.1中过滤掉,因为它是通过URL参数提交的。我的麻烦是能够从新的Ajax请求中获取“ CAT”参数。我已经尝试了$ _server ['http_x_requested_with']的测试,但是它没有注册。

我已经在WP-Hackers邮件列表上问了这个问题,但是没有人能给我实际的代码来帮助我的困境。

有帮助吗?

解决方案

为了排除分类法的条款,更好的方法是使用用于执行术语排除的钩子。 list_terms_exclusions

使用可用类别使用 get_terms (get_categories调用get_termsy y yirc),并使用挂钩进行排除 list_terms_exclusions 并且您的代码应按预期工作。

您可以在第1040行中看到我指的钩子。http://core.trac.wordpress.org/browser/trunk/wp-includes/taxonomy.php

笔记: 您的插件在调用时没有消毒回调函数 register_setting, ,如果没有一个,您的选项将无法正确消毒,我强烈建议您声明回调功能并适当地对数据进行消毒(尤其是如果您将保存数据保存到查询中的情况下)。

许可以下: CC-BY-SA归因
scroll top