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

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

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

【在WordPress中进行Ajax调用后,页面条件变为假】当用户登陆页面时, 该条件工作正常。但是这些页面使用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的响应, 从而获得超出页面状态的条件。

    推荐阅读