Одно из распространненых желаний владельцев собственных нишевых социальных сетей – добавить что-либо на страницу профиля своих пользователей. Это может быть мини-фак какой-нибудь (в формате вопросы-ответы) или другая как статическая, так и динамическая информация.
Сделать это очень просто, и я на примере кода и одного из своих плагинов покажу вам и объясню, какие параметры что означают.
Итак, для начала создадим папку /wp-content/mu-plugins/. Эта папка не является deprecated – и не будет в ближайшее время. Она по-прежнему используется с той же логикой, как и в WordPress MU (до версии 3.0) – то есть все php файлы, которые лежат там в корне, инклудятся в систему и их код доступен для использования/манипулирования. Также по-прежнему файлы (или плагины), лежащие там, не требуют активации.
В эту папку мы положим наш php файл, который создаст необходимое нам меню с требуемым содержимым.
Порядок действий
1. Открыть/создать файл example.php с помощью Notepad++ (кодировка – UTF-8 без BOM, синтаксис – PHP).
2. Если вы хотите создать подменю к уже существующему меню, например, к друзьям или группам, то вписываете вот такой код:
name – имя ссылки, ее анкор, по которому вы будете кликать;
slug – часть ссылки, которая будет использоваться в url для доступа к странице, обязательно латиницей, допускаются только буквы, цифры, дефис и подчеркивание;
parent_url – ссылка на уровень выше в меню (если вы делаете подстраницу к Друзья, то это ссылка на Друзья);
parent_slug – последняя часть ссылки меню выше (для Друзья – friends, для Группы – groups и т.д.);
screen_function – функция, которая вызывается для отображения контента этой страницы;
position – расположение этой ссылки, указанной в name (чем меньше число – тем левее/выше эта ссылка будет отображаться), целое число от 1 до 99 включительно (можно и больше, но нет смысла);
item_css_id – id этого подменю, чтобы можно было стилизовать его как вам захочется (background сделать, к примеру);
user_has_access – указание того, кто имеет доступ к этой странице. Глобальное правило – функция должна возвращать true или false. Примеры:
bp_is_my_profile() – только владелей этого профиля будет видеть эту страницу;
is_user_logged_in() – только если пользователь авторизован;
is_site_admin() – только админ сайта может видеть эту страницу;
true – все пользователи будут видеть (в том числе и неавторизованные посетители сайта).
3. Теперь нам надо написать функцию, которая будет выводить контент:
Здесь мы просто используем стандартный файл plugins.php, который есть внутри темы.
Находится он по адресу: /[theme]/members/single/plugins.php
Не рекомендуется менять его верстку кардинально, так как вы можете тем самым поломать работу других плагинов, которые используют этот файл.
4. Теперь добавим наш собственный контент:
add_action('bp_template_title', 'example_submenu_page_title');
function example_submenu_page_title(){
echo 'Какой-нибудь ваш заголовок';
}
add_action('bp_template_content', 'example_submenu_page_content');
function example_submenu_page_content(){
echo 'Здесь может быть любой текст или выводящая что-либо функция';
}
Первая функция example_submenu_page_title() отображает заголовок в h3 теге. Его можно и не использовать, если вам не надо.
Вторая функция example_submenu_page_content() уже обязательна, так как туда вы засовываете то, что увидит конечный пользователь. Это может быть все, что угодно (даже какая-нибудь галерея). Собственно, ради нее весь этот пост и написан :)
Итог
Теперь вы умеете добавлять подменю в профиле пользователя к любому уже существующему меню. Это меню также появляется и в BuddyBar.
В следующей части серии я покажу, как добавлять меню верхнего уровня. Подпишитесь, чтобы не пропустить! А на основе полученных знаний, вы сможете составить иерархию (то есть сделать свои собственные меню с подменю в профиле – любое количество и порядок).
Пожалуйста, подождите. Комментарии загружаются.