打电话给global$post可以吗;在ajax的循环中,还是有更好的方法来访问当前的post对象?
我会在循环之外,但在相同的范围内进行,以避免重复,但除此之外,答案是:
If it works, then it works, don\'t stress about it,没有一种规范的方法可以为这一切统治它们。
global $post;
工作,还有另一种选择$post = get_post();
但这很少见。大多数人就是这样global $post;
出于习惯。
您还可以通过以下方式完全避免:
if ( get_post_type() === \'foo\' ) {
我认为发生这种情况的原因是,还有其他一些wp魔术在幕后运行,使$post在模板文件中可用,但在ajax中不可用。因此,我添加了global$post;就在我的if语句之前,现在它按预期工作。
不,这个理论是不正确的,post循环在AJAX处理程序中也是一样的
$args = $_REQUEST[\'query\'];
$request_query = new WP_Query($args);
这应该被视为一个主要的安全漏洞,因为现在任何人都可以查询任何内容,并且它们可以触发超级昂贵的查询,从而打击数据库,也就是资源耗尽攻击。白名单您允许的参数及其有效值!