В таком славном движке как Wordpress почему-то нет встроенной возможности просматривать страницу пользователя. Хотя заполнять данные о себе он при этом может.
Решается плагином Profiler Эрика Шульца, который последний раз обновлял его в июле 2008 года. Уверен, что решается и другими способами и плагинами посвежее, да и в 3.1 по-моему уже есть что-то встроенное (хотя я не уверен), но этот плагин даёт всё, что требовалось для решения поставленной задачи и использовался именно он.
Естественно начались бока.
После тщательного изучения кода плагина, кучи матюков и нескольких литров чая была найдена проблема (а самое обидное, это то, что она же вместе с решением была так же найдена на следующий день за 3 минуты в гугле... и как я сразу не догадался поискать.. ну да ладно).
Суть проблемы: не отображаются пользователи, не смотря на то, что мы явно указали, что нужно отображать их роли. Отображается только профиль администратора, причём только одного, а не всех пользователей с ролью "Администратор" , если поставить чекбокс на "No role".
Соответственно не работает функция отбора пользователей по ролям. В плагине она реализована следующим образом:
Формат проверки ролей теперь совпадает, роли определяются, пользователи отображаются, разработчики радуются, море грохочет, моржи ревут, .
Теперь можно смотреть профили пользователей, роли которых вы разрешили просматривать в настройках плагина и можно формировать ссылки вида example.com/ /?users=%username%.
Решается плагином Profiler Эрика Шульца, который последний раз обновлял его в июле 2008 года. Уверен, что решается и другими способами и плагинами посвежее, да и в 3.1 по-моему уже есть что-то встроенное (хотя я не уверен), но этот плагин даёт всё, что требовалось для решения поставленной задачи и использовался именно он.
Естественно начались бока.
После тщательного изучения кода плагина, кучи матюков и нескольких литров чая была найдена проблема (а самое обидное, это то, что она же вместе с решением была так же найдена на следующий день за 3 минуты в гугле... и как я сразу не догадался поискать.. ну да ладно).
Суть проблемы: не отображаются пользователи, не смотря на то, что мы явно указали, что нужно отображать их роли. Отображается только профиль администратора, причём только одного, а не всех пользователей с ролью "Администратор" , если поставить чекбокс на "No role".
Соответственно не работает функция отбора пользователей по ролям. В плагине она реализована следующим образом:
$roleslist = array(Разбираем, что к чему и что это вообще за надписи. Информация о ролях по умолчанию хранится в базе данных в таблице wp_usermeta . Получить информацию о ролях пользователей нам поможет запрос вида
'\'a:1:{s:13:\"administrator\";b:1;}\''=>$administrator,
'\'a:1:{s:10:\"subscriber\";b:1;}\''=>$subscriber,
'\'a:1:{s:6:\"author\";b:1;}\''=>$author,
'\'a:1:{s:6:\"editor\";b:1;}\''=>$editor,
'\'a:1:{s:11:\"contributor\";b:1;}\''=>$contributor,
'\'a:0:{}\''=>$none);
SELECT * FROM wp_usermeta WHERE meta_key="wp_capabilities"
В результате выполнения запроса мы увидим, что информация о ролях содержится в поле meta_value как текстовая строка в особом формате. Именно этот формат и приведен выше. Расшифровывается он приблизительно следующим образом:
a:число: { - a это начало массива (от array) и число - это количество элементов в этом массиве.
s:число:"строка"; - "s" - это строчный тип элемента, число - это количество символов в строке и "строка" - собственно сама строка.
b:1; - это Булев элемент естественно с возможными значениями 1 и 0.
Начиная с версии Wordpress 2 с чем-то, что-то близко к трём формат записи роли слегка изменился. Собственно новый не составляет труда просто посмотреть в базе данных по тому же пути в таблице wp_usermeta. Новый вид записи выглядит таким образом:
a:1:{s:13:"administrator";s:1:"1";}Исходя из выше приведенного 91 строку в файле profiler.php становится необходимым привести к следующему виду:
$roleslist = array('\'a:1:{s:13:\"administrator\";s:1:\"1\";}\''=>$administrator,
'\'a:1:{s:10:\"subscriber\";s:1:\"1\";}\''=>$subscriber,
'\'a:1:{s:6:\"author\";s:1:\"1\";}\''=>$author,
'\'a:1:{s:6:\"editor\";s:1:\"1\";}\''=>$editor,
'\'a:1:{s:11:\"contributor\";s:1:\"1\";}\''=>$contributor,
Формат проверки ролей теперь совпадает, роли определяются, пользователи отображаются, разработчики радуются, море грохочет, моржи ревут, .
Теперь можно смотреть профили пользователей, роли которых вы разрешили просматривать в настройках плагина и можно формировать ссылки вида example.com/
Комментариев нет:
Отправить комментарий