Поддержка Проблемы и решения Ошибка вывода логина пользователя и его роли через шорткод

  • Решено jurvrn

    (@jurvrn)


    задача вывести имя (логин) пользователя и его «роль». Код не срабатывает, вызывает ошибку, подскажите где ошибка?

    add_shortcode('usernamesite', 'user_name_sait');
    function user_name_site ( $attr, $shortcode_content = null )
    {
      $user = get_userdata();
      return $nick = $user->user_login;
    }
    
    add_shortcode('userrolesite', 'user_role_site');
    function user_role_site ( $attr, $shortcode_content = null )
    {
        $user = get_userdata();
        $roles = implode(', ', $user->roles);
        $replace = array(
          'administrator' => 'Администратор',
          'editor' => 'Редактор',
          'author' => 'Автор',
          'contributor' => 'Помощник',
          'subscriber' => 'Подписчик'
           );
        return $roles = strtr($roles, $replace);
    }

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    вызывает ошибку, подскажите где ошибка?

    Нужно угадать текст ошибки? Попробую 🙂

    1. Функции get_userdata() обязательно нужен параметр $user_id. Попробуйте вместо неё wp_get_current_user(), ей параметр не нужен.
    2. В первом шорткоде указано неверное имя функции user_name_sait, должно быть user_name_site.

    Sergey (@sergeybiryukov) спасибо. Ошибку не заметил так как много сил вложил в осмысление кода. После исправления ошибки и замены функции — всё работает.

Просмотр 2 ответов — с 1 по 2 (всего 2)