как изменить шаблон вордпресс, дочерняя темаНаконец, я нашла подходящую тему wordpress, в которую мне захотелось внести еще несколько изменений. Чтобы обновления, которые будет делать автор шаблона, не уничтожили мои труды, я сделаю дочернюю тему wordpress. Моя задача – в установленном новом шаблоне внести небольшие правки в файл functions.php, они позволят ускорить загрузку блога. Почему мне пришлось менять шаблон, я писала тут.

Создание дочерней темы wordpress

Чтобы создать дочернюю тему Вордпресс у себя на хостинге (у меня Спринтхост) в папке domains/ваш-сайт.ru/public_html/wp-content/themes/ создайте новую папку. Работать можно через FTP Client FileZilla, как это делать написано тут, либо непосредственно через админку хостинга. Для нормальной работы дочерней темы потребуется только два файла: style.css и functions.php.
как создать дочернюю тему
Назовите папку произвольно, обычно дочерние темы имеют окончание child (ребенок).
создание дочерней темы
В папке создайте пустой файл с именем style.css.
дочерняя тема вордпрессwordpress сделать тему
В нем пропишите следующий код, вот как написано у меня

/*
Theme Name: kasa-green-child
Theme URI: https://moi-start.ru/
Description: Это специальная дочерняя тема.
Author: novichok
Author URI: https://moi-start.ru/
Template: kasa-green
Version: 1
*/
// дополнительные стили
.foo{ color:red; }
/*

В дополнительных стилях прописываем только то, что надо изменить. Так можно изменить цвет, размер элементов шаблона, через css подключить новые изображения.

Обратите внимание на строчку Template: kasa-green. Название kasa-green я скопировала вот отсюда, по нему WordPress опознает дочернюю тему.дочерняя тема
Если записать название неправильно, шаблон окажется поврежденным, дочерняя тема просто не установится, поскольку WordPress не сможет найти шаблон-родитель, стили будет загружать неоткуда.

В этой же папке создайте файл functions.php, в него напишите код

<?php
add_action('wp_enqueue_scripts', 'my_theme_styles' );
function my_theme_styles() {
	wp_enqueue_style('parent-theme-css', get_template_directory_uri() .'/style.css' );
	wp_enqueue_style('child-theme-css', get_stylesheet_directory_uri() .'/style.css', array('parent-theme-css') );
}

Эта функция позволит загружать одновременно стили родительской темы и дочерней, сокращая количество запросов к серверу, уменьшая время загрузки страницы.

Я пробовала использовать код @import url("../kasa-green/style.css");, который часто рекомендуют в других блогах. Но при медленном интернете он не работает, поскольку сначала грузятся стили дочерней темы, затем браузер натыкается на директиву @import и начинает грузить стили родительской темы… Слишком долго, посетители ждать не станут.

Создание дочерней темы завершено, надо ее активировать. Проверила, все работает. Не хватает только подходящего скриншота, его тоже можно добавить в только что созданную папку themes/kasa-green-child. Тогда ваша нова тема обретет симпатичное "лицо".дочерняя тема wordpress

Зачем я создала дочернюю тему wordpress

Сделав дочернюю тему wordpress, я смогу обновлять родительскую тему, не теряя своих изменений. Сейчас в файл functions.php добавлю коды:

  • для удаления лишних строчек (ссылок на feed, rss, на ). Это позволит уменьшить количество запросов к базе данных
/* удаляем лишние строчки */
remove_action( 'wp_head', 'wp_generator' );
remove_action( 'wp_head', 'wlwmanifest_link' );
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', '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', 'profile_link' );
/* удаляем лишние строчки */
  • для удаления версий из стилей и скриптов, что сделает код более чистым
// Удаление параметра ver из добавляемых скриптов и стилей

function rem_wp_ver_css_js( $src ) {

    if ( strpos( $src, 'ver=' ) )

        $src = remove_query_arg( 'ver', $src );
    return $src;
}
add_filter( 'style_loader_src', 'rem_wp_ver_css_js', 9999 );

add_filter( 'script_loader_src', 'rem_wp_ver_css_js', 9999 );
/* удаляем параметр ver */
  • отключу heartbeat, как рекомендовано в этой статье
/*отключить heartbeat------------------ */ 
add_action('init', 'stop_heartbeat', 1);
function stop_heartbeat() {
 wp_deregister_script('heartbeat');
 }
  • избавлюсь от ссылок replytocom (ранее созданных)
/* -------------------------------------- */ 
/* избавление от ссылки replytocom */ add_filter('comment_reply_link','avd_custom_comment_reply_link'); function avd_custom_comment_reply_link( $link ) {$link = preg_replace( '~href=([\'"]{1})([^\'"]+)#([^\'"]*)([\'"]{1})~i', 'href=$1#$3$4', $link, 1); return $link;} /* избавление от ссылки replytocom */
  • добавлю микроразметку к изображениям
/* микроразметка изображений================================================= */
function micro_image($content) { 
global $post; $pattern = "<img"; 
$replacement = '<img itemprop="image"'; 
$content = str_replace($pattern, $replacement, $content); 
return $content; 
} 
add_filter('the_content', 'micro_image');
/* ========================================================================== */
  • скрою ссылки на авторов комментариев. Зачем, написано тут
/*сокрытие ссылок на автора комментария*/ function hidden_comment_author_link( $hidden_link ){ $hidden_link = str_replace( array('<a', '</a>', 'href='), array('<span class="spanlink"', '</span>', 'rel='), $hidden_link ); return $hidden_link; } add_filter( "get_comment_author_link", "hidden_comment_author_link" ); /*сокрытие ссылок на автора комментария*/

Эти полезные коды найдены в интернете, они помогут улучшить работу блога.