Here’s my presentation for the Atlanta WordPress Users Group to continuing their discussion on theming. The meetup gives you a first hand look at modifying your Theme’s look and feel. We’ll be showing you how to make typical changes to existing themes. We will not be showing you how to create your own theme from scratch, though we will have a meetup later in the year to do that.
During this meetup we discussed:
• What is CSS and why do we use it?
• What are ‘typical’ modifications to themes and how to make them
• Using ‘inspect element’ and/or ‘firebug’ to find and test
• Correct way to change Fonts
• Simple color theory and design
Here’s the slide deck for the presentation
The presentation overviews the internet, teaches us how to spell HTML and other web programming “languages” that come together to form a WordPress website, like HTML, CSS & PHP. We even discussed web development tools like FTP clients and which text editors to use. We went over what makes up a wordpress theme and then the concept of child themes. Discussed the process of creating your own child theme with just a couple files and that you can create a child theme for any theme out there. We demoed how to view source and dissect any website, but more importantly, how to inspect elements on your site and live-edit the css for any element. Then to write these CSS rules to our theme to lock in the edits in your child theme.
If you have any further questions that you would specifically like reviewed, leave them in the comments below and I’ll respond.
We created a child theme for twentysixteen
We created our own child theme and discussed the benefit to creating a child theme over other ways to modify a WP theme. Our twentysixteen child theme did wonders for the look:

