我在一个Woocommerce网站上工作,我有多种产品类型:simple\\u product、enviso\\u group\\u offer和enviso\\u group\\u ticket。所有这些类型都只是我Woocommerce中的产品。
否我只想将noindex、nofollow meta标记添加到enviso_group_ticket 产品。
<meta name=”robots” content=”noindex,nofollow”/>
我如何才能做到这一点?当我使用SEO插件Yoast时,我只能针对所有产品,而不是特定的产品类型。
目前,我已经用以下代码完成了这项工作,但我觉得这不是正确的方式:
$product_type = get_the_terms( $product_id,\'product_type\')[0]->slug;
if($product_type == "enviso_group_ticket") {
?>
<script>
jQuery(function ($) {
$(\'head\').append(\'<meta name=”robots” content=”noindex,nofollow”/>\');
})
</script>
<?php
}
这可以用Wordpress挂钩来完成吗?还是应该采取不同的做法?我知道我可以通过手动添加每个enviso\\u group\\u票证的noindex和nofollow来实现它,但我想自动强制它。
谢谢
SO网友:Ivan Shatsky
您可以尝试wp_head
挂钩:
add_action( \'wp_head\', \'check_for_enviso_group_ticket\' );
function check_for_enviso_group_ticket() {
if ( is_product() && ( \'enviso_group_ticket\' == get_the_terms( get_the_ID(), \'product_type\' )[0]->slug ) ) {
echo \'<meta name="robots" content="noindex,nofollow"/>\', PHP_EOL;
}
}
或者,如果WooCommerce被禁用
is_product()
未定义函数:
add_action( \'wp_head\', \'check_for_enviso_group_ticket\' );
function check_for_enviso_group_ticket() {
if ( is_singular( array( \'product\' ) ) && ( \'enviso_group_ticket\' == get_the_terms( get_the_ID(), \'product_type\' )[0]->slug ) ) {
echo \'<meta name="robots" content="noindex,nofollow"/>\', PHP_EOL;
}
}