Небольшая оптимизация wordpress – часть 2
И так. Сегодня я решил написать продолжение предыдущего поста об оптимизации wordpress.
Гуляя по просторам интернета, читая разные статьи об оптимизации этого движка, набрел я на тему генерации мета тегов. Так вот, в тех статьях описано действие по отключению генерации ненужных мета тегов в шаблон темы, которая у вас установлена, тем самым снимая небольшую нагрузку на блог, больше на http://makarou.com/nebolshaya-optimizaciya-wordpress-%E2%80%93-chast-1.
Там используется встроенная функция wordpress – remove_action, которая просто отключает генерацию тех тегов, которые вы задали в функции. Но тут есть один момент, что выполняя функцию, нагрузка не снимается, она также остается, ну может становиться чуть меньше. И дальше меня удивило, что автор пишет, что нельзя напрямую удалить нужный мета тег из генерации. И вот сегодня я опровергну этот факт, об не удалении генерируемых мета тегов.
Ну что же, приступим.
1. Удалим версию движка, от злобно настроенных глаз.
Открываем — wp-includes/ general-template.php
/*находим вот это код*/ function get_the_generator( $type ) { switch ($type) { case 'html': $gen = '<meta content="WordPress ' . get_bloginfo( 'version' ) . '">'; break; case 'xhtml': $gen = '<meta content="WordPress ' . get_bloginfo( 'version' ) . '" />'; break; case 'atom': $gen = '<generator uri="http://wordpress.org/" version="' . get_bloginfo_rss( 'version' ) . '">WordPress</generator>'; break; case 'rss2': $gen = '<generator>http://wordpress.org/?v=' . get_bloginfo_rss( 'version' ) . '</generator>'; break; case 'rdf': $gen = '<admin:generatorAgent rdf:resource="http://wordpress.org/?v=' . get_bloginfo_rss( 'version' ) . '" />'; break; case 'comment': $gen = '<!-- generator="WordPress/' . get_bloginfo( 'version' ) . '" -->'; break; case 'export': $gen = '<!-- generator="WordPress/' . get_bloginfo_rss('version') . '" created="'. date('Y-m-d H:i') . '"-->'; break; } return apply_filters( "get_the_generator_{$type}", $gen, $type ); } /*и удаляем вот эти строки*/ case 'html': $gen = '<meta content="WordPress ' . get_bloginfo( 'version' ) . '">'; break; case 'xhtml': $gen = '<meta content="WordPress ' . get_bloginfo( 'version' ) . '" />'; break;
2. Если вы не пользуетесь всякими блог-клиентами или веб сервисами для публикации записей, то можете смело выполнять следующие действия.
Открываем — wp-includes/ general-template.php
/*находим вот этот код*/ function rsd_link() { echo '<link rel="EditURI" title="RSD" href="' . get_bloginfo('wpurl') . "/xmlrpc.php?rsd\" />\n"; } /*и меняем на вот этот*/ function rsd_link() { return true; } /*находим вот этот код*/ function wlwmanifest_link() { echo '<link rel="wlwmanifest" href="'. get_bloginfo('wpurl') . '/wp-includes/wlwmanifest.xml" /> ' . "\n"; } /*и меняем на вот этот*/ function wlwmanifest_link() { return true; }
А теперь самое интересное.
3. Теги link rel=’start’, link rel=’next’, и так далее, используются браузером (например, Google Chrome) для предварительного кэширования. То есть когда пользователь заходит на страницу, браузер подгружает следующую и предыдущую страницы, чтобы при переходе на них она грузилась из кэша браузера. Таким образом, создается лишняя и ненужная нагрузка на блог, ведь вы и так используете кэширование плагином.
Открываем — wp-includes/ link-template.php
/*находим вот этот код*/ function start_post_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '') { echo get_boundary_post_rel_link($title, $in_same_cat, $excluded_categories, true); } /*и меняем на вот этот*/ function start_post_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '') { return true; } /*находим вот этот код*/ function index_rel_link() { echo get_index_rel_link(); } /*и меняем на вот этот*/ function index_rel_link() { return true; } /*находим вот этот код*/ function parent_post_rel_link($title = '%title') { echo get_parent_post_rel_link($title); } /*и меняем на вот этот*/ function parent_post_rel_link($title = '%title') { return true; } /*находим вот этот код*/ function adjacent_posts_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '') { echo get_adjacent_post_rel_link($title, $in_same_cat, $excluded_categories = '', true); echo get_adjacent_post_rel_link($title, $in_same_cat, $excluded_categories = '', false); } /*и меняем на вот этот*/ function adjacent_posts_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '') { return true; } /*находим вот этот код*/ function next_post_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '') { echo get_adjacent_post_rel_link($title, $in_same_cat, $excluded_categories = '', false); } /*и меняем на вот этот*/ function next_post_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '') { return true; } /*находим вот этот код*/ function prev_post_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '') { echo get_adjacent_post_rel_link($title, $in_same_cat, $excluded_categories = '', true); } /*и меняем на вот этот*/ function prev_post_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '') { return true; }
В заключении хочется сказать, что подходя к делу с четко поставленной целью, всегда добиваешься результатов.
Ждите новых постов об оптимизации wordpress. Как говорится, они не за горами.