Хаки для настройки BuddyPress под свой проект

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

Представляю вам список мини хаков, которые могут быть вам полезны для уникализации вашей социальной сети. Все вставляется в файл wp-config. после строки определение префикса базы и ДО строки подключения wp-settings.php.

1. Если вы установили сразу BuddyPress версии 1.1 и выше, то есть не переходили с 1.0 на более новую версию, то резонно возникает вопрос – зачем вам загружать тот , которые оставлен в движке для режима совместимости с 1.0? Это увеличивает нагрузку и потребление памяти. Правильно, вам это ни к чему. Поэтому отключаем его вот такой строкой кода:

define ( ‘BP_IGNORE_DEPRECATED’, true );

2. Если вы хотите использовать функции и/или виджеты BuddyPress не только на главном сайте, то вам надо его (BP) включить для всех блогов внутри вашей сети:

define ( ‘BP_ENABLE_MULTIBLOG’, true );

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

3. Предположим, у вас установлен WPMU по-человечески, то есть все блоги создается в поддоменах (blog.example.com). В этом случает вы можете здорово улучшить url до профиля пользователя, убрав из этого адреса слово “members”, т.е. получите ссылку вида: demo.cosydale.com/admin вместо demo.cosydale.com/members/admin.

define ( ‘BP_ENABLE_ROOT_PROFILES’, true );

Но будьте внимательны – не используйте этот , если у вас блоги создаются в режиме поддиректорий! Иначе будет путаница с путями и при попытке попасть на страницу пользователя вы будете попадать на его .

4. Про использование в качестве главного сайта не основной домен, а какой-нибудь поддомен (social.example.org) я уже писал вам вот в этой записи: Альтернативный вариант установки BuddyPress.

5. Вам не нравится или вы считаете его бесполезным? Тогда отключите его для всего сайта и всех блогов!

define ( ‘BP_DISABLE_ADMIN_BAR’, true );

Можно пойти еще дальше: если вы редактируете его, меняете стили или расположение блоков, то пользователям не обязательно видеть, что он временами совершенно случайно будет разваливаться :) Поэтому вы можете вставить вот такой код:

if ( !is_site_admin() )
define ( ‘BP_DISABLE_ADMIN_BAR’, true );

Этот код проверяет, является ли на сайте админом, и если нет – но отключает BuddyBar, если вы админ – то оставляет его включенным.

6. Если вам нравится фишка с логином в гугл-mail, где вы можете иметь точку и имени (что-то вроде cd.slaFFik), то тогда вам надо включить поддержку LDAP:

define( ‘BP_ENABLE_USERNAME_COMPATIBILITY_MODE’, true );

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

7. Теперь начинается рок-н-рол ;) Вы можете менять вид ссылок в том или ином компоненте. Пример: в шаблоне вы указали текст ссылки Группы как Сообщества, но ведь в url все равно остались groups… Поэтому вы прописываете:

define ( ‘BP_GROUPS_SLUG’, ‘community’ );
define ( ‘BP_ACTIVITY_SLUG’, ‘streams’ );
define ( ‘BP_BLOGS_SLUG’, ‘journals’ );
define ( ‘BP_MEMBERS_SLUG’, ‘users’ );
define ( ‘BP_FRIENDS_SLUG’, ‘peeps’ );
define ( ‘BP_MESSAGES_SLUG’, ‘notes’ );
define ( ‘BP_WIRE_SLUG’, ‘board’ );
define ( ‘BP_XPROFILE_SLUG’, ‘info’ );
define ( ‘BP_REGISTER_SLUG’, ‘signup’ );
define ( ‘BP_ACTIVATION_SLUG’, ‘enable’ );
define ( ‘BP_SEARCH_SLUG’, ‘find’ );
define ( ‘BP_HOME_BLOG_SLUG’, ‘news’ );

И отныне у вас поменялся вид ссылок. Это еще неплохой способ визуальной маскировки вашего движка и возможность в будущем защиты от бестолковых регистраций ботов, которые будут привязаны к стандартному пути.

Если вы не хотите что-то менять, просто удалите соответствующую строку.

8. И последний пункт сегодняшней порции хаков – меняем размер аватаров. Меня кто-то спрашивал в комментариях про это, вот вам мой ответ :)

