Intereting Posts
Шаблон Перенаправление на / 2015 для использования шаблона страницы Отображать содержимое из пользовательского сообщения без изменения единого шаблона Какие функции использует WordPress для фильтрации / дезинфекции комментариев? Как загрузить следующие и предыдущие сообщения от Ajax Как отображать случайных пользователей с аватарами Почему WordPress имеет более одной соли? Постоянная ссылка на неверную вставку нескольких категорий Одно меню для главной страницы (один пейджер) и другое меню для сообщений Я пытаюсь отображать категории продуктов для каждого продукта в списке Я хочу напечатать сообщение в сообщении «После одного месяца с даты публикации» Как изменить запрос sql для wp_get_archive () wp_update_post не обновляет категорию запрос сообщений с настраиваемым статусом Фильтровать собственный тип сообщения, используя несколько выпадающих списков в admin по meta_key & meta_value Перенаправление с созданной страницы плагина

Изменить параметры видимости xprofile в Buddypress

Я использую расширенный профиль Buddypress и текущие параметры видимости: – Everyone – Only Me – Мои друзья – Все участники

Мне нужно удалить «Мои друзья» и «Все участники» и просто оставить «Все» и «Только я». После этого мне нужно переименовать «Everyone» в «Public» и «Only Me» на «Private». Я уже много часов работаю в Интернете, и мне не повезло 🙁 Я не могу найти никаких крючков, фильтров или всего, что могло бы помочь мне в этом.

Solutions Collecting From Web of "Изменить параметры видимости xprofile в Buddypress"

Для этого есть фильтр: bp_xprofile_get_visibility_levels . Он используется для фильтрации массива уровней видимости, который инициализируется следующим образом:

 $this->visibility_levels = array( 'public' => array( 'id' => 'public', 'label' => _x( 'Everyone', 'Visibility level setting', 'buddypress' ) ), 'adminsonly' => array( 'id' => 'adminsonly', 'label' => _x( 'Only Me', 'Visibility level setting', 'buddypress' ) ), 'loggedin' => array( 'id' => 'loggedin', 'label' => _x( 'All Members', 'Visibility level setting', 'buddypress' ) ) ); if ( bp_is_active( 'friends' ) ) { $this->visibility_levels['friends'] = array( 'id' => 'friends', 'label' => _x( 'My Friends', 'Visibility level setting', 'buddypress' ) ); } 

(приведенный выше код находится в bp-xprofile/bp-xprofile-loader.php )

Поэтому в вашем случае вы бы хотели:

 add_filter( 'bp_xprofile_get_visibility_levels', function($levels) { // remove "My Friends" if(isset($levels['friends'])) unset($levels['friends']); // remove "All Members" if(isset($levels['loggedin'])) unset($levels['loggedin']); // change "Everyone" to "Public" if(isset($levels['public'])) $levels['public']['label']=_x('Public','Visibility level setting','buddypress'); // change "Only Me" to "Private" if(isset($levels['adminsonly'])) $levels['adminsonly']['label']=_x('Private','Visibility level setting','buddypress'); return $levels; } ); 

Помните, что это фильтр, и другие могут зацепиться перед вами, поэтому всегда проверяйте, является ли данный элемент массива isset() .

В качестве примечания, здесь есть соображения, связанные с переводом, но я думаю, что разработка этого вопроса будет вне сферы действия.