Поддержка Проблемы и решения Отключить языковой пакет только для сайта

  • Здравствуйте. Подскажите пожалуйста, как правильно отключить языковой пакет для сайта, но оставить его для админки ?

    Нашел вот такой вот вариант

    if (strpos($_SERVER['REQUEST_URI'], 'wp-admin'))
         define ('WPLANG', 'ru_RU');
        else
         define ('WPLANG', '');

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

    Спасибо.

Просмотр 13 ответов — с 1 по 13 (всего 13)
  • Пустая строка для WPLANG это вполне нормально, но учтите, что подобным образом у вас язык поменяется если в адресной строку присутствует wp-admin, например если вы написали статью и в ее названии встречается wp-admin 🙂

    Я бы попробовал решить это через плагин с помощью фильтра locale и функции is_admin() которая грамотно проверяет текущую страницу.

    Исходя из того, что проект не связан с сайтами и всем вытекающем, в урле wp-admin не должен встретится. По поводу плагинов и функций — тоже не хотелось бы. Чем топорнее вариант, тем лучше.

    Плагины это как раз самый верный способ решения 99% задач на WordPress 🙂

    Привет, а попробуй такой вариант.

    /*
     * Set English for admin area.
     */
    function ct_change_locale( $locale ) {
        if ( is_admin() ) {
            return 'en_US';
        }
    
        return '';
    }
    add_filter( 'locale', 'ct_change_locale' );

    Вот пример откуда я взял идею — Тыц

    Отпишись, получилось или нет 🙂

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

    LehaMotovilov, неа, админку не перевел. Но это не главное. Все работает и сейчас, просто хочу понять, правильно ли оно работает или из-под палки ))) Цель сделать все правильно и с минимальным количеством кода )))

    Особой разницы между wp-config.php, плагинами или файлом functions.php активной темы нет. PHP он и в африке PHP 🙂

    Собственно отключил перевод на сайте исключительно для снижения нагрузки.

    Интересное решение отключить перевод для снижения нагрузки. Скажите, о какой посещаемости идет речь и почему вы решили, что именно переводы создают эту нагрузку?

    Про PHP согласен, но чем код короче, тем ИМХО лучше ))) А плагины, как показала моя практика, зараза генерируют запросы в БД. Сейчас отрубил все возможные и оставил только основные.

    Интересное решение отключить перевод для снижения нагрузки. Скажите, о какой посещаемости идет речь и почему вы решили, что именно переводы создают эту нагрузку?

    Посещалка проекта 1к+, на блог приходится примерно 80% от общего трафика, остальной траф берет на себя phpBB, но он юзает ту же БД, что и блог. Надо разносить.

    Про нагрузку — по языкового пакета инфа тут: http://ru.forums.wordpress.org/topic/%D0%9F%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0-%D0%B1%D0%B5%D0%B7-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0-wplang?replies=2

    При больших скачках трафика хостинг пару раз ругался, пришлось действовать (((

    Если вы напишите один и тот же код в wp-config.php и в файл плагина, то дополнительных запросов к БД у вас не появится 🙂

    Чем код короче, тем ИМХО лучше

    Чем код короче, тем его сложнее читать. Грамотно написанные 1000 строк могут быть куда производительнее, чем кривые и короткие 10 строк.

    Если ваш хостинг-провайдер ругается на потребление ресурсов с посещаемостью в 1к, то вам либо пора менять хостинг-провайдера, либо искать причину в кривых плагинах или в теме. Это может быть все что угодно, от внешних HTTP запросов на Twitter API, переполнения планировщика WP_Cron, до безумных запросов и циклов с БД, например для того, чтобы вывести популярные записи.

    Плагины Debug Bar, Debug Bar Slow Actions, Core Control помогут найти узкие места, а если есть время то полное профилирование с Xdebug + KCachegrind.

    В общем «повышать производительность» WordPress путем отключения языковых пакетов в админке — хак не эффективный, тем более что из ваших 1к скорее всего 90% приходится не в админ-панель 🙂

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

    По поводу кода тоже не могу не согласиться, но в программировании все как в русском языке, можно расписать 50 строк, а можно объяснить все в 3-х словах и смысл будет тот же самый. Тут нужен хороший кодер.

    Про нагрузку тоже был топик: тут

    Плагин генерирует кучу запросов к базе. В некоторых постах около 50% запросов — это его рук дело. Но альтернативу так и не нашел: тут

    Это все конечно лирика, но надеюсь, что эти ссылки поднимут старые темы и альтернатива будет найдена.

    По поводу тогда подключения пакета только для блога — оставляю как есть, раз больше нет мнений, как это сделать лучше.

    Мой хак наоборот отрубает языковой пакет в самом блоге

    Это не меняет суть моего ответа.

    Не исключает, но если можно сделать что-то для более стабильной и менее ресурсозатратной работы, разве это не надо делать ?

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

    Сейчас у меня стоит задача максимально разгрузить и облегчить свой проект, а потом буду думать о кешировании.

    Закрываю тему.

    Да, поддерживаю. А то уже один оффтоп пошел )))

Просмотр 13 ответов — с 1 по 13 (всего 13)
  • Тема «Отключить языковой пакет только для сайта» закрыта для новых ответов.