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

Свой виджет в любой части страницы

Добавляем в functions.php следующее:

[php]
function arphabet_widgets_init() {
register_sidebar( array(
‘name’ => ‘Описание виджета’,
‘id’ => ‘nazvanie_vidzheta’,
‘before_widget’ => ‘

<div>’,
‘after_widget’ => ‘</div>

‘,
‘before_title’ => ‘

<h2 class="rounded">’,
‘after_title’ => ‘</h2>

‘,
) );
}
add_action( ‘widgets_init’, ‘arphabet_widgets_init’ );
[/php]

Вставляем в нужном месте в файле темы:

[php]
<?php dynamic_sidebar( ‘nazvanie_vidzheta’ ); ?>
[/php]

Удаляем “?” в скриптах и стилях

В конце каждого файла стилей или скрипта WordPress добавляет ?ver= Это добавляется версия файла, на случай если вы внесете какие-либо изменения. Но дело в том, что это замедляет загрузку сайта, ведь каждый раз скрипты и стили загружаются с сервера. Если вы как и я, после завершения разработки сайта вообще не трогаете стили и скрипты, то лучше удалить этот параметр. В этом случае стили и скрипты загрузятся всего один раз на компьютер пользователя и в дальнейшем будут подгружаться из кеша. Поверьте, после этого сайт будет загружаться быстрее. Можете проверить через сервис GTmetrix до и после внесения нижеприведённых изменений.

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

Добавляем в functions.php:

[php]
function _remove_script_version( $src ){
$parts = explode( ‘?’, $src );
return $parts[0];
}
// Это для скриптов
add_filter( ‘script_loader_src’, ‘_remove_script_version’, 15, 1 );
// Это для стилей
add_filter( ‘style_loader_src’, ‘_remove_script_version’, 15, 1 );
[/php]

Убирает версию wordpress

Это просто для вашей безопасности. Добавьте в functions.php:

[php]
remove_action(‘wp_head’,’wp_generator’);
[/php]

Не забудьте скачать моё приложение на iPhone

Скачать

Шорткод в файле темы

Проблем со вставкой шорткода в текст статьи нет. Вы просто вставляете [short_code] и на этом всё. Однако если вы хотите вставить шорткод в файл темы (например, в заголовок или подвал), то вставлять его нужно вот таким образом:

[php]
<?php echo do_shortcode(‘[short_code]’); ?>
[/php]

Текущий год

Если у вас всего один сайт, то вас не будет затруднять лезть в код сайта и в его подвале вручную менять текущий год ежегодно. Но если у вас с десяток сайта, то делать это вручную довольно напряжно. Я нашел для себя решение и теперь текущий год отображается автоматически. Вот так выглядит мой footer.php

[code lang=”html”]<span style="color: #800080;">© 2013-</span><!–?php echo date(‘Y’);?–> <span style="color: #800080;"><a href="https://matovsky.com">Roman Matovsky</a></span>[/code]

Избавляемся от ошибок в инструментах для вебмастеров

Если у вас в инструментах для вебмастеров Google в разделе “Структурированные данные” есть ошибки: “Отсутствует: author” “Отсутствует: updated” “Отсутствует: entry-title”, то нижеприведённый код поможет их исправит. Добавьте его в functions.php. Но учтите, что в некоторых шаблонах hentry может быть классом стиля. А посему, до того как воспользуетесь нижеприведённым кодом, проверьте это. И если hentry действительно используется как класс, то сначала замените его на свой.

[php]
function true_remove_hentry( $classes ) {
$classes = array_diff( $classes, array( ‘hentry’ ) ); // можно удалить любые классы, указав их в массиве
return $classes;
}

add_filter( ‘post_class’, ‘true_remove_hentry’ );
[/php]

Удаляем Emoji Icons

Далеко не все используют на своём сайте смайлики Emoji. А значит и не нужен ещё один лишний запрос. Удаляется эта строка очень просто, путём добавления в functions.php следующих строк:

[php]
remove_action(‘wp_head’, ‘print_emoji_detection_script’, 7);
remove_action(‘wp_print_styles’, ‘print_emoji_styles’);
[/php]

Убираем jquery.js в подвал страницы

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

[php]
function my_init()
{
if (!is_admin())
{
wp_deregister_script(‘jquery’);
wp_register_script(‘jquery’, ‘/wp-includes/js/jquery/jquery.js’, FALSE, ‘1.11.0’, TRUE);
wp_enqueue_script(‘jquery’);
}
}
add_action(‘init’, ‘my_init’);
[/php]

Удаление devicepx-jetpack.js

Если у вас установлен плагин Jetpack, то с недавнего времени он стал добавлять строчку на свой сервер https://s0.wp.com/wp-content/js/devicepx-jetpack.js. Как признают сами разработчики, вызов данного скрипта не особо и нужен. Однако присутствие в коде страницы данной ссылки означает лишний запрос, да ещё и на сторонний сайт. Удаляется эта строка тоже очень просто, путём добавления в functions.php следующих строк:

[php]
function remove_devicepx() {
wp_dequeue_script( ‘devicepx’ );
}
add_action( ‘wp_enqueue_scripts’, ‘remove_devicepx’ );
[/php]

Отключаем XML-RPC

А здесь поговорим немного о безопасности. Про XML-RPC и связанных с ним проблемах на WordPress писали много. XML-RPC используется для pingbacks, trackbacks, удаленного доступа с мобильных устройств и для многого другого. Однако его можно использовать не только в благих целях, но даже и в DDOS-атаке на другие сайты. Поэтому решим этом вопрос следующим образом. Для начала добавим в functions.php:

[php]
// Отключаем XML-RPC
add_filter( ‘xmlrpc_enabled’, ‘__return_false’ );
// Отключаем X-Pingback to header
add_filter( ‘wp_headers’, ‘disable_x_pingback’ );
function disable_x_pingback( $headers ) {
unset( $headers[‘X-Pingback’] );
return $headers;
}
[/php]

Теперь добавим в файл .htaccess следующие строки:

[php]
<Files xmlrpc.php>
order allow,deny
deny from all
</Files>
[/php]

Удаляем админбар

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

[php]
add_filter(‘show_admin_bar’, ‘__return_false’);
[/php]