Ускорение загрузки блога и оптимизация темы WordPress

Привет всем! Я уже писал как можно оптимизировать базу данных WordPress, а теперь я перейду к оптимизации самого блога. Будем проделывать мы это с помощью простой идеи - занесём значения часто вызываемых функций в отдельные переменные и будем использовать эти переменные вместо функций. Ускорение загрузки блога от этого небольшое, но всё-равно полезное.

Идея стара как мир и, уж точно, не я её придумал. :) Я просто предлагаю вам посмотреть на одну из её реализаций и, если понравится, воспользоваться данным способом. При этом, если возникнут вопросы, можете смело задавать свои вопросы в комментариях к посту.

Что я предлагаю сделать для ускорения загрузки блога?

Так как в WordPress есть файл wp-config.php, который по своему назначению хранит переменные и некоторые настройки блога, а также загружается каждый раз при загрузке любой страницы блога, то новые переменные я предлагаю добавить именно в этот файл.

Главное не натворите там ничего, а то потом получите ошибку Error Establishing a Database Connection, например. :) Редактировать и добавлять переменные в этот файл нужно внимательно и аккуратно.

Но тут тоже есть свой нюанс. Добавлять переменные надо в самый конец файла, после строки

require_once(ABSPATH . 'wp-settings.php');

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

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

define('BLOG_NAME', get_bloginfo('name'));
define('BLOG_THEME_URL', get_bloginfo('template_url'));
define('BLOG_HOME_URL', get_option('home'));

Затем во всех файлах вашей темы функции echo get_bloginfo('name') или bloginfo('name') заменяем на echo BLOG_NAME.

Также заменяем echo get_bloginfo('template_url') или bloginfo('template_url') на echo BLOG_THEME_URL.

И напоследок заменяем echo get_option('home') или bloginfo('url') на echo BLOG_HOME_URL.

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

По аналогии можно добавить ещё некоторые часто используемые переменные, которые вам необходимы.

Вот и всё. Всем хорошего дня! 😉

Вам также будет интересно почитать и следующие записи

16 комментариев

  • grinds:

    И на сколько это повысит скорость работы движка?

  • Сергей Фещуков:

    @ grinds, точных цифр я не могу сказать.

  • grinds:

    А так на глаз примерно, от «почти незаметно» до «еще как ускоряет», стоит ли вообще заморачиваться с этим? )

  • Сергей Фещуков:

    @ grinds, чуток заметно. :) И без этой поправки можно прожить. Заморачиваться или нет — дело уже каждого.

  • Supaman:

    Я за любые действия которые улучшат ВП. даже если на мизер. Стукну позже в аську -проконсультируюсь

  • BloggerMen:

    Тоже интересно знать насколько это эффективно. Но, с другой стороны, работы на пару минут, почему бы не сделать. Хуже точно не будет :)

  • Сергей Фещуков:

    @ BloggerMen, я не подумал сначала проверить скорость загрузки блога, до изменений. Только уже когда всё сделал стал проверять. Поэтому не могу ничего сказать точно. Но если на глаз, то заметно, что чуток быстрее стал загружаться блог.

  • Marato:

    По мне кажется вообще нужно отказаться от вывода подобных параметров средствами php. Что пути, что адрес блога, пути к стилям, rss и т.д. Прописать статикой. А если нужно будет пути заменить (при переезде раз в тысячу лет), то можно использовать Словогрыз, который обойдет всю директорию с темой и заменит нужные строки.

    Я у себя в блоге описал как уменьшил (аж на немыслимые 0.5 мб .) ) потребление памяти вордпресом.

  • Aleksey:

    Ничего так не сэкономить. 1-2 кб. оперативки только если. Время загрузки не изменится.

    Совсем не в том направлении смотрите.

    Сделайте отладку — увидите на что идут ресурсы. В первую очередь на mo (перевод на русский особенно). Еще есть 2-3 вещи, которые можно отключить.

  • Дмитрий Донченко:

    Вообще-то WordPress хранит все эти данные в массиве, и времени на то, чтобы изъять переменную что заданную в конфиг файле (хотя там они задаются совсем с другой целью) что находяющуюся в blog_info я думаю уходит одинаково.

    И даже если это время и отличается, но наверняка на какие-то микросекунды, которые не так важны, как например:

    1. На этом блоге установлено короткое время жизни для файлов которые кэширует браузер.

    2. Если обработать CSS файлы на этом блоге то их размер уменьшится на 16% для style.css который используется шаблоном и 23% для wp-syntax.css который исопльзуется плагином.

    3. Около 20 картинок указаны без размеров изображения, на его вычисление скажем так уходит больше времени чем разница между изъятием переменных о которых Вы пишите в этой статье.

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

  • Reexel:

    Сколько этого не делал — все давало небольшие результаты. Как только в админке убрал запросы на всякую ересь — сразу потребление упало на 16%! Редактируйте админку! :)

  • Kama:

    @ Дмитрий Донченко, Полностью согласен!

    Такая оптимизация — это что называется мартышкин труд.

  • Alexander Yablonsky:

    У меня два замечания: 1-ое. А что программисты, поддерживающие проект WP, такие тупые, что не могут сами оптимизировать код, или в этом нет необходимости?
    2-е. Трудности с этим возникнут у юзеров, которые не волокут в PHP программировании.

  • Сергей Фещуков:

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

    @ Kama, такая оптимизация тоже имеет смысл, пусть он даже небольшой. А проделать такое — 5 минут делов.

    @ Alexander Yablonsky, они не тупые и знают, что далеко не все пользователи WP волокут в PHP, для этого и делают всё как можно проще для понимая пользователей. Но проще для аудитории не значит проще для кода и самой CMS.
    Поглядите сравнительную таблицу (вспомнить бы где ещё я её видел) старых версий WP и новой, и поймете как они «оптимизируют» код. Проще говоря, с каждой новой версией нагрузка только и увеличивается. Это, конечно, происходит и за счёт введения новых функций и исправления старых, но тенденция такова, что скоро WP будет требовать достаточно больше ресурсов, чем то было ранее.

  • Алексей:

    один раз оптимизировать и всегда потом пользоваться — какой же это мартышкин труд?

  • Vsevolod:

    Почему нельзя просто прописать в файлах темы пути к нужным файлам типа название_сайта/wp-content/themes/название_темы/

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