Я решил поделиться простым JavaScript-скриптом для скрытия определённых пользователей из списка «Пользователи». Думаю, если реализовать это через плагин, всё будет гораздо элегантнее, но я пока не решаюсь на такой шаг! Также стоит отметить, что это нужно настраивать для каждой темы отдельно, и данный код жёстко привязан к теме «Light» (Светлая)! Однако общие принципы применимы к любой теме.
Предположим, у вас есть пользователи с именами james-admin и another-admin, и вы не хотите, чтобы они были видны всем пользователям. Просто добавьте следующий пользовательский скрипт в настройку </body> (Настройки → Настроить → Темы → Light → </body>):
<script type="text/javascript">
// Скрытые пользователи
let hidden_users = [ "james-admin", "another-admin" ];
// При загрузке страницы через AJAX
$( document ).ajaxComplete( function( event, xhr, settings ) {
// Проверка: находится ли страница на списке пользователей
if ( settings.url.startsWith("/directory_items?") ) {
// Находим все контейнеры со скрытыми пользователями
hidden_users.forEach(function ( hidden_user ) {
$( "a:contains('" + hidden_user + "')" ).each( function() {
// Дополнительная проверка
if ( this.text === hidden_user ) {
// Маскируем / скрываем пользователя (специфично для этой темы!)
$( this ).closest( "tr" ).remove();
}
});
});
}
});
</script>
Я понял, что это не работает для мобильной версии. Измените следующее:
// ищем <tr> или <div> в указанном порядке
let mask_pages = ["/directory_items?|tr,div", "/about.json"];
// ищем в родительском элементе, так как closest может включать сам объект
mask_user_elem.parent().closest(mask_page_spec[1]).remove();
Надеюсь, это кому-то пригодится. Как я уже говорил, я уверен, что использование плагина было бы гораздо лучшим способом скрыть пользователей, которые являются «администраторами» и не хотят быть видимыми на форуме клиентов.
Я понимаю, что этот JavaScript также может быть компонентом, который можно использовать в совместимых темах. Хватит уже вас утомлять этой незначительной особенностью — но мне она очень помогла!