Редактирование wp_head в теме WordPress

30 окт. 2015 г., 12:41:12
Просмотры: 20.6K
Голосов: 4

Мой WordPress добавляет в тег head много ненужных скриптов и CSS файлов. Я пытался исправить это, редактируя файл head.php, но тема, которую я использую (zerif), использует функцию wp_head для подключения всех скриптов.

Я пытался понять, где можно отредактировать вывод этой функции и изучил документацию WordPress.

Там сказано, что каждая тема определяет это с помощью do_action("wp_head").

Я искал это в коде темы, но ничего не нашел. Как я могу это отредактировать? Должен ли я жестко прописать всё без использования wp_head()?

0
Все ответы на вопрос 1
0

Вы можете удалить некоторые стандартные ссылки WordPress из раздела head с помощью функции remove_action(). Например:

// Удаляет ссылку на wlwmanifest
remove_action( 'wp_head', 'wlwmanifest_link' );
// Удаляет ссылку RSD
remove_action( 'wp_head', 'rsd_link' );
// Удаляет короткую ссылку WordPress
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );
// Удаляет канонические ссылки
remove_action( 'wp_head', 'rel_canonical' );
// Удаляет ссылки на дополнительные фиды, такие как фиды категорий
remove_action( 'wp_head', 'feed_links_extra', 3 ); 
// Удаляет ссылки на основные фиды: фиды записей и комментариев
remove_action( 'wp_head', 'feed_links', 2 ); 
// Удаляет ссылку на индекс
remove_action( 'wp_head', 'index_rel_link' ); 
// Удаляет ссылку "предыдущая"
remove_action( 'wp_head', 'parent_post_rel_link' ); 
// Удаляет ссылку "начало"
remove_action( 'wp_head', 'start_post_rel_link' ); 
// Удаляет реляционные ссылки для записей, смежных с текущей
remove_action( 'wp_head', 'adjacent_posts_rel_link' );
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head' );
// Удаляет информацию о версии WordPress, т.е. -
remove_action( 'wp_head', 'wp_generator' );

Чтобы отключить поддержку эмодзи (CSS и JavaScript):

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

Эти изменения необходимо внести в файл functions.php вашей темы.

Чтобы отредактировать файлы, подключаемые вашей темой (например, zerif), вам также потребуется изменить файл functions.php. Например, вы можете найти там что-то подобное:

wp_enqueue_style( 'style', get_stylesheet_uri() );
wp_enqueue_style( 'shortcodes', get_template_directory_uri() . '/css/shortcodes.css' );
wp_enqueue_style( 'font-awesome', get_template_directory_uri() . '/css/font-awesome.css' );
wp_enqueue_script( 'jquery' );

Если вы не найдёте этого в своём файле functions.php, это может означать, что тема разделяет содержимое functions.php на несколько файлов, обычно расположенных в специальной папке с названием inc, include или framework. Это легко проверить: такие файлы должны подключаться в вашем functions.php. Например:

locate_template( 'inc/widgets.php', true, true );
locate_template( 'inc/sidebars.php', true, true );
locate_template( 'inc/breadcrumbs.php', true, true );
locate_template( 'inc/whatever.php', true, true );
30 окт. 2015 г. 14:12:54