仅在用户角色是订阅者和站点访问者时显示(Wordpress)

问题描述 投票:0回答:2

我对我的 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 代码?

php wordpress intersection adsense user-roles
2个回答
0
投票

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

对于客人,您可以使用函数 is_user_logged_in()

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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.