Хак: делаем форум главной страницей группы

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

Решение данной задачи проходит в два взаимодополняющих этапа.

Этап 1 – красивое внедрение

Сначала надо сделать, чтобы на всем сайте все автоматически создаваемые BuddyPress’ом ссылки групп вели пользователя на страницу форума группы, какая имеет адрес:

http:/example.com/groups/some-cool-group/forum

Для этого открываем файл functions.php и вставляем туда следующий код:

add_filter('bp_get_group_permalink', 'redirect_to_forum');
function redirect_to_forum($link){
    return $link . 'forum';
}

Этап 2 – грязный, но полезный, хак

Теперь же надо всех пользователей, случайно попавших на главную страницу группы, переадресовать на форум. Я сделаю таким образом, чтобы пользователи не могли видеть ленту активности группы, которая по умолчанию отображается по одной из указанных ниже ссылок:

http://example.com/groups/some-cool-group/
http://example.com/groups/some-cool-group/home

Открываем файл вашего шаблона /groups/single/home.php и в самом начале вместо обычного get_header() вставляем следующий код:

<?php
global $bp;
if ($bp->current_action == '' || $bp->current_action == 'home')
    bp_core_redirect($bp->bp_options_nav['groups']['forum']['link']);
get_header(); ?>

Вот и все. Честно говоря, я не знаю, понадобится ли вам этот хак, но для истории пусть останется.

комментария 3

  1. После первого этапа не работает администрирование группы.

  2. Ed:

    Не работает, половина разделов группы перестали открываться, при клике на них уходит на главную страницу сайта((… очень нужна первоначальная переадресация на нужный раздел, есть ли какие-то другие способы?

  3. dovukondujyb:

    Hi my pre-eminence is Berau Whitely my hobbies are

    http://www.stylemob.com/story.php?page=forum&category=QuestionsDay&id=1705161 – penny auctions

Добавить комментарий

Ваш адрес email не будет опубликован.