WordPress中is_page()针对指定页面ID不输出内容问题排查
代码不生效的常见原因及修复方案
- 执行时机错误(最常见原因)
你直接把输出代码写在functions.php文件末尾是不会自动在前端页面输出的,functions.php的作用是加载主题功能,所有前端输出逻辑必须挂载到WordPress提供的对应钩子上才能执行。如果你要把自定义内容插入到页面正文里,推荐挂载到the_content过滤器,示例代码如下:
add_filter('the_content', 'insert_custom_test_content'); function insert_custom_test_content($original_content) { // 仅在指定ID的页面、且是主查询的场景下插入内容 if (is_page([96,98,61]) && is_main_query()) { $custom_html = '<div class="test"><h2>test content</h2></div>'; // 内容放在正文末尾,要放开头就改成 $custom_html . $original_content $original_content = $original_content . $custom_html; } return $original_content; }
如果要把内容放在页头、页脚位置,可以分别挂载到wp_head、wp_footer动作钩子。
判断写法不严谨
你的is_page判断多ID的写法可以简化,直接传ID数组即可,不需要写多个||判断;同时ID传整数比传字符串更稳妥,避免部分环境下类型匹配出错。缓存未清理
如果你开启了页面缓存、插件缓存、CDN缓存,修改代码后需要清空所有缓存再访问测试,否则看到的是之前的缓存页面,自然不会显示新添加的内容。子主题未正常启用
确认后台「外观-主题」中激活的就是你修改的那个子主题,不要误改了未激活的主题文件。代码冲突
可以临时停用其他自定义代码、非必要插件,测试代码是否能正常运行,排除和其他功能的冲突。
内容的提问来源于stack exchange,提问作者dan-wearebeard
相关产品推荐
相关产品推荐

