我在一个临时站点上使用Yoast,我希望有一个指向主域的规范URL。
这样就可以登台了。无论什么com使用canonical,无论什么。com公司
我正在使用wpseo_canonical
滤器
add_filter(\'wpseo_canonical\', \'force_canonical_domain_replace\');
其中,force\\u canonical\\u domain\\u replace()进行替换。它工作得很好。
我还将meta robots标记设置为noindex,nofollow。正在执行:
add_filter( \'wpseo_robots\', function( $robots ) {
return \'noindex, nofollow\';
} );
但Yoast似乎自动删除了规范标记
when it detects noindex in the meta robots content. 我怎样才能防止这种情况?
我就是这样做的:
// Replace domain for any URL
add_filter(\'wpseo_canonical\', \'force_canonical_domain_replace\');
function force_canonical_domain_replace($url){
$current_site_domain = whatever_get_current_domain();
if(\'whatever.com\' == $current_site_domain){
return $url;
}
// Replace current domain with whatever.com in all urls
return str_replace($current_site_domain, \'whatever.com\', $url);
}
// Make sure that meta robots uses noindex, nofollow if we are not in whatever.com
add_filter( \'wpseo_robots\', function( $robots ) {
if(\'whatever.com\' == whatever_get_current_domain()){
return $robots;
}
// Replace string entirely to avoid issues
return \'index, follow\';
} );
// Helper function to safely get the current domain
function whatever_get_current_domain(){
$parsed = parse_url(home_url());
return $parsed[\'host\'];
}