我对我的 WordPress 网站的以下代码有点困惑:
<?php
$user = wp_get_current_user();
$allowed_roles = array('subscriber', 'visitor');
if ( array_intersect($allowed_roles, $user->roles ) ) echo '<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-XXXXXXXXXXXXXXX" crossorigin="anonymous"></script>' ?>
我希望 Adsense 代码仅显示在网站访问者和用户角色 SUBSCRIBER 的 HEAD 部分。我尝试了“访客”,但没有成功。
我不知道在这种情况下如何应用“array_diff”来在 SITE VISITORS 和 SUBSCRIBER 角色的标头中显示 Adsense 代码?
对于“订阅者”,您可以使用函数 current_user_can
对于客人,您可以使用函数 is_user_logged_in()
if ( current_user_can( 'subscriber' ) || !is_user_logged_in()) {
// echo your adsense code
}
如果您使用 Google 的 Site Kit 插件 插入广告代码,则可以选择将广告代码段限制为可以撰写帖子的用户。希望这有帮助!