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"> * * * @package Stock */ ?> <!doctype html> <html <?php language_attributes(); ?>> <head> <meta charset= "<?php bloginfo( 'charset' ); ?>" > <meta name= "viewport" content= "width=device-width, initial-scale=1" > <?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. * * * @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!