define ( ‘BP_AVATAR_THUMB_WIDTH’, 50 );
define ( ‘BP_AVATAR_THUMB_HEIGHT’, 50 );
define ( ‘BP_AVATAR_FULL_WIDTH’, 150 );
define ( ‘BP_AVATAR_FULL_HEIGHT’, 150 );
define ( ‘BP_AVATAR_ORIGINAL_MAX_WIDTH’, 640 );
define ( ‘BP_AVATAR_ORIGINAL_MAX_FILESIZE’, $max_in_kb );
define ( ‘BP_AVATAR_DEFAULT’, $img_url );
define ( ‘BP_AVATAR_DEAFULT_THUMB’, $img_url );

Выбираете тот, который вам нужно поменять, и вставляете в файл wp-config.php. Остальные просто игнорируете. Последние 2 строки позволяют вам настроить стандартный – вы можете поменять его на свой, для этого вместо $img_url прописываете в кавычках путь к вашему собственному рисунку.

PS Следите за тем, какие кавычки вы использовали: они должны быть английскими одинарными (те, что вставляются в английской раскладке клавы по нажатию на русскую букву “Э”)

На данный момент 52 комментария

  • if ( !is_site_admin() )
    define ( ‘BP_DISABLE_ADMIN_BAR’, true );

    Данная конструкция не работает.
    Проверьте правильность кода.

    • Точнее в данном случае ругается на условие.

      • Проверьте кавычки. Должны быть использованы английские одинарные. Итого:
        if ( !is_site_admin() )
        define ( 'BP_DISABLE_ADMIN_BAR', true );

        • С кавычками всё нормально. Я же говорю, что если убрать if ( !is_site_admin() ) то всё нормально. ошибка в этой строчке. Я где то встречал такую конструкцию – if ( !is_super_admin() ) но при её использовании админбар вобще не отключается ни у кого.

    • А вы где прописали этот код? Конструкция удаляет для не-админов.

  • Код прописывал, как и сказано выше, в config.php . После вставки с условием – на сайт вобще не заходит, но без условия всё работает.

    • @Сергей:
      9 мая 2011 в 6:46

      Тоже самое, с условием
      if ( !is_site_admin() )
      define ( ‘BP_DISABLE_ADMIN_BAR’, true );
      На сайт не заходит, ругается:
      Fatal error: Call to undefined function is_site_admin() in Z:\home\e-svfu.ru\www\wp-config.php on line 39

      А если убрать if
      define ( ‘BP_DISABLE_ADMIN_BAR’, true );
      , то на сайт заходит, но баддиба все равно остается.

      Поставил строчку сразу после определеемя префикса, с кавычками все нормально.

  • Установлены WordPress Multisite 3.2.1 без доменов (папки) и BuddyPress 1.5.1 Проблема с отображением аватаров – на главном сайте нормально, на других сайтах загруженный аватар заменяется на автоматически генерируемый.

    Подскажите, пожалуйста, как решить проблему.

    • с группами такая же история, как и с пользователями

      • А вот это уже проблемы с путями. С ходу сказать не могу – проверьте, какие url к рисунку на блогах. Если не совпадают с теми, что на главной сайте – пытайтесь выяснить, почему так.

        • Картинки разные, пути не совпадают.
          Подскажите в какую сторону рыть?

    • На других сайтах используется не стандартная тема BuddyPress? Если нет, проверьте, чтобы функция вызова аватара пользователей везде была одинакова.

  • странно сколько не пробовал , делал все как описано нечего не получилось

    в частности как аватарки по умолчанию изменить ?

    define ( ‘BP_AVATAR_DEFAULT’, $img_url );
    define ( ‘BP_AVATAR_DEAFULT_THUMB’, $img_url );

    не работает

    • Куда вы этот код вставляли?
      Попробуйте в wp-config.php

  • Подскажите.
    Как в новой версии WordPress 3.3.1 вкюлючить режим LDAP

    define( ‘BP_ENABLE_USERNAME_COMPATIBILITY_MODE’, true );

    С уважение, Alex/

RSS лентаTrackBack URL

Включиться в обсуждение

XHTML: <blockquote></blockquote> <a href=""></a> <strong></strong>

Если нужно разместить код, используйте теги: <pre>php|html|js</pre>