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.

Recovery after change in IP or hostname | Wordpress

If the wordpress site/blog is inaccessible following a change in the IP or the hostname, use the following option to reset the siteurl in the database manually.

mysql> update wp_options set option_value='<new ip/hostname>' where option_name='siteurl';

This might not always be the case, as you might not always have direct access to the database on the web host. Refer to Changing The Site URL to get this done in various restricted environments.

There might be a case where the site/blog is up and running but you end up being unable to access the admin portal (wp-admin). Add the following lines to your wp-config.php to regain access.

Note: Both settings should include the http:// part and should not have a slash "/" at the end.

define('WP_HOME','<new ip/hostname>');
define('WP_SITEURL','<new ip/hostname>');