如何在WordPress中为指定ID的内容设置自定义robots meta标签
问题原因
你现有代码不生效的核心原因是is_single()函数仅适配WordPress默认的文章(post)类型,无法匹配页面(page)类型,指定ID的页面不会触发规则。同时如果没有指定过滤器优先级,自定义规则可能会被其他主题、插件的robots修改逻辑覆盖。
可用实现代码
function wporg_wp_robots_add_follow( $robots ) { // 此处修改为你需要指定的文章/页面ID列表 $target_id_list = array(28, 29, 30); // 同时匹配指定ID的文章和页面 if ( is_single($target_id_list) || is_page($target_id_list) ) { unset( $robots['max-image-preview'] ); $robots['noindex'] = true; $robots['nofollow'] = true; } return $robots; } // 设置较高的优先级99,确保规则不会被其他逻辑覆盖 add_filter( 'wp_robots', 'wporg_wp_robots_add_follow', 99 );
验证与调整说明
- 修改代码后清空全站缓存(页面缓存、对象缓存),再访问对应页面查看网页源码的head区域,确认robots meta标签输出符合预期
- 如果需要对自定义文章类型生效,可以在条件判断中追加
|| is_singular('自定义文章类型别名', $target_id_list) - 现有unset逻辑已经可以实现移除
max-image-preview属性的需求
内容的提问来源于stack exchange,提问作者Omar Giancarlo
相关产品推荐
相关产品推荐

