仅当 user-role 是订户和网站访问者时显示 (Wordpress)

Show only if user-role is subscriber AND site visitor (Wordpress)

我的 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 代码只显示在站点访问者和用户角色订阅者的 HEAD 部分。我尝试了 'visitor' 但没有成功。

我不知道如何在这种情况下应用“array_diff”在 header 站点访问者和订阅者角色中显示 Adsense 代码?

对于“订阅者”,您可以使用函数 current_user_can

客人可以使用功能is_user_logged_in()

if ( current_user_can( 'subscriber' ) || !is_user_logged_in()) {
           // echo your adsense code
}

如果您使用 Site Kit plugin by Google 插入广告代码,则可以选择将广告片段限制为可以撰写帖子的用户。希望对您有所帮助!