个性化阅读
专注于IT技术分析

在WordPress中进行Ajax调用后,页面条件变为假

我试图避免某些代码显示在特定页面上, 例如标签类别和其他页面。

if( !is_front_page() && !is_search() && !is_page( 'article', 'preview' ) && !is_category() && !is_tax() && !is_tag() ){
//code goes here..
}

当用户登陆页面时, 该条件工作正常。但是这些页面使用ajax来检索帖子, 并且当这种情况发生时, 条件变为false, 页面上显示不必要的代码。

为什么会这样呢?有谁对此有任何想法吗?任何帮助将不胜感激。


#1


你应该在if语句中添加一个附加约束, 以检查该请求是否为ajax请求。并非在每台服务器上都使用此功能, 但是如果你使用的是Apache, 它将为你工作。

if(empty($_SERVER['HTTP_X_REQUESTED_WITH']) && !is_front_page() && !is_search() && !is_page( 'article', 'preview' ) && !is_category() && !is_tax() && !is_tag() ){
 //code here 
}

如果不是ajax请求, 则上述内容仅适用。如果对此php文件发出了ajax请求, 则strtolower($ _ SERVER [‘HTTP_X_REQUESTED_WITH’])==’xmlhttprequest’应该为true, 这就是你如何检查它是否为ajax请求并进行相应处理的方法


#2


你应该获得具有上述条件的Ajax响应数据。

或者, 当你不想显示该代码时, 可以在你的Ajax中传递一个变量(参数), 那段时间将在你的Ajax中传递, 而当Ajax函数在那段时间获得该变量(参数)时, 如果不使用get(empty)参数, 则必须添加上述条件, 然后对所有页面执行。

更好的方法是以某种方式获得对Ajax的响应, 从而获得超出页面状态的条件。

赞(0)
未经允许不得转载:srcmini » 在WordPress中进行Ajax调用后,页面条件变为假

评论 抢沙发

评论前必须登录!