» » » Оптимизация WordPress. Нагрузка на сервер и как ее снизить
logotip

Оптимизация WordPress. Нагрузка на сервер и как ее снизить

Всем привет! Сегодня на seo-mayak.com я начну освещать довольно не простую тему, такую как, оптимизация WordPress.

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

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

Хотя у меня уже есть одна статья, которую также можно отнести к теме «Оптимизация WordPress» и называется она «Как загружать картинки на сайт. Оптимизация изображений«, советую ознакомится.

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

Что создает нагрузку на сервер? Скорее не что, а кто и создают данную нагрузку наши дорогие посетители, когда гуляют по сайту и кликают по ссылкам, открывая новые страницы.

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

skorost zagruzki stranitc

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

Прошу не путать с SEO-оптимизацией сайта, к которой можно отнести такие работы, как: настройка ссылок ЧПУ, внутренняя перелинковка, 301 редирект и т.д.

Давайте наверное уже начнем оптимизировать  Поехали!

Пример излишней нагрузки на сервер.

Допустим пользователь зашел на сайт, но что происходит при открытии страницы? Как информация выводится на экран? Давайте проследим сей процесс на примере заголовка сайта.

Заголовок и URL главной страницы сайта, если Вы помните, задается в настройках WordPress: адимнка -> Параметры -> Общие. Все настройки, имеющиеся во вкладке «Параметры», заносятся в базу данных, а точнее, в таблицу wp-options, откуда в последствии они запрашиваются различными функциями и выводятся на экран.

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

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

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

<h1><a href="<?php echo get_option('home'); ?>/"><?php bloginfo('name'); ?></a></h1>

Отлично, заголовок должен быть ссылкой, поэтому в коде присутствие конструкция <a href=»ссылка»>анкор</a>. Но вот что это вместо ссылки прописано? Да и анкор какой-то странный. А ведь это и есть наглядный пример излишней нагрузки на сервер.

С анкором мы разберемся немного позже, а сейчас давайте познакомимся с функцией get_option().

Функция get_option() и нагрузка на сервер

Итак, мы вписали название и URL главной страницы сайта в настройки WordPress и они отправилось на хранение в БД, в таблицу wp-options.

В момент, когда пользователь открывает любую страницу нашего ресурса и файл header.php начинает подгружать шапку, происходит активация функции get_option().

Принцип работы вышеупомянутой функции заключается в обращении к базе данных, а точнее к таблице wp-options и в получении от туда определенных данных, исходя из заданных параметров. После чего, команда echo выводит полученные данные на экран.

Немного сложновато, ну нечего, сейчас я все разъясню. В скобках указывается параметр, в нашем случаи get_option(‘home’), который сообщает функции, какой тип данных ей надо получить.

Параметр home дает команду функции запросить из БД URL главной страницы. Стоп! Значит URL главной страницы тоже хранится в базе данных? Верно. И при открытии страницы функция его запрашивает, т.е, происходит обращение к данным, которые хранятся на сервере.

А теперь представьте, что на Ваш ресурс зашли 100 посетителей и начали «шалить», открывая все новые и новые страницы.

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

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

Вернемся к функции get_option(). Для получения из БД тех или иных данных, функция может принимать следующие параметры:

get_option('home') — URL главной страницы
get_option('admin_email') — E-mail администратора сайта;
get_option('blogname') — Название сайта;
get_option('blogdescription') — Краткое описание сайта;
get_option('blog_charset') — Кодировка сайта;
get_option('date_format') — Формат даты;
get_option('default_category') — Категория по умолчанию;
get_option('siteurl') — Адрес WordPress (см. Параметры -> Общие);
get_option('start_of_week') — Первый день недели;
get_option('upload_path') — Каталог загрузки по умолчанию (устаревшая);
get_option('posts_per_page') — максимальное число постов на странице;
get_option('posts_per_rss') — Максимальное число постов в RSS-ленте;

Большинство перечисленных типов данных указываются в настройках WordPress, во вкладке «Параметры». Исключением являются: «Кодировка сайта» — указывается непосредственно в БД и «Каталог загрузки по умолчанию «- опция была убрана из настроек с версии 3.5.

Зачем я все это рассказываю? Дело в том, что содержание файлов в шаблоне у всех разное, но если понимать, что в них прописано и как это работает, то будет гораздо легче оптимизировать WordPress и избавиться от лишних обращений к базе данных.

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

Функция bloginfo() и нагрузка на сервер

Вернемся к тому моменту, когда пользователь открыл страницу. Мы выяснили, что URL адрес главной страницы был взят из базы данных, средствами функции get_option(‘home’).

Ну хорошо, а сам заголовок откуда взялся? Заголовок также хранится в базе данных, но в нашем случаи он был получен и выведен на экран другой функцией — bloginfo().

На заметку! bloginfo() — это тег шаблона, который активирует функцию get_bloginfo(). Может использоваться в любом месте шаблона.

Функция bloginfo() может принимать следующие параметры:

bloginfo('url') — Выводит URL сайта;
bloginfo('name') — Выводит название сайта;
bloginfo('description') — Выводит описание сайта;
bloginfo('template_url') — путь до директории текущей темы;
bloginfo('template_directory') — тоже самое, что и 'template_url';
bloginfo('stylesheet_url') — путь до файла стилей текущей темы;
bloginfo('stylesheet_directory') — тоже самое, что и 'stylesheet_url';
bloginfo('charset') — Выводит кодировку сайта;
bloginfo('admin_email') — Выводит e-mail адрес администратора;
bloginfo('version') — Выводит версию WordPress;
bloginfo('html_type') — Выводит данные из html_type таблицы wp-options;
bloginfo('pingback_url') — путь до файла xmlrpc.php;
bloginfo('rss2_url') — Выводит URL фида RSS 2.0 (домен/feed);
bloginfo('comments_rss2_url') — Выводит URL фида комментариев (домен/comments/feed);
bloginfo('rdf_url') — Выводит URL фида RDF-RSS 1.0 (домен/feed/rfd);
bloginfo('rss_url') — Выводит URL фида RSS 0.92 (домен/feed/rss);
bloginfo('atom_url') — Выводит URL фида Atom (домен/feed/atom);

Функция bloginfo() немного отличается от функции get_option(), но работает по схожему принципу, т.е, запрашивает из БД те или иные данные и выводит их на экран.

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

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

Было:

skorost zagruzki stranitc3

Стало:

skorost zagruzki stranitc2

Причем, я не использую никаких кэш-плагинов или скриптов, типа MaxCache, а также я не менял хостинг и остался верен TimeWeb. Результат был достигнут только благодаря оптимизации WordPress. Так что делайте выводы сами.

Конечно, меры которые я предпринял, касаются не только сокращения запросов к БД и я постепенно обо всем расскажу, но в одну статью, сей объемный материал, мне не запихнуть.

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

Технология сокращения запросов к БД

Напомню, как выглядит код заголовка в моем файле header.php:

<h1><a href="<?php echo get_option('home'); ?>/"><?php bloginfo('name'); ?></a></h1>

А теперь, самое интересно.  Если заглянуть в исходный код, то код заголовка там примет совершенно другой вид:

skorost zagruzki stranitc4

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

Но тогда зачем в файлах шаблона прописываются вышеупомянутые функции?

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

Но мы то с вами знаем, как называется наш сайт и домен нам тоже известен. Выходит так, что использовать данные функции нет никакой необходимости.

Поэтому, начиная с файл header.php ищем участки кода, с вышеупомянутыми  функциями, затем смотрим, как они выглядят в исходном коде и заменяем.

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

<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />

Смотрим исходный код:

skorost zagruzki stranitc6

Копируем строчку целиком, и вставляем вместо кода с функциями.

Код подключения файла style.css:

<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />

Путь до таблицы стилей выведен с помощью функции bloginfo(‘stylesheet_url’). Смотрим исходный код:

skorost zagruzki stranitc5

Копируем ссылку и заменяем ей функцию. Идем дальше

<link rel="icon" href="<?php bloginfo('template_url'); ?>/images/fav.ico" type="image/x-icon" />

Данные две строчки выводят фавикон, а функция bloginfo(‘template_url’) указывает путь до директории, где хранится картинка. Правильно будет так:

skorost zagruzki stranitc7

В принципе технология простая. Штудируем файлы шаблона, выявляем функции get_option() и bloginfo(), смотрим альтернативу в исходном коде и заменяем, тем самым сокращаем количество запросов к БД, от чего немного снизится нагрузка на сервер.

Конечно оптимизация WordPress на этом не заканчивается и это только первый первый шаг, так что следите за обновлениями блога.

До встречи!

С уважением, Виталий Кириллов

« PageSpeed — реальное ускорение сайта
« Как включить gzip сжатие и кратно ускорить сайт
« Как сократить CSS и ускорить загрузку сайта
« Как включить кэш браузера на стороне пользователя

Комментарии: 68

  1. Анна:

    Ничего не поняла — нашла в редакторе такую же строчку как у вас 1., а где посмотреть исходный код? в том же редакторе? но там совсем другое получается.

    Ответить
    • Виталий Кириллов:

      Анна, исходный код страницы надо смотреть в браузере гор. клавиши Ctrl + U.

      Ответить
  2. Анна:

    Это понятно, но где? в редакторе или на странице сайта — там совсем другие строчки получаются.

    Ответить
    • Виталий Кириллов:

      На странице, в окне браузера!

      Ответить
  3. Анна:

    ой, я что-то боюсь, у меня там не одна строчка, а много очень и какую функцию выкинуть — эту или обе полностью?
    <meta http-equiv="Content-Type" content="; charset=» />

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

    Ответить
    • Виталий Кириллов:

      Анна, значит Вам лучше обратится к специалисту.

      Ответить
  4. Кирилл:

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

    Ответить
  5. Кирилл:

    Виталий, а оказывается не всё так сложно как кажется по началу, во всяком случае с файлом «header» у меня не возникло ни каких проблем. Спасибо вам за отличные статьи, у вас есть чему поучится.

    Ответить
    • Виталий Кириллов:

      Спасибо Кирилл! Я и в будущем постараюсь Вас не разочаровывать.

      Ответить
  6. Лада:

    Ой, я тоже с трудом пока еще все это понимаю. И очень боюсь вмешиваться в коды.

    Ответить
    • Виталий Кириллов:

      Лада, я думаю не стоит спешить. Наберитесь знаний, а потом как-нибудь вернетесь к данной теме. Статья предназначена для веб-мастеров, уже имеющих опыт работы с файлами шаблона.

      Ответить
  7. Ирина Жигалова:

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

    Ответить
    • Виталий Кириллов:

      Спасибо Ирина, если будут вопросы — всегда готов помочь!

      Ответить
  8. Евгений:

    Здравствуйте Виталий, очень рад снова прийти на Ваш блог! Всё подробно и понятно! У меня проблема: просмотрел исходный код своего сайта, — обалдел,- столько там «лишнего» , хочется сделать как у Вас:

    <link type="text/css"

    как мне можно это сделать на своем сайте, сократить или убрать?
    Спасибо.

    Ответить
    • Виталий Кириллов:

      Здравствуйте Евгений! Если Вы хотите сделать как у меня, так сделайте. Просто свои URL поставьте. Кстати, я наверное в начале следующей недели опубликую еще один пост, в котором продолжу наводить порядок в header.php.

      Ответить
  9. Галина Шевалер:

    Круто! очень понравилось как все описано — осталось попробовать в действии. Страшно конечно! Но результаты того стоят)

    Ответить
  10. Игорь:

    А каким сервисом измеряли скорость загрузки?

    Ответить
  11. Владимир:

    Виталий, подскажите, локализация шаблона тоже деоает обращение к базе данных. И если да, то каждая фраза — это запрос? Например, в comments.php name- запрос, ответ имя; e-mail запрос, ответ — почта. Тогда получается, что можно снизить запросы к базе данных путем прописания перевода прям в php файлах, а не в локализации шаблона.

    Ответить
    • Виталий Кириллов:

      Вы имеете в виду e-mail админа? Может и можно, надо разбираться.

      Ответить
  12. Владимир:

    я вообще все мел ввиду 🙂 на каждой странице есть обращение к локализации.
    Поисковая форма — search.php, в ней такой текст — «». Search Results for: — это же обращение к базе данных?. Так же для комментариев — <input name="submit" type="submit" id="submit" value="» /> e(‘Submit Comment’, ‘wpzoom’) — тоже обращение? И подскажите, какую именно часть фразы надо поменять, чтобы не было обращения — e(‘Submit Comment’, ‘wpzoom’) целиком или только Submit Comment?
    Вор еще примеры:

    Следующий комментарий, предыдущий комментарий. И так далее, по шаблону их очень много

    Ответить
    • Владимир:

      Не все указалось, но думаю, что вы поняли суть

      Ответить
    • Виталий Кириллов:

      Владимир, «Submit Comment» — это не что иное как текст: «Отправить комментарий, который надо перевести. А «wpzoom» — это файл перевода, который должен находится в шаблоне. Взаимодействие осуществляется с помощью функции _e().

      Ответить
      • Владимир:

        Да, я понял. Я об этом и говорю — если вызов функции _е() заменить сразу переводом, этим можно убрать запрос к базе данных, снизить нагрузку и ускорить загрузку страницы.

        Ответить
        • Виталий Кириллов:

          Как я уже сказал в прошлом комментарии, файл переводчик находится в шаблоне, а не в базе данных и функция _е() обращается именно к этому файлу, а не к базе данных, хотя перевести все равно можно. Я как-то перевел шаблон полностью и удалил файл переводчик.

          Ответить
  13. Сергей:

    Здравствуйте, Виталий! У вас очень дельные статьи. Чувствуется, что пишите со знанием дела. Помогите, пожалуйста, и мне. Мой сайт на хостинге TimeWeb из 20ГБ занимает всего 1,1ГБ. Скорость загрузки сайта 0,97с. Однако периодически происходят всплески повышения нагрузки на хостинг (поэтому пришлось перейти на более дорогой хостинг, но и сейчас периодически происходит превышение нагрузки). Причем это может длиться несколько дней подряд. По логам доступа вроде бы ничего нет. Никак не могу понять в чем причина. Помогите, Виталий! Позвольте обнаглеть и задать еще вопрос: после загрузки статьи на сайт она может появиться на сайте через день, другой, хотя через карту сайта можно перейти на нее (у меня WordPress). Иногда удаляю некоторые виджеты и они почему-то сразу не удаляются. Приношу извинения, Виталий, за такую кучу вопросов.

    Ответить
    • Виталий Кириллов:

      Здравствуйте Сергей!
      Возможно на нагрузку влияют директивы в файле .htaccess. Надо помнить, что сервер работает на связке Apache/Nginx и некоторые директивы работать не будут и как мне видеться только усугубляют ситуацию, но могут быть и другие причины, это лишь предположение.
      Что касается второго вопроса, так у вас настоен кеш, или плагином или в том же .htaccess.

      Ответить
      • Сергей:

        Добрый вечер, Виталий!Огромное спасибо за ответ. Постараюсь в этих направлениях поработать. Всего вам доброго и здоровья.

        Ответить
  14. Олеся:

    так оптимизировать можно не только файл header.php но и остальные файлы шаблона?

    Ответить
    • Виталий Кириллов:

      Все правильно!

      Ответить
  15. Роберт:

    Очень полезный пост! В последнее время все чаще появляется 508 ошибка, несмотря на настроенный кэш. Надеюсь, что описанные в статье методы помогут снизить нагрузку.

    Ответить
  16. Димир:

    Добрый день.

    Недавно яндекс-директ одобрил мою заявку на участие. Я на радостях навставлял рекламы и… нагрузка на сервер выросла в 20 раз! С 12 до около 300 едениц (при максимуме на тарифе в 50). Таймвеб сразу заругался. Я всё убрал, оставил один блок блок из 4-х объявлений ниже статьи. Но результат все равно — превышение нормы — 72 еденицы.

    Виталий, подскажите как у Вас решался вопрос с нагрузкой после установки объявлений от яндекс-директа. Если был ее рост.

    У меня стоИт гипер-кэш, скрипт рекламы ставил целиком (сам скрипт вместе с div-ом в одно место). То есть скрипт не переносил в футер и тем более не переносил в файл функций.

    Спасибо.

    Ответить
    • Виталий Кириллов:

      Димир, вы как вставляли коды объявлений, напрямую в файлы, или выводили их через шорткод?

      Ответить
      • Димир:

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

        Ответить
        • Виталий Кириллов:

          Димир, мне сложно Дать вам точный диагноз. Бывает, что хотинг даже может быть причиной, а может и какие-то другие факторы, чисто технического характера. Попробуйте вставить все блоки через шорткод и посмотрите что будет.

          Ответить
          • Димир:

            А если через шорткод вставлять, то только DIV в файл функций, а SCRIPT просто в футер?

            Или всё вместе в файл функций вставлять?

            Ответить
            • Виталий Кириллов:

              Димир, Вы о чем? Надо изменять содержание уже имеющихся строк, ничего никуда вставлять не требуется. Или Вы задаете вопрос не по содержанию статьи?

              Ответить
  17. Андрей Курасов:

    А что можно сделать со строчкой типа , которая запрашивает файл настроек вордпрессовской темы? Где файл лежит — известно, но как его подключить напрямую я не нашёл:(

    Ответить
    • Виталий Кириллов:

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

      Ответить
  18. Иван:

    Очень полезная статья.
    Можно ли как-то заменить вот это: [code]?[/code]
    Во многих файлах шаблона это встречаю, но в исходном коде ничего не могу найти, что может выводить этот код

    Ответить
    • Виталий Кириллов:

      Иван, воспользуйтесь преобразователем, прежде чем вставить код.

      Ответить
      • Иван:

        Вот код: <?php $options = get_option('название шаблона'); ?>

        Ответить
        • Виталий Кириллов:

          Иван, это скорее всего часть функции, так как в этом коде get_option(‘название шаблона’) передается в переменную $options и не экран ничего не выводится.

          Ответить
  19. Андрей:

    Здравствуйте, подскажите пожалуйста!Использую шаблон striking,он автоматически присваивает тег h1 странице отвечающей за блог на каждой записи, получается, что мы имеем 2 тега h1(блог+тайтл статьи).В файлах header и index.php тега h1 нет. В single.php только один тег h1, отвечающий за тайтл статьи. Найденные в интернете решения не помогли (или я что-то не так делаю). Последняя надежда на Вас. Спасибо!

    Ответить
    • Виталий Кириллов:

      Здравствуйте Андрей! Я немного не понял, где у Вас второй тег h1, в заголовке блога?

      Ответить
      • Андрей:

        Здравствуйте Виталий.
        Я понял, что я в этом ничего не понимаю. Чтобы не нанести вред, лучше передать это дело в руки специалиста. Вы поможете решить эту задачу? Последняя надежда на Вас. Спасибо!

        Ответить
        • Виталий Кириллов:

          Андрей, я посмотрел исходный код вашего сайта и обнаружил только один тег h1 на странице, что вполне нормально.

          Ответить
  20. Елена:

    Нужный материал, я сейчас как раз занимаюсь ускорением блога и воспользуюсь вашими советами, спасибо!

    Ответить
  21. Bogutskiy:

    Большое спасибо за статью, но у меня почему то через разные проверочные системе предлагает оптимизировать код CSS. Не знаю на сколько это серьезная проблема. Я увы в этом не понимаю вовсе.

    Ответить
  22. Виталий:

    Виталий, огромное спасибо за статью!

    Всё расписано и понятно даже новичкам.
    Нашёл в файле header 6 функций bloginfo, но ни одной get_option() , это правильно?

    Как всегда возникли вопросы:

    1. Что ещё можно почистить в файле header? Вы упоминали о доп. статье про его чистку.
    Можно ссылочку?
    2. Какие ещё функции нужно искать и заменять кроме указанных в этой статье?
    3. В каких именно файлах? У меня в редакторе админки 30 файлов от Шаблон Ошибки 404 до Таблица Стилей RTL. Во всех, что в редакторе есть?
    4. Как приобразовать htlm код в сущность, перед тем как вставить его в комментарий?

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

    Прошу смотреть скрин чистки: prntscr.com/9ywv38

    Спасибо за Вашу помощь и очень нужные статьи!

    С уважением,

    Виталий

    Ответить
    • Виталий Кириллов:

      Здравствуйте Виталий, Вы все правильно сделал!

      Ответить
  23. Виталий:

    Виталий, спасибо ещё раз за статью и помощь!
    Благодаря Вам разобрался и почистил файл header.php!!!
    Дальше стало интереснее, а точнее непонятнее…
    Я проверил все файлы, которые были у меня в админке на наличие get_option() и bloginfo().
    Такие же функции нашёл ещё в трёх файлах, а именно: functions.php, inc/custom-header.php, 404.php, но непонятно то, что в середине кода как бы есть эти функции, но вот начало кода этих файлов в исходном коде я не нашёл и поэтому не знаю как быть.

    Очень прошу помочь разобраться, так как хочется уже закончить чистку этих функций.

    Вот файлы и их коды с функциями get_option() и bloginfo():

    файл functions.php
    if ( is_singular() && comments_open() && get_option( ‘thread_comments’ ) )
    (comments.php)
    1 && get_option( ‘page_comments’ ) ) : // are there comments to navigate through ?>

    $title .= get_bloginfo( ‘name’ );
    $site_description = get_bloginfo( ‘description’, ‘display’ );

    файл inc/custom-header.php
    <a id="name" onclick=»return false;» href=»»>
    <h2 id="desc">

    файл 404.php
    <link rel="pingback" href="» />

    Спасибо!!!

    Ответить
  24. Виталий:

    файл inc/custom-header.php
    <h1><a id="name"<?php echo $style; ?> onclick="return false;" href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php bloginfo( 'name' ); ?></a></h1>
    <h2 id="desc"<?php echo $style; ?>><?php bloginfo( 'description' ); ?></h2>

    Ответить
  25. Виталий:

    файл 404.php

    <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />

    Ещё раз благодарю за помощь!

    Ответить
    • Виталий Кириллов:

      Виталий, Все шаблоны разные, мы трудно сходу давать правильные советы. Разбирайтесь, и я уверен, что со временем у Вас все получится.

      Ответить
  26. Василий:

    Скажите, а если такой header.php

    <?php
    /**
    * @package vogue
    * @since 1.0.0
    */

    // File Security Check
    if ( ! defined( 'ABSPATH' ) ) { exit; }

    get_template_part( 'header-single' );
    get_template_part( 'header-main' );

    Ответить
  27. Александр:

    Виталий вот такая проблема. pagespedd выдает вот такую проблему
    Удалите код JavaScript и CSS, блокирующий отображение верхней части страницы
    Я перелопатил весь движок и не смог найти где данные скрипты подключаются. Что в этом случае можно предпринять?

    Ответить
    • Виталий Кириллов:

      Скачайте копию файлов сайта на компьютер, воспользуйтесь редактором notepad++.
      Ищите через поиск «Найти в файлах» по названию файла (font-awesome.css).

      Ответить
  28. Кристина:

    Статья огромная, позжатей бы, побольше б конкретных указаний как и что делать. Но а вообще блог очень познавательный. То и дело сюда попадаю. В голове уже отложилось Сео Маяк блог Виталия Кириллова))

    Ответить
  29. Александр:

    Привет! Уже устал искать причины тормозов. Думал придётся переезжать на другой хостер. Но вот выполнил ваши рекомендации и загрузка сайта ускорилась в 3-5 раз. Я огромное спасибо.

    Ответить
  30. Ирина:

    Добрый день. Очень содержательная статья! Все подробно, на многих других ресурсах бывает написано для умудренных опытом)) а для чайников, которым нужно разжевать, совсем трудно найти. Мне понравилось, надеюсь с ее помощью ускорить свой сайт. Спасибо!

    Ответить
  31. Саня:

    Здравствуйте, у меня в хедере используется такая конструкция:
    Название сайта
    При просмотре кода статьи сайта есть два пробела после тега :
    Название статьи | Название сайта
    Как это можно исправить?
    Спасибо

    Ответить
    • Виталий Кириллов:

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

      Ответить
      • Саня:

        да, именно так

        Ответить
        • Виталий Кириллов:

          Ну хорошо, будем разбираться.
          Каким плагином вы пользуетесь?
          Приведите код вывода title из файла htader.php.

          Ответить
  32. Саня:

    Плагин не использую,в хедере:<title><?php wp_title(''); ?><?php if(wp_title('', false)) { echo ' |'; } ?> Название сайта</title>

    Ответить
    • Виталий Кириллов:

      В файле funtions.php поищите подключение хука wp_title.
      Скорее всего в шаблоне есть своя функция вывода title.
      Подробней о функции wp_title() здесь.

      Ответить
  33. Евгений:

    Виталий, добрый день. Спасибо вам огромное за столь подробную статью! Занялся оптимизацией по вашей инструкции. У меня несколько нестандартный шаблон, поэтому некоторые вещи прописаны не там и не так, как это делается обычно в Вордпрессе. Например, в файлах шаблона я нигде не нашел bloginfo. Но несколько раз встречается функция get_bloginfo — например, get_bloginfo(‘name’). Причем не в header.php, а в абсолютно другом файле, запрятанном в одной из папок. Как вы считаете, это то же самое и с подобными файлами можно делать работать по схеме, описанной у вас в статье, то есть заменять функцию на скопированный участок из кода страницы? Заранее спасибо за ответ!

    Ответить

Оставить комментарий

Внимание комментатор! Прежде чем вставить: HTML, JavaScript или PHP код в свой комментарий, преобразуй его в html сущность!

Subscribe without commenting

» Подписаться на комментарии по RSS