Здравствуйте, уважаемые читатели XoZbloga! В одной из предыдущих статей мы с вами уже рассматривали полезные вставки (фрагменты) кода для WordPress, так вот сегодня продолжим эту тему. В этой статье рассмотрим 8 свежих хаков и фильтров для WordPress. Немного теории для тех кто не знает: что такое Хак? и для чего нужны фильтры WordPress? Да все очень просто: Хак — это такое изменение исходного кода, в нашем случае исходного кода WordPress, которое приводит к уменьшению кода, повышению функциональности и увеличению скорости работы сайта. Ну а фильтры обрабатывают выводимый контент на сайте и при необходимости изменяет содержимое.

Предотвращение автоматического сжатия изображений
По умолчанию, WordPress сжимает JPG изображения, когда Вы загружаете их на свой блог. Это полезно, потому что экономит трафик и время загрузки, но иногда Вы можете предпочесть этому качество изображение, которое снижается при сжатии (например, если вы фотограф, и используете WordPress, чтобы демонстрировать свои работы).
Вставьте приведенный ниже код в файл functions.php Вашей темы:
1 | add_filter('jpeg_quality', function($arg){return 100;}); |
Добавить атрибут target=_blank ко всем ссылкам в тексте
Если Вам необходимо, чтобы все ссылки в тексте статьи открывались в новом окне, то этот фильтр для Вас. Нижеследующий код также вставляется в functions.php Вашей темы:
1 2 3 4 5 | function autoblank($text) { $return = str_replace('<a', '<a target="_blank"', $text); return $return; } add_filter('the_content', 'autoblank'); |
Добавить дополнительные поля в контакты профилей пользователей
Странно, что WordPress не позволяет пользователям вводить логины Facebook и Twitter в контактах профиля пользователей.
Для того, чтобы добавить эти поля в контакты профиля пользователя, просто вставьте этот хак в файл functions.php. В данном примере мы добавляем Facebook и Twitter, но добавить можно что угодно.

1 2 3 4 5 6 7 8 | function my_user_contactmethods($user_contactmethods){ $user_contactmethods['twitter'] = 'Twitter Username'; $user_contactmethods['facebook'] = 'Facebook Username'; return $user_contactmethods; } add_filter('user_contactmethods', 'my_user_contactmethods'); |
Добавить изображения (эскизы) статей в RSS поток
С помощью этого фрагмента кода в RSS поток к каждой записи будет добавлено «привязанное» к ней изображение. Вставьте этот код в functions.php. Не забывайте для того чтобы этот хак работал, Вам нужно использовать темы, которые поддерживают эскизы в статьях. Еще один минус — не работает с FeedBurner 🙁
1 2 3 4 5 6 7 8 9 10 11 | function cwc_rss_post_thumbnail($content) { global $post; if(has_post_thumbnail($post->ID)) { $content = '<p>' . get_the_post_thumbnail($post->ID) . '</p>' . get_the_content(); } return $content; } add_filter('the_excerpt_rss', 'cwc_rss_post_thumbnail'); add_filter('the_content_feed', 'cwc_rss_post_thumbnail'); |
Режим обслуживания
Иногда нужно поставить блог на обслуживание (т.е. отключить и не показывать посетителям) например при изменении темы или еще чего-нибудь. Существует много плагинов, которое позволяет сделать это, но зачем они если есть более простое решение: вставьте следующий фрагмент в файл functions.php и все! Ваш блог теперь никому не доступен, кроме администратора. Не забудьте удалить код, когда Вы закончите с обслуживанием!
1 2 3 4 5 6 | function cwc_maintenance_mode() { if (!current_user_can('edit_themes') || !is_user_logged_in() ) { wp_die('Блог находится на обслуживании, зайдите позже!'); } } add_action('get_header', 'cwc_maintenance_mode'); |
Отключить собственные трэкбэки (trackbacks)
Если Вы ссылаетесь в статье на другой блог WordPress, то в комментариях к той статье на которую вы ссылаетесь останется ссылка на Ваш материал — это и есть трэкбэк. Это отличный способ получить больше посетителей на Ваш сайт.
Проблема в том, когда Вы делаете ссылку на одну из Ваших собственных статей, трэкбэки все равно появляются и засоряют комментарии. Что бы этого избежать применяем следующий хак:
1 2 3 4 5 6 | function disable_self_ping( &$links ) { foreach ( $links as $l => $link ) if ( 0 === strpos( $link, get_option( 'home' ) ) ) unset($links[$l]); } add_action( 'pre_ping', 'disable_self_ping' ); |
Отключить обновление WordPress
Если Вас все устраивает в WordPress , не хотите получать неприятности при обновлении WordPress или просто не любите обновляться 🙂 Тогда отключите обновление WordPress, используя вот этот хак, куда его вставлять Вы и так знаете 🙂
1 | add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) ); |
Отключить автосохранение
WordPress автоматически производит сохранение при редактировании статьи, страницы. С одной стороны это хорошо, можно не бояться если вдруг что-то произойдет например свет отключится, то потеряется не сохраненная информация.
Тем не менее, после долгого редактирования в базе скапливается огромное количество не нужных данных, к примеру пока писал эту статью автоматически сохранилось более 20 различных редакций. Так вот чтобы отключить автосохранение юзаем такой код:
1 2 3 4 | function disableAutoSave(){ wp_deregister_script('autosave'); } add_action( 'wp_print_scripts', 'disableAutoSave' ); |
Но теперь не забывайте чаще нажимать кнопку Сохранить, пока пишите материал 🙂
Важно: перед тем как внести изменения в function.php, необходимо делать резервную копию файла, мало ли что.
Чтобы оставаться в курсе свежих статей и уроков подписывайтесь на страницу ВКонтакте или подпишитесь на почтовую рассылку. Не забывайте оставлять комментарии к статьям и урокам. Если статья Вам понравилась и пригодилась сделайте tweet или like — тем самым Вы выразите свою благодарность. Спасибо за прочтение. До связи!
P.S.: Не знаете как установить социальные кнопки для DLE? Об этом и многом другом читайте на Artinblog.ru
Источник статьи/урока: https://xozblog.ru