What we will cover
- Generate theme
- Header and footer markup
- Register widget
Generate Starter Theme
Create the underscores based theme at www.underscores.me with following information –
- Theme Name (e.g., Stock)
- Advanced Options
- Theme Slug (e.g., stock-codexcafe)
- Author (e.g., CodexCafe)
- Author URI (e.g., https://www.CodexCafe.net)
- Description (e.g., CodexCafe WordPress Theme)

Install the starter theme
- From dashboard Appearance Themes add new theme
- Upload the generated theme.
- Install it
Install Visual Composer Plugin
- From dashboard Appearance Plugin add new plugin
- Upload visual composer plugin
- Install the plugin
Organize the theme files and folders
- Create a folder called “assets” and move all css, js, fonts, images to css, js, fonts, img folders within the “assets” folder.
Markup Header
- We will start header markup within <div id=”page” class=”site”> [HEADER CONTENTS] </div> at header.php
- We will delete all other div and codex including the .site-content div
<?php
/**
* The header for our theme
*
* This is the template that displays all of the <head> section and everything up until <div id="content">
*
* @link https://developer.wordpress.org/themes/basics/template-files/#template-partials
*
* @package Stock
*/
?>
<!doctype html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="profile" href="http://gmpg.org/xfn/11">
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<div id="page" class="site">
<div class="header-area">
<div class="container">
<div class="row">
<div class="col-md-3">
<div class="site-logo">
<h2><a href="<?php echo esc_url(home_url('/')); ?>"><?php bloginfo( 'name' ); ?></a></h2>
</div>
</div>
<div class="col-md-9">
<div class="header-right-content">
<a href="mailto:contact@stock.com" class="stock-contact-box">
<i class="fa fa-envelope"></i>
Send us an email
<h3>contact@stock.com</h3>
</a>
<a href="mailto:contact@stock.com" class="stock-contact-box">
<i class="fa fa-phone"></i>
Give us a call
<h3>+014-547-0354</h3>
</a>
<div class="stock-contact-box">
<i class="fa fa-map-marker"></i>
We are open
<h3>Mon - Fri, 9am - 6pm</h3>
</div>
<a class="stock-cart"><i class="fa fa-shopping-cart"></i> <span class="stock-cart-count">3</span></a>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="mainmenu">
<?php
wp_nav_menu( array(
'theme_location' => 'menu-1',
'menu_id' => 'primary-menu',
) );
?>
</div>
</div>
</div>
</div>
</div>
Special Notes:
- .header-area class will help to make Header sticky
- wordpress prefer home_url(‘/’); than site_url(‘/’);
- all echo content must have to be sanitized
- sanitize the static home_url() with esc_url();
WP codex functions used:
- language_attributes();
- bloginfo( ‘charset’ );
- body_class();
- esc_url();
- home_url();
- bloginfo( ‘name’ );
- wp_nav_menu();
Markup Footer
- As we delete .site-content div on header.php we will delete the div ending </div> of .site-content on footer.php
- We will keep the ending div of #page
<?php
/**
* The template for displaying the footer
*
* Contains the closing of the #content div and all content after.
*
* @link https://developer.wordpress.org/themes/basics/template-files/#template-partials
*
* @package Stock
*/
?>
<footer id="colophon" class="site-footer">
<div class="container">
<?php if(is_active_sidebar('stock_footer')) : ?>
<div class="row">
<?php dynamic_sidebar('stock_footer'); ?>
</div>
<?php endif; ?>
<div class="row">
<div class="col-md-4">
<?php esc_html_e('Copyright 2018 - All Rights Reserved', 'stock-codexcafe'); ?>
</div>
<div class="col-md-4">
<?php
wp_nav_menu( array(
'theme_location' => 'footer-menu'
) );
?>
</div>
<div class="col-md-4">
<div class="social-icons">
<a href="#"><i class="fa fa-facebook"></i></a>
<a href="#"><i class="fa fa-twitter"></i></a>
<a href="#"><i class="fa fa-linkedin"></i></a>
<a href="#"><i class="fa fa-youtube"></i></a>
</div>
</div>
</div>
</div>
</footer><!-- #colophon -->
</div><!-- #page -->
<?php wp_footer(); ?>
</body>
</html>
Special Notes:
- We use conditional method for footer widget.
WP codex functions used:
- is_active_sidebar();
- dynamic_sidebar();
- esc_html_e();
- wp_nav_menu();
PHP used:
-
<?php if() : ?> <?php endif; ?>
Register Footer Widget
- Widget defined by register sidebar
- We already a registered sidebar in functions.php
- We will duplicate the sidebar and edit it for footer widget
Special Notes:
- Footer widget id stock_footer
- We have replaced section with div
- We added col-md-4 class before_widget
- Font size 18px is h4
Install Font Awesome
- download Font Awesome from fontawesome.io
- keep the fonts folder in assets folder
- keep the fontawesome.min.css in css folder within assets
- call it in functions.php
Install Bootstrap
- download bootstrap from
Wow, superb blog layout! How lengthy have you been running a blog for?
you made running a blog look easy. The overall look of your website
is excellent, as neatly as the content!