WordPress如何通过条件判断在首页等页面隐藏头部脚本
问题根源
你的条件分支逻辑存在顺序和判断方向错误,现有逻辑刚好把首页、博客主页、普通页面归入了会输出脚本的else分支:
- 第一个
if分支仅匹配「不是首页 && 不是前台首页 && 不是普通页面」的场景,这部分不会输出脚本 - 第二个
elseif分支仅匹配指定ID的单篇文章,这部分也不会输出脚本 - 最后剩下的所有场景(包含首页、前台首页、普通页面、非指定ID的页面等)都会进入
else分支输出脚本,完全不符合你的需求。
修正方案
你要实现的需求是:首页、博客主页、普通页面、指定ID的单篇文章都不加载脚本,其余场景才加载,对应修正后的代码如下:
<?php // 所有不需要加载脚本的场景直接跳过 if( is_home() || is_front_page() || is_page() || is_single( array( 1, '32438', '10506' ) ) ) : // 无输出 else : ?> <script></script> <?php endif; ?>
如果你实际需求是反过来,只在指定ID的单篇文章加载脚本,其他场景都不加载,就用下面的简化写法:
<?php if( is_single( array( 1, '32438', '10506' ) ) ) : ?> <script></script> <?php endif; ?>
注意事项
is_home()对应的是博客文章列表页,is_front_page()对应的是站点前台首页(如果你设置了静态首页,二者是不同的页面),两个条件都保留可以覆盖所有你说的「前台首页、博客主页」场景is_single()里的ID传值数字和字符串格式都可以生效,不需要额外转换
内容的提问来源于stack exchange,提问作者EnmanuelGo
相关产品推荐
相关产品推荐

