Creating a child theme | Wordpress

If you make changes to a theme’s files, those changes are likely to be overwritten when you next update the theme. In order to prevent that from happening, we create a child theme in which you can make create copies of a theme’s files and tweak them, without fear of it being overwritten by any future theme updates.

All you need to do is create one folder, and stylesheet and functions file. And make sure that you have FTP access, before you continue reading this documentation.

Log into your website using your favorite FTP client, such as FileZilla, and navigate to wp-content/themes/ directory. This is the directory where all your themes are living a happy life.

Now, you need to create a new folder for your child theme. You can name it anything. For this example, we will be creating a child theme of Zerif Lite, so we will name it zerif-lite-child.

Once you have created your folder, you need to create a style.css file inside that folder. Your stylesheet will consist some vital information inside it, so paste the following in it using your favorite text editor:

/*
   Theme Name: Zerif Pro Child
   Theme URI: https://www.themeisle.com/ 
   Description: This is a custom child theme I have created.
   Author: Chuck Norris Author
   URI: https://www.themeisle.com/ 
   Template: zerif-pro
   Version: 0.1 
*/

Now, we need to load the stylesheet of the parent theme. Create a file named functions.php in the child theme folder, edit it, and paste the following:

<?php
add_action( 'wp_enqueue_scripts', 'child_enqueue_styles',99);
function child_enqueue_styles() {
    $parent_style = 'parent-style';
    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
  wp_enqueue_style( 'child-style',get_stylesheet_directory_uri() . '/custom.css', array( $parent_style ));
}
if ( get_stylesheet() !== get_template() ) {
    add_filter( 'pre_update_option_theme_mods_' . get_stylesheet(), function ( $value, $old_value ) {
         update_option( 'theme_mods_' . get_template(), $value );
         return $old_value; // prevent update to child theme mods
    }, 10, 2 );
    add_filter( 'pre_option_theme_mods_' . get_stylesheet(), function ( $default ) {
        return get_option( 'theme_mods_' . get_template(), $default );
    } );
}
?>

Now, Create a file named custom.css in the child theme folder, and add your CSS code there. It make easier to handle CSS code in separate file.

That's all. You just to save your progress and that's it.

No comments:

Post a Comment