Я захожу в Martech Zone в течение дня, чтобы читать отправленные формы, добавлять и редактировать контент и повышать производительность сайта. Проблема в том, что я не хочу, чтобы это действие искажало мою аналитику или выполняло теги в Диспетчере тегов Google (GTM), например открывало моего чат-бота или определяло местоположение посетителя с помощью службы поиска IP (наш тег чата срабатывает только тогда, когда пользователь находится в Соединенные Штаты).
Узнайте свой логин WordPress с помощью Диспетчера тегов Google
WordPress уже имеет встроенную функциональность для отображения logged-in
класс в вашем теге body, который показывает, вошел ли пользователь в систему или нет. Многие люди используют это в Диспетчере тегов Google, чтобы отключить активацию тегов, таких как теги Google Analytics. Процесс работает путем поиска класса CSS, который автоматически добавляется в тег body вашего сайта WordPress, записи результата в переменную, а затем использования триггера для выполнения определенных тегов.
Вот как установить эту переменную и активировать GTM.
- Добавить переменную который называется ведением журнала с использованием элемента DOM.
- Установите метод выбора на
CSS Selector
- Установите селектор элемента на
body.logged-in
- Установите имя атрибута на
class
- Поддерживать
- Установите метод выбора на
- Добавить триггер который использует зарегистрированную переменную. В этом случае триггер должен срабатывать только тогда, когда пользователь НЕ вошел в систему, поэтому вы можете сделать это, создав триггер для незарегистрированного пользователя.
- Установите тип триггера на DOM ready
- Установите триггер для некоторых событий готовности DOM
- Выберите переменную
Logged-In
и равноnull

Вы также можете установить переменную в не то же самое вы вошли в систему и можете использовать триггер как исключение вместо включения. В любом случае используйте этот триггер для выполнения, обычно вместо этого All Pages
.
Однако этому есть предел. Что делать, если вы используете сайт WordPress, где вы хотите исключить определенный роль от активации тега? В моем случае у меня есть зарегистрированные участники, которые все еще хотят активировать наше местоположение и триггеры чата. С использованием logged-in
методология предотвратит активацию тега для всех зарегистрированных и вошедших в систему пользователей. К сожалению, страницы WordPress не отображают автоматически какие-либо роли в HTML-коде, чтобы вы могли активировать тег. Тем не менее, вы можете добавить его!
Добавьте класс body в WordPress с ролью посетителя.
Точно так же, как WordPress автоматически внедряет класс входа в базовый класс, вы можете добавить роль пользователя в базовый класс. В рамках темы вашего ребенка functions.php
файл, вы можете добавить следующую функцию:
function add_role_to_body_class( $classes ) {
if ( is_user_logged_in() ) {
$current_user = wp_get_current_user();
$user_role = array_shift($current_user->roles);
$classes[] = 'role-' . $user_role;
} else {
$classes[] = 'role-guest';
}
return $classes;
}
add_filter( 'body_class', 'add_role_to_body_class' );
Так что, если вы админ, он будет добавлен <body class="role-administrator"
наряду с другими классами, такими как вход в систему и т. д. И если вы не вошли в систему, функция добавляет воображаемый класс role-guest
.
Определите роль посетителя WordPress в WordPress с помощью Диспетчера тегов Google
В моем случае я хочу исключить активацию некоторых тегов при входе администратора на сайт. Как и в приведенном выше примере, логин работает для переменной и триггера; теперь я могу сделать это с role-administrator
. Вместо указания класса в селекторе элементов я просто передаю все содержимое класса.
- Добавить переменную называется
Body Class
с помощью элемента DOM.- Установите метод выбора на
CSS Selector
- Установите селектор элемента на
body
- Установите имя атрибута на
class
- Поддерживать
- Установите метод выбора на

- Добавить триггер который использует
Body Class
переменная. В этом случае триггер должен срабатывать только тогда, когда пользователь НЕ вошел в систему, поэтому вы можете сделать это, создавIs Administrator
курок.- Установите тип триггера на DOM ready
- Установите триггер для некоторых событий готовности DOM
- Выберите переменную
Body Class
содержитrole-administrator

- Об активации теговдобавить триггер
Is Administrator
ваши исключения. Это гарантирует, что тег никогда не сработает, когда администратор войдет в систему во время просмотра вашего сайта. У меня есть тег на моем сайте, который определяет, находится ли кто-то в основном домене (не перевод), и этот тег НЕ срабатывает, когда администратор входит в систему.

Обновлять: Я обновил эту логику после того, как она была опубликована и отправлена по электронной почте. Захват всего класса тела был гораздо более эффективной переменной, поэтому я мог использовать ее для указания ролей или того, входит ли человек в систему с помощью одной переменной.