Изменить логотип на тему в зависимости от роли пользователя - PullRequest
1 голос
/ 06 ноября 2019

Я использую тему Flatsome.

Я хочу изменить логотип в зависимости от роли текущего пользователя.

В папке flatsome-child я получил доступ к функциям.php.

Просто попытка изменить логотип не работает, поэтому я попытался с некоторым кодом, дающим мне возможность изменить nada.

Я гуглил, как изменить собственный логотип, но все, что я нахожу, это то, как вы можете изменить это в Wordpress, но мне нужно иметь два разных логотипа в зависимости от роли пользователя.

<?
add_filter('get_custom_logo', 'helpwp_custom_logo_output', 10);
function helpwp_custom_logo_output() {
    $html = '<a href="https://www.linkhere.com/" title="linkhere.com" rel="home">';
    $html .= '<img width="278" height="73" src="https://www.linkhere.com/wp-content/uploads/2019/11/linkhere-logo-custom.png" class="header_logo header-logo" alt="linkhere" scale="0">';
    $html .= '<img width="278" height="73" src="https://www.linkhere.com/wp-content/uploads/2019/11/linkhere-logo-custom.png" class="header-logo-dark" alt="linkhere" scale="0">';
    $html .= '</a>';

    $html = str_replace('header_logo', 'logo', $html );
    return $html;
}
?>

Ответы [ 2 ]

2 голосов
/ 06 ноября 2019

WordPress хранит роли пользователей как возможности в мета-таблице пользователей. Вы можете отформатировать шаблоны страниц следующим образом:

<?php if (current_user_can('administrator')) : ?>
<img src="admin_logo.png" />
<?php elseif (current_user_can('editor')) : ?>
<img src="editor_logo.png" />
<?php else : ?>
<img src="logo.png" />
<?php endif; ?>

Укажите собственный путь к изображению вашего логотипа выше

1 голос
/ 06 ноября 2019

WordPress имеет функцию с именем

current_user_can( string $capability )

https://developer.wordpress.org/reference/functions/current_user_can/

Возвращает TRUE или FALSE.

Возможны следующие варианты: «delete_user», «edit_user»,«remove_user», «promo_user», «delete_post», «delete_page», «edit_post», «edit_page», «read_post» или «read_page»

Роли пользователя поддерживаются частично, например, «администратор» или«редактор».

С помощью этой функции вы можете сделать что-то вроде этого:

if(current_user_can( 'read_post' )) {
    //show a header image
} else if(current_user_can( 'edit_post' )) {
    //show a header image
} else {
    //show standard header
}

С уважением, Том

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...