Вопрос или проблема
В WordPress у меня установлены BuddyPress и bbPress. bbPress создает интеграцию с BuddyPress, где вы можете добавлять форумы в группы BuddyPress.
Я хочу убрать шаг “Форум” из процесса создания группы BuddyPress, но оставить форумы группы активными. Я пробовал множество решений, но не могу найти фильтр, который можно было бы использовать.
Например, этот код:
add_filter( 'groups_create_group_steps', function ( $steps ) {
unset( $steps['group-settings'] );
return $steps;
} );
удаляет настройки группы из процесса создания группы.
Этот код:
function buddydev_remove_group_admin_settings() {
if ( ! bp_is_group() ) {
return;
}
bp_core_remove_subnav_item( groups_get_current_group()->slug . '_manage', 'group-settings', 'groups' );
// повторно прикрепить функцию экрана, чтобы избежать 404.
add_action( 'bp_screens', 'groups_screen_group_admin', 3 );
}
add_action( 'bp_template_redirect', 'buddydev_remove_group_admin_settings', 1 );
удаляет настройки группы из меню “Управление” группы.
Используя это:
function remove_unwanted_group_creation_steps() {
global $bp;
if ( isset( $bp->groups->group_creation_steps['forum'] ) ) {
unset( $bp->groups->group_creation_steps['forum'] );
}
}
add_action( 'bp_before_create_group_content_template', 'remove_unwanted_group_creation_steps', 9999 );
удаляет шаг, но оставляет активным URL /create/step/forum/
, что нарушает установленное мной количество шагов.
Можете помочь?
Ответ или решение
Конечно! Чтобы удалить шаг "Форум" из процесса создания группы в BuddyPress, но при этом сохранить активными форумы группы, мы можем использовать фильтры и хуки, которые предоставляет BuddyPress.
Вот решение, которое поможет вам добиться желаемого результата:
- Удаление шага "Форум": Используйте следующий код, чтобы убрать шаг "Форум" из процесса создания группы:
function remove_forum_creation_step( $steps ) {
if ( isset( $steps['forum'] ) ) {
unset( $steps['forum'] );
}
return $steps;
}
add_filter( 'groups_create_group_steps', 'remove_forum_creation_step' );
- Перенаправление URL: Для того чтобы избежать проблемы с активным URL шага
/create/step/forum/
, мы можем добавить перенаправление, которое будет отправлять пользователей обратно на предыдущий шаг.
function redirect_forum_creation_step() {
if ( bp_is_group_creation_step( 'forum' ) ) {
wp_redirect( bp_get_group_creation_step_url( 'settings' ) ); // перенаправляем на шаг 'settings'
exit();
}
}
add_action( 'bp_template_redirect', 'redirect_forum_creation_step' );
- Поддержание функциональности форумов: Убедитесь, что форумы для групп по-прежнему активны. В зависимости от ваших настроек вы можете использовать встроенные функции BuddyPress и bbPress для работы с форумами.
С этим кодом вы сможете убрать шаг "Форум" и одновременно избежать проблем с перенаправлением, сохранив форумы для групп активными. Просто добавьте эти функции в файл вашей темы functions.php
или в созданный вами плагин.
Если у вас возникнут какие-либо дополнительные вопросы или потребуется помощь в адаптации кода, пожалуйста, дайте знать!