Functions WP (functions.php) позволяет тонко настроить сайт на Вордпресс под ваши нужды, ускорить загрузку, удалить ненужные функции и добавить необходимые. Опыт создания сайтов на системе управления вордпресс позволяет мне передать некоторые приемы настройки тем путем внедрения необходимого или устранения ненужного кода в файле functions.php. Рекомендую во время всех изменений сохранять бэкапы.

Удаляем мусор из хедера в functions.php

Удаление мусора в коде вордпресс делается для облегчения загрузки и удаления ненужных ссылок наподобие описание генератора контента (версия вордпресс), wlwmanifest, emoji и прочих излишков. Обычно все дополнения и хаки в файл functions.php ставятся ближе к концу.

[su_note note_color=»#dddcdc» text_color=»#000000″ radius=»0″]

/* Удаляем мусор в хедере*/
remove_action('wp_head','start_post_rel_link',10,0);
remove_action('wp_head','index_rel_link');
remove_action('wp_head','adjacent_posts_rel_link_wp_head', 10, 0 );
remove_action('wp_head','wp_shortlink_wp_head', 10, 0 );

 add_filter('rest_enabled', '__return_false');
 remove_action( 'xmlrpc_rsd_apis', 'rest_output_rsd' );
 remove_action( 'wp_head', 'rest_output_link_wp_head', 10, 0 );
 remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );
 remove_action( 'auth_cookie_malformed', 'rest_cookie_collect_status' );
 remove_action( 'auth_cookie_expired', 'rest_cookie_collect_status' );
 remove_action( 'auth_cookie_bad_username', 'rest_cookie_collect_status' );
 remove_action( 'auth_cookie_bad_hash', 'rest_cookie_collect_status' );
 remove_action( 'auth_cookie_valid', 'rest_cookie_collect_status' );
 remove_filter( 'rest_authentication_errors', 'rest_cookie_check_errors', 100 );

 remove_action( 'init', 'rest_api_init' );
 remove_action( 'rest_api_init', 'rest_api_default_filters', 10, 1 );
 remove_action( 'parse_request', 'rest_api_loaded' );

 remove_action( 'rest_api_init', 'wp_oembed_register_route' );
 remove_filter( 'rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4 );
   
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
remove_action( 'wp_head', 'rest_output_link_wp_head' );
remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );

remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );

add_action( 'wp_enqueue_scripts', 'remove_some_stylesheet', 20 );
function remove_some_stylesheet() {wp_dequeue_style('font-awesome');}
add_action('init', 'remheadlink');
function remheadlink()
{
remove_action( 'wp_head', 'feed_links_extra', 3 ); 
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'rsd_link' );
remove_action( 'wp_head', 'wlwmanifest_link' );
remove_action( 'wp_head', 'index_rel_link' );
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 ); 
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 );
remove_action( 'wp_head', 'wp_generator' );
}
remove_action( 'wp_head', 'rest_output_link_wp_head');
remove_action( 'wp_head', 'wp_oembed_add_discovery_links');
remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );

[/su_note]

Перенос загрузки скриптов из header.php в footer.php

Такой перенос делается для ускорения загрузки вебсайта. В файл functions.php вносится дополнительный код отменяющий загрузку скрипта файлами отдельного плагина и перенаправление их загрузки в подвал. Это достаточно сложная процедура, требующая времени. Это делается путем «отлавливания» кода, отвечающего за вывод этих скриптов. Многие продвинутые плагины имеют функцию перенаправления загрузки скриптов из шапки в подвал сайта. Но если ее нет — придется потрудиться и вставить следующий код внизу functions наподобие такого:

[su_note note_color=»#dddcdc» text_color=»#000000″ radius=»0″]

/* Переносим загрузку из хедера в футер для плагина wprmenu*/
remove_action('wp_head', 'wprmenu_header_styles');
add_action('wp_footer', 'wprmenu_header_styles');


[/su_note]

Еще одно дополнение в функцию, приносящее пользу СЕО-продвижению. Это запрет на индексацию поисковиками страниц вложений. Что это значит? При создании записи вы обычно подгружаете в нее какие-то картинки. Вордпресс создает по умолчанию для нее страницу вложения, где каждая из них хранится. Страница есть, но кроме фото ничего не содержит и не способствует продвижению. Избавится от этих страниц поможет код

[su_note note_color=»#dddcdc» text_color=»#000000″ radius=»0″]

/*запрет на индексацию страниц вложений*/
function wph_noindex_for_attachment() {
    if(get_post_mime_type()!= false) {
        echo ''.PHP_EOL;
    }
}
add_action('wp_head', 'wph_noindex_for_attachment');
/*запрет на индексацию страниц вложений*/


[/su_note]