Продолжение темы "вредные советы" или оптимизация

Редактировалось: 4 раза — последний 28 февраля 2013
Просмотров: 529
Настроение: в работе...
Играет: радио "Серебрянный дождь", обсуждает закон о курении
+6
: 6
Доброго всем здоровья! hoho что единственное самое главное, а остальное, как нибудь получится.
После установки Wordpress на сервер и установке генерированной в Artisteer темы, появляется ощущение, что все, дело сделано, можно так сказать,наслаждаться проделанной работой. Вот тут и приходит вопрос- а почему? почти не заполненный контентом блог или сайт так долго открывается? подвисает? и со стороны хостера появляется предупреждение о превышении лимита, потребляемого сайтом?
Лучше конечно сразу заняться оптимизацией, не дожидаясь предупреждений... Много в интернете написано об оптимизации, я постараюсь капнуть несколько глубже, и применительно к темам, генерированных в Artisteer. Что прежде всего такое - оптимизация, это замена динамических запросов к базам данных на статические... Вот стандартные строки файла header.php :
Код PHP:
  1.  
  2. <!DOCTYPE html>
  3. <html <?php language_attributes(); ?>> - динамический запрос к базам данных о языковых настройках
  4. <head>
  5. <meta charset="<?php bloginfo('charset') ?>" /> - запрос к базам о кодировке
  6. <title><?php wp_title('|', true, 'right'); bloginfo('name'); ?></title> - тег название страницы и название сайта(его не трогаем)
  7. <!-- Created by Artisteer v4.1.0.59688 -->
  8. <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
  9. <link rel="stylesheet" href="<?php bloginfo('stylesheet_url') ?>" media="screen" /> - запрос к базам - путь к файлу стили css
  10. <link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" /> - запрос пингбэк
  11. <?php
  12. remove_action('wp_head', 'wp_generator');
  13. if (is_singular() && get_option('thread_comments')) {
  14. wp_enqueue_script('comment-reply');
  15. }
  16. wp_head();
  17. ?>
  18. </head>
  19.  
Наша задача в данном случае -заменить запросы, установив их на умолчание, то есть запросы типа "<?php bloginfo(''); ?>". мы заменяем на код html.Обратите внимание- библиотека jQuery подключается раньше script.js, в противном случае-ошибки script.js при открытии страницы- обеспечены.
Код PHP:
  1.  
  2. <!DOCTYPE html>
  3. <html dir="ltr" lang="ru-RU">
  4. <head>
  5. <meta charset="UTF-8" />
  6. <title><?php wp_title('|', true, 'right'); bloginfo('name'); ?></title> - тег название страницы и название сайта
  7. <link rel="shortcut icon" href="http://ваш_сайт.com/wp-content/themes/название_вашей_темы/favicon.ico" >
  8. <!-- Created by Artisteer v4.1.0.59688 -->
  9. <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
  10. <link rel="stylesheet" href="http://ваш_сайт.com/wp-content/themes/название_вашей_темы/style.css" media="screen" />
  11. <link rel="alternate" type="application/rss+xml" title="Новости" href="http://ваш_сайт.com/feed" />
  12. <link rel="pingback" href="http://ваш_сайт.com/xmlrpc.php" />
  13. <script type="text/javascript" src="http://ваш_сайт.com/wp-content/themes/название_вашей_темы/jquery.js"></script>
  14. <script type="text/javascript" src="http://ваш_сайт.com/wp-content/themes/название_вашей_темы/script.js"></script>
  15. <?php
  16. remove_action('wp_head', 'wp_generator');
  17. wp_head();
  18. ?>
  19. </head>
  20.  
Далее, нам необходимо открыть файл вашей темы functions.php и провести некоторую корректировку:
Прежде всего добавляем несколько функций:
Вставляем с третьей строки:
Код PHP:
  1.  
  2. add_filter('login_errors',create_function('$a', 'return null;')); - убираем предупреждение о количестве попыток входа в админку
  3. remove_action( 'wp_head', 'feed_links_extra', 3 ); - убираем feed
  4. remove_action( 'wp_head', 'rsd_link' ); - убираем rsd
  5. remove_action( 'wp_head', 'wlwmanifest_link' );-закрываем возможность редакции через лайф райтер
  6. remove_action( 'wp_head', 'index_rel_link' );
  7. remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );
  8. remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );
  9. remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 );
  10. remove_action( 'wp_head', 'wp_generator' );
Дальше, так как мы добавили несколько строк в файл header.php, а именно:
Код PHP:
  1. <link rel="shortcut icon" href="http://ваш_сайт.com/wp-content/themes/название_вашей_темы/favicon.ico" >
  2. <link rel="alternate" type="application/rss+xml" title="Новости" href="http://ваш_сайт.com/feed" />
  3. <script type="text/javascript" src="http://ваш_сайт.com/wp-content/themes/название_вашей_темы/jquery.js"></script>
  4. <script type="text/javascript" src="http://ваш_сайт.com/wp-content/themes/название_вашей_темы/script.js"></script>
Соответственно нам необходимо удалить динамические запросы, которые идут из файла functions.php
Строка с 25 по 53- включительно- можем удалить ( запросы на обновление движка, версии и т.д. и т.п.)
Строки с 70 по 75- включительно, так как мы уже прописали данные пути в html в header и нет необходимости подставлять в header.php-данные функции для погрузки на страницу:
Код PHP:
  1. add_action('wp_head', 'theme_favicon');
  2. add_action('wp_enqueue_scripts', 'theme_update_scripts', 1000);
  3. add_action('wp_enqueue_scripts', 'theme_update_styles', 1000);
  4. add_action('wp_print_scripts', 'theme_update_jquery_scripts', 1000);
  5. add_action('wp_head', 'theme_update_posts_styles', 1000);
  6. add_action('wp_head', 'theme_header_image_script');
Я несколько раз уже писал на форумах, как скрыть версии скриптов и плагинов, дело в том, что Artisteer последних версий почему-то стал подставлять версию движка в версии плагинов и скриптов. Вот код, его нужно вписать в ваш файл functions.php-в самый низ:
Код PHP:
  1. function remove_version_data( $src ){
  2. $parts = explode( '?ver', $src );
  3. return $parts[0];
  4. }
  5. add_filter( 'script_loader_src', 'remove_version_data', 15, 1 );
  6. add_filter( 'style_loader_src', 'remove_version_data', 15, 1 );
Такой нехитрый способ уменьшить нагрузку на ваш сервер, еще раз повторюсь- это из серии "вредных советов", правда подтвержденных практикой, поэтому, перед изменением каких либо файлов, необходимо сохранить копии файлов и если что-то пойдет не так, восстановить. При включенной поддержке мобильных устройств - в header.php, есть часть функций, которые я не описал и не рассматривал(намеренно), поэтому, если у вас при генерации темы был включен "отзывчивый дизайн" -действовать необходимо будет несколько по другому.
И еще один немаловажный момент, это подключение плагина Hyper Cache. Наверное ВЫ заметили, что при установке последней версии или обновлении, перевод "несколько съехал" и понять какие и зачем подключаются функции становится невозможным, я готовлю сейчас русскую локализацию и если у ВАС появится необходимость в переводе, напишите, выложу здесь на форуме или блоге.
Это конечно не ВСЕ, что можно сделать для уменьшения количества динамических запросов к базам данных и уменьшения нагрузки на сервер.
Некоторые способы и методы, приведенные выше достаточно спорны, но в конечном итоге ВАМ решать стоит или не стоит использовать тот или иной способ. Удачи ВАМ и все у вас получится.
P.S. Еще раз напомню, перед проведением каких либо работ на сайте, необходимо закрыть его на время от посетителей. Способ прост- переименование файла index.php(в движке,а не теме) -во что нибудь другое, и соответственно обратное переименование после окончания web изысканий!
Да, конечно сменить хостинг один из выходов. Но как я уже говорил, Artisteer-4, настолько ВСЕ "вкусно" генерирует, что порой сложно отказаться... Поэтому и тема в среднем может доходить до 2-3Мв, а уже не мало, а если учесть, что блог имеет архивы для скачивания, видео и аудио, то, простите, хостер тут уже не при чем, и каждый лишний запрос к базам данных НА СЧЕТУ.
Комментарии (13)
Goricin #
: 0
Мне понравилось, то что доступно объяснено. Но вот у меня такие сомнения по этим оптимизациям. Вроде все правильно и страница должна стать легче, но насколько надо это делать?. Я в смысле того что, если сервер не может нести даже собственный шаблон то что он будет делать если на сайте будут несколько сотен посетителей?. Мне кажется надо не шаблон оптимизировать, а просто хостинг менять на нормальный. smile
gradus #
: 0
Доброго вам дня Goricin smile я думаю для сайта это весьма полезные советы !
На мой взгляд если у Вас будет 2000 посетителей в день то тогда и хостинг нужен хороший ( выделенный ) а он стоит по дороже чем обычный однако ! cry ( но цель оправдывает средства joke ) Всему свое время !

п.с за частую если хорошенько поискать ..за бугром .. то можно найти бесплатный хостинг smoke который на порядок лучше работает чем ..наши .. платные sick
Goricin #
: +1
Я же сказал, что статья мне понравилась, и другие статьи тоже на эту тему, я сказал про другое, Изменять в ручную надо иметь какие то знания и умение, а если этого нет ? как быть? прочитав статью опустить руки и подумав какой плохой вордпрес отказатся от него? из за того что не смогу сделать? Нет. Ведь работает же сайт и без всяких изменений. Я про то насколько это необходимо делать? Другие способы попросче есть? В смысле например хостинг помощнее?
artnikov #
: +1
Не стоит ни от чего отказываться, извините,я всего лишь призываю к развитию, обучению.Человек, по своей натуре-существо любознательное. Движение-это развитие. Так давайте развиваться! Вот в чем основная мысль. Конкретно по хостингу-сложно что либо советовать, ВСЕ очень индивидуально!!!???
Dave #
: +1
Очень полезная и понятная статья v , сохранил себе в Word, чтобы так сказать, всегда была под рукой hoho
Раньше пользовался плагином Hyper Cache, но перейдя на W3 Total Cache, заметил что он в несколько раз лучше кеширует, особенно базу данных. Однако он очень функциональный и его надо грамотно настроить, в противном случае может только навредить.
По своему опыту могу сказать, что плагины W3 Total Cache и WPLANG Lite вместе значительно уменьшают нагрузку сайта. joke
artnikov #
: +3
Доброго здоровья, David. Вот позвольте с ВАМИ не согласиться по поводу плагина W3 Total... . Посмотрите пож. его вес в рабочем и не рабочем состоянии. Вас не настораживает вес плагина в треть самого движка WP ?
И насколько протестировал, его основная функция -это сокращения потребления ресурсов Wordpress-ом!? (Движок в движке!)А если взять функциональность- 35% функций-запись новых правил в ВАШ файл ntacсess. Может это проще самому дописать? А вот super cache- вес 70кб, согласитесь это не 1,4Мб.! А функциональность одинакова. Но опять же ВАМ решать, я не настаиваю.(только размышляю).
Спасибо.
gradus #
: 0
Есче раз перечитал статью smile и возник вопрос а если к примеру выйдет новый движок WP и я его обновлю все ..изменения - улучшения слетят ? scratch
samson #
: +1
laugh Вот-вот я смотрю Вы все "пилите" и "пилите" двиг. А я как раз именно это и имею в виду когда не рекомендую оптимизировать сайт методом "пиления" (если заметили то я не любитель делать изменения в CMS).
Единственная рекомендация в таких случаях, записывать, что и где изменял в отдельный файл. Чем точнее все будет описано, где, что пилил, тем легче будет все восстановить на обновлении. laugh
artnikov #
: +1
Приветствую ВАС, Samson. Заметьте, я не предлагаю в данных статьях вообще движок трогать, а только править файл темы... Как я уже и говорил ранее- с движком можно работать, если он обновляется НЕ через панель управления...Если меня в каком-то движке, что-то напрягает, всегда можно на функцию поставить - false.И этот метод поддерживают разработчики... scratch Я и переводы делаю, без редакции файлов, а создавая локализацию-файлы .po, .mo ... look
samson #
: +1
artnikov, v
Я все это понимаю, и про изменения которые не затрагивают изменения в коде речь не идет, хотя все равно их тоже лучше записывать.
Даже в теме, в движке тем более. Вдруг выйдет новый Artisteer с уже другим обработчиком, появятся новые возможности, и захочется обновить оформление сайта. laugh А если это будет через год-два? Обычно, что и как сделал забывается и что именно и для чего, тоже. Я об этом.
gradus #
: 0
smile если я все правильно понял улучшения которые выше описаны не затрагивают движок сайта и по этому если выйдет новая версия WP то можно смело обновлять ( ну на всяк случай сделать копии само сбой ) smile
artnikov #
: +1
Данные изменения не влияют на движок сайта. Да и по большому счета на содержание темы, при обновлении самой темы, ни чего не изменится, в смысле изменения в одной теме не повлияют на работу новой... Данные вариации с файлом functions.php темы всего лишь расширяют возможности темы и они могут БЫТЬ , а могут и НЕ БЫТЬ.Все на ваше усмотрение... scratch
gradus #
: 0
glasses smoke

Случайное из блогов

artnikov
Доброго всем здоровья! С наступившим ВАС и с наступающими... При переводе файлов админки WP, я как-то...
4 - +13
skaz
Как подключить к Joomla не стандартный слайдер новостей, слайд шоу картинок. В интернете очень много...
9 - +6
samson
Всем известны сервисы по сбору статистики от Google, Яндекс и Liveinternet. Предлагаю свой альтернативный...
6 - +9
skaz
Решил написать эту статью в связи с тем, что некоторые пользователи программы пасуют перед редактированием...
8 - +6
samson
Joomla выходит все новыми релизами, и часто возникают вопросы, на какой делать сайт, графики ниже выхода...
4 - +9