' . __( 'Pages:', 'twentyseventeen' ),
'after' => '
',
'link_before' => '',
'link_after' => '',
) );
?>
What does it take to develop a Wordpress site?
I had a very interesting conversation at my coffee shop the other day. It revolved around Wordpress and how easy it is (or isn't) to modify and customize. In the 10+ years I've been using it things have gotten to the point where you don't really need to know PHP as much as you used to. In this post we'll cover the following aspects of customizing a Wordpress theme and associated tools and functionality: - CSS customizations - Local changes using filters and actions - Creating child themes - Customizing templates - Using Wordpress REST API to create a completely different front end - When it's best to create a theme from scratch We'll also talk about the minimal skillset necessary for creating a Wordpress theme with the understanding that it will depend on the changes you want to make. **My personal biases against Wordpress business model** I make no secret of the issues I have against Wordpress and their business model. In [GPL and why I don’t develop for WordPress](https://publishing-project.rivendellweb.net/gpl-and-wordpress-developer-beware/) I've documented my opposition against the heavy handed approach Matt Mullenweg and Automattic took against an independent theme developer. In short, because I release all my code under MIT, I would not be able to offer my code, plugins or themes in Wordpress.org. They will not host code released under licenses other than GPL even if they are more permissive. I am philosophically opposed to GPL/LGPL and Affero general public licenses. I should be the one deciding the license I release my code under, not the Free Software Foundation or Automattic. That said, _not wanting_ to develop for Wordpress doesn't equal _not knowing_ how to develop for Wordpress. Sharing this post doesn't equal endorsing their policies. ## CSS cutomizations The easiest way to change the looks of a Wordpress app is to change the theme's CSS. Dev Tools comes in very handy when you're trying to figure out the specific elements to style. For this section I'm presenting 3 different cases Changing the fonts for a theme could be done with something like this. Note that we import the fonts in the CSS rather than enqueuing the fonts in `functions.php` like we'll do later in the post. These styles will apply to the entire content. ```css @import "https://fonts.googleapis.com/css?family=Handlee"; @import "https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic,300,300italic"; @import "https://fonts.googleapis.com/css?family=Source+Code+Pro:400,300"; body { font-family: Lato, Verdana, Helvetica, sans-serif; font-size: 16px; /* 1rem = 16px */ font-weight: 300; } h1, h2, h3 { clear: both; font-family: 'Handlee', cursive !important; margin-bottom: .25em; text-rendering: optimizeLegibility; } ``` When changing the font for h1 tags only when they appears in single post pages we need to figure out the class associated with the content that you want to change. To change the h1 tag in the title we need to change the `.entry-title` class. ```css h1.entry-title { clear: both; font-family: 'Handlee', cursive !important; margin-bottom: .25em; text-rendering: optimizeLegibility; } ``` Adding styles for manually entered CSS is simple. I write embeds for Youtube and Vimeo videos using a syntax like the one below ```markup