We explored the code to create our own WordPress child theme
Here are the code snippets for review
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| function theme_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() . '/style.css', array( $parent_style ) ); | |
| } | |
| add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' ); | |
| ?> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| /** | |
| * The template for displaying the header | |
| * | |
| * Displays all of the head element and everything up until the "site-content" div. | |
| * | |
| * @package WordPress | |
| * @subpackage Twenty_Sixteen | |
| * @since Twenty Sixteen 1.0 | |
| */ | |
| ?><!DOCTYPE html> | |
| <html <?php language_attributes(); ?> class="no-js"> | |
| <head> | |
| <meta charset="<?php bloginfo( 'charset' ); ?>"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |
| <meta name="who" content="is your daddy"> | |
| <link rel="profile" href="http://gmpg.org/xfn/11"> | |
| <?php if ( is_singular() && pings_open( get_queried_object() ) ) : ?> | |
| <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>"> | |
| <?php endif; ?> | |
| <?php wp_head(); ?> | |
| </head> | |
| <body <?php body_class(); ?>> | |
| <div id="page" class="site"> | |
| <div class="site-inner"> | |
| <a class="skip-link screen-reader-text" href="#content"><?php _e( 'Skip to content', 'twentysixteen' ); ?></a> | |
| <header id="masthead" class="site-header" role="banner"> | |
| <div class="site-header-main"> | |
| <div class="site-branding"> | |
| <?php | |
| $description = get_bloginfo( 'description', 'display' ); | |
| if ( $description || is_customize_preview() ) : ?> | |
| <p class="site-description"><?php echo $description; ?></p> | |
| <?php endif; ?> | |
| <?php if ( is_front_page() && is_home() ) : ?> | |
| <h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1> | |
| <?php else : ?> | |
| <p class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p> | |
| <?php endif; ?> | |
| </div><!– .site-branding –> | |
| <?php if ( has_nav_menu( 'primary' ) || has_nav_menu( 'social' ) ) : ?> | |
| <button id="menu-toggle" class="menu-toggle"><?php _e( 'Menu', 'twentysixteen' ); ?></button> | |
| <div id="site-header-menu" class="site-header-menu"> | |
| <?php if ( has_nav_menu( 'primary' ) ) : ?> | |
| <nav id="site-navigation" class="main-navigation" role="navigation" aria-label="<?php esc_attr_e( 'Primary Menu', 'twentysixteen' ); ?>"> | |
| <?php | |
| wp_nav_menu( array( | |
| 'theme_location' => 'primary', | |
| 'menu_class' => 'primary-menu', | |
| ) ); | |
| ?> | |
| </nav><!– .main-navigation –> | |
| <?php endif; ?> | |
| <?php if ( has_nav_menu( 'social' ) ) : ?> | |
| <nav id="social-navigation" class="social-navigation" role="navigation" aria-label="<?php esc_attr_e( 'Social Links Menu', 'twentysixteen' ); ?>"> | |
| <?php | |
| wp_nav_menu( array( | |
| 'theme_location' => 'social', | |
| 'menu_class' => 'social-links-menu', | |
| 'depth' => 1, | |
| 'link_before' => '<span class="screen-reader-text">', | |
| 'link_after' => '</span>', | |
| ) ); | |
| ?> | |
| </nav><!– .social-navigation –> | |
| <?php endif; ?> | |
| </div><!– .site-header-menu –> | |
| <?php endif; ?> | |
| </div><!– .site-header-main –> | |
| <?php if ( get_header_image() ) : ?> | |
| <?php | |
| /** | |
| * Filter the default twentysixteen custom header sizes attribute. | |
| * | |
| * @since Twenty Sixteen 1.0 | |
| * | |
| * @param string $custom_header_sizes sizes attribute | |
| * for Custom Header. Default '(max-width: 709px) 85vw, | |
| * (max-width: 909px) 81vw, (max-width: 1362px) 88vw, 1200px'. | |
| */ | |
| $custom_header_sizes = apply_filters( 'twentysixteen_custom_header_sizes', '(max-width: 709px) 85vw, (max-width: 909px) 81vw, (max-width: 1362px) 88vw, 1200px' ); | |
| ?> | |
| <div class="header-image"> | |
| <a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"> | |
| <img src="<?php header_image(); ?>" srcset="<?php echo esc_attr( wp_get_attachment_image_srcset( get_custom_header()->attachment_id ) ); ?>" sizes="<?php echo esc_attr( $custom_header_sizes ); ?>" width="<?php echo esc_attr( get_custom_header()->width ); ?>" height="<?php echo esc_attr( get_custom_header()->height ); ?>" alt="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>"> | |
| </a> | |
| </div><!– .header-image –> | |
| <?php endif; // End header image check. ?> | |
| </header><!– .site-header –> | |
| <div id="content" class="site-content"> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| Theme Name: Child of 2016 | |
| Theme URI: http://example.com/twenty-fifteen-child/ | |
| Description: Twenty Sixteen Child Theme | |
| Author: Evan Mullins | |
| Author URI: https://circlecube.com | |
| Template: twentysixteen | |
| Version: 1.0.0 | |
| License: GNU General Public License v2 or later | |
| License URI: http://www.gnu.org/licenses/gpl-2.0.html | |
| Text Domain: twenty-sixteen-child | |
| */ | |
| .site-branding .site-title a { | |
| color: cyan; | |
| font-size: 4rem; | |
| // border: 1px solid red; | |
| margin: 50px; | |
| padding: 50px; | |
| } | |
| .site-description { | |
| text-indent: -999rem; | |
| background: url(img/logo.png) center center no-repeat transparent; | |
| background-image: url(img/logo.png); | |
| display: block; | |
| width: 500px; | |
| height: 500px; | |
| background-size: contain; | |
| padding:0; | |
| } | |
| .entry-date { | |
| font-size: 10px; | |
| } | |
| .entry-footer, | |
| .entry-footer a { | |
| color: pink; | |
| } | |
| .entry-footer a { | |
| color: pink; | |
| } | |
| a { | |
| color: tomato; | |
| } | |
| a:hover { | |
| color: rgba(130,203,45, .8); | |
| } | |
| a:visited { | |
| color: #00cc33; | |
| } | |
| .widget_meta { | |
| display:none; | |
| } | |
| .widget_recent_comments { | |
| padding: 1rem; | |
| margin: 1rem 0 4rem; | |
| } | |
| .widget_recent_comments .widget-title { | |
| background: black; | |
| color: pink; | |
| padding: 1rem; | |
| } | |
| .site-info .site-title { | |
| font-size: 3rem; | |
| } |
I have been using foundation and bootstrap on sites and have struggled with the best way to add a button class to this button since I wanted it to inherit the frameworks styles for a button. I’ve seen a few ways to go about doing this, like using javascript (ug), or adding an extra button and hiding the original button with css (meh). But now it’s a simple little filter to add to comment_form_defaults. Just add your desired class value to ‘class_submit’ in the args. I’ve put it into a simple little gist to add a ‘button’ class to my input type equals submit:
Building large websites gets complicated, even in WordPress. Large sites usually mean there are many subpages and sections to the website that may need to be styled similarly. I’ve found it helpful to add a page’s parent page slug to the body class to allow me to alter or target the page or group of pages via css. By default the themes I’ve used have been generous in adding classes to the html body element for easy css selection rules. Things like the post slug, page template, logged in status, page vs post (or custom post type), post id, author… you get the idea. While half the time I don’t need half of this and the other half the time I find myself needing more.
Walking through the code here we’re filtering the 











