Join Joseph Lowery for an in-depth discussion in this video Setting up a child theme, part of Dreamweaver and WordPress: Core Concepts.
In this lesson, I'm going to show you how to set up a WordPress child theme. As the name implies, a child theme is one based on another theme known naturally as the parent theme. A child theme can inherit styles from the parent while also establishing its own. Child themes allow you to make any and all necessary changes for a custom blog site while maintaining the parent theme. This latter point becomes really important if the parent theme has ever upgraded, as they often are. So let me start by opening up the style.css for our current theme, custom.
I'll go over to my Files panel and drill down into blog > wp-content > themes, the custom folder there, and expand that and then scroll down just a little bit more until you find style.css. Let's double-click that and open it up. At the top of the file you can see a comment that WordPress uses to get its theme information from. Here is the name of the file on line 2 as well as the URI of the developer, a short Description, the Author, and Version number. So we'll use a similar comment for our theme.
Now you know when you install a new WordPress theme it's maintained in its own subfolder found within wp-content themes just like the Twenty Eleven or the Custom theme we are using now. So to create a child theme, you need to create a new folder in the themes folder. So I'm going to right-click on themes and choose New Folder, and I am going to name this new folder roux, R-O-U-X.
All a child theme actually needs to be recognized by WordPress is its own style.css file, although you can also, as you'll see, add images, functions, separate pages just like you would any other theme. So let's create that CSS file now. I'll go to File > New and then from Page Type choose CSS and click Create. Well, let's go ahead and save this in our roux folder. So I'll choose File > Save. So here we are in the site root.
We'll drill down into blog > wp-content > themes, and there's our roux folder, and we want to save this using the default name used by WordPress, style.css, and once that's saved we want to get rid of the code that's up top here that Dreamweaver puts in because in order for it to be properly recognized as a style sheet for theme we have to start with a CSS comment that is correctly structured for WordPress.
so let's switch back over to our custom.style.css, and I just want to point out if you ever get confused when you have multiple style.css files open, you can always hover over the tab and Dreamweaver will show you the entire path, and you can see in there that I have this as the roux folder and here is the custom one, if you look at the third to last word there on the right. Now you also have this option, in Open Documents, which will show you the full path and allow you to switch from one to the other very easily. So here we are in the Custom Theme.
Let's go ahead and copy this opening comment here. I'll just select that and press Command+C, then switch back over and Command+V to paste it in. Most of this stays the same, but you do want to make a couple of changes. We'll need to change the names. So instead of Custom Theme, let's just call it Roux, and everything else can stay the same if it's still accurate, but you will need to add one more line, and that's the template line which indicates which parent to use.
So you want to put in the keyword template, followed by a colon. So let's put it right below Author here, Template, colon, and a space, and now you want to right in not the name of the theme as you might expect like Custom Theme, but rather the theme's folder name. So in this situation we are going to be linking to the theme that's in the folder custom with a lowercase c. So here I'll just put in custom and save my file. A child's theme style sheet completely replaces the style sheet of the parent.
So if you're not doing a complete overhaul and one of the benefits of doing a child theme is that you have to, the first thing you want to do is import the parent style sheet. So now I am going to add my @import statement, and we'll use the URL parameter to point to the style.css file located in the Custom Theme folder. And I'll place that right below the comment. So @import url, open parentheses, starting my quote here, and we're going to be going up a folder, so dot-dot slash, the name of the folder we're going into, which is custom, another slash to go back into that folder, and then style.css. Close the quote, close the parentheses, and put a semicolon at the very end.
Okay, we'll save our file, and we are ready for the last step in setting up our child theme, activation. So let's go back to the Dashboard, and we'll go to our Themes category, and now you see there's a new theme that's available to us, Roux. You will notice that, of course, this doesn't have a graphic, that's because we don't have an image named screenshot within the Roux Theme folder, but that's okay for now. We don't really need one.
So now if I go over the Details option, here, and click on that, you'll see some of the information that's pulled in from the comment, our version number, our short description, and it also tells you, and this is kind of important exactly where the template files are located and right now because this is a child theme, template files are located in themes/custom and the stylesheet files style.css, in other words, are in themes/roux. It goes onto say that roux uses templates from Custom Theme making it very clear that this is a child theme working with the parent custom. All true.
So all we need to do now is click Activate, and now our new theme is active, and if we were to preview it, we'd see exactly what we saw before with custom, because we're using its exact stylesheet. But the important thing is now that this part of the work is done we are ready to move on to complete customization. You'll find that child themes are pretty straightforward to set up, and as you'll see it's a perfect vehicle for your custom designs.
- Using the Dynamically-Related Files feature in Dreamweaver to design WordPress pages
- Applying WordPress themes
- Customizing themes
- Adding Spry widgets
- Adding WordPress dynamic data
- Populating the WordPress database
- Publishing a WordPress site
Skill Level Intermediate
Q: While trying to set up a Dreamweaver site, an error occurs that says Dreamweaver cannot resolve the dynamic files because the site definition is incorrect. What is causing this? This is using WAMP on a Windows 7 computer.
A: When setting up the site in Dreamweaver and creating a local testing server, make sure to point it to the folder in c:/wamp/www/ that is being used for the site. If using the same naming convention as shown in the videos, the server folder should be pointing to C:\wamp\www\explore_ca\ and the Web URL field should read http://localhost/explore_ca/, like the picture here:
Q: How do I set the password for WAMP Server 2?
A: The WAMP server does not include a password for MySQL when first installed. You’ll need to add a password by modifying a configuration text file and set up a password in the MySQL server.
Setting a password on the MySQL server:
- From the Start menu, enter CMD to open the command line interface.
- Switch to the bin directory of your MySQL folder, installed by WAMP. For version 5.1.36 of MySQL, for example, enter cd c:\wamp\bin\mysql\mysql5.1.36\bin
Navigate within the WAMP folder installed on your system to find the proper path.
- Enter the following: mysql -u root
- The command line for MySQL will open with a mysql prompt like this: mysql>
- Enter the following:
SET PASSWORD for 'root'@'localhost' = PASSWORD('yourPassword');
- replace 'yourPassword' with the password you want to use.
- Close the CMD window.
After you change the MySQL password you will have to edit the config.inc.php file. Here's how:
- In Windows Explorer, navigate to C:\wamp\apps\phpmyadmin220.127.116.11 (version number may vary).
- Open the file config.inc.php in Dreamweaver or another text editor.
- Locate the following line:
$cfg['Servers'][$i]['password'] = '';
- Enter your password between the quotes; make sure the password is the same as the one you set in the MySQL server.
- Save the file.
- From the system tray icon for WAMP, choose Restart All Services.
- To test, choose phpMyAdmin from the WAMP system tray icon.
Q: After creating a template following the instructions in the Chapter 5 video “Creating a page template in Dreamweaver,” I am unable to select the template. In the video, the instructor’s page shows a heading of Template, with a dropdown menu, but my version shows only a dropdown labeled “Attributes,” and the newly created template does not appear. What is causing this issue?
A: This seems to be a bug in WordPress that occurs occasionally. Although a cause has yet to be determined, a possible workaround to get the Template option to appear is switch themes. Switching to the default theme and then back again to Explore_California should reveal the Template option.
Q: While following along with the instructions in the "Setting up a MySQL password for Windows," I encountered this error: MySQL said: "#1045 – Access denied for user ‘root’@’localhost’ (using password: NO)" What is causing this error?
A: This error occurs when trying to enter the MySQL monitor with a password for a user who has not set a password yet. In that case, removing the “-u root” part should resolve the problem.
Q: While following along to the chapter 2 movie "Using dynamically related files," I get an error message that reads: "Dynamically-related files could not be resolved because the site definition is not correct for this server." What is causing this error?
A: This is a known issue with Dreamweaver, and relates to the permalink settings in the WordPress installation. If the permalink setting is set to something other than the default, like “Month & Name,” for example, Dreamweaver is unable to resolve the dynamic files, and the described error will occur. Changing the permalink setting back to Default will clear the error.
Q: I am bit confused as to my need to use MAMP with a WordPress site in Dreamweaver. If I am going to use a separate commercial hosting site as my server, do I still need to use MAMP in my WordPress site?
A: MAMP is installed to provide an easy-to-use development server capable of handling MySQL and PHP on your local computer. It's also possible to set up MySQL and PHP servers separately, but it requires many more steps and is not as "user-friendly" as the described process. Your hosting server will have MySQL/PHP enabled on their servers for the remote live setup, but that doesn't have anything to do with developing and testing pages on your own computer.
Q: I can't find the file named commevents.php in the exercise files. I need it to set up an online database in the last chapter.
A: This is a file you create yourself when you first connect to a database. Refer to the "Adding WordPress dynamic data to pages" video in Chapter 7. commevents.php should appear in the Connections folder once you establish a connection.
Q: In "Setting up a MySQL password for Windows", I'm getting the error "#1045 - Access denied for user 'root'@'localhost'" when testing the phpMyAdmin.
If I try and re-do the steps, I get the following error "ERROR 1044 (42000): Access denied for user ''@'localhost' to database mysql'" when I try to change the password.
A: This seems to be happening because of the combination of Windows 7 and a
new version of WampServer 2.1. Here's another approach that should work
for the new combination.
Follow these steps instead of the ones using the CMD prompt. (As a bonus, they're much easier!)
- Left-click on the WampServer icon tray.
- Choose phpMyAdmin.
- When the phpMyAdmin page opens in your browser, click the Privileges tab found after the Engines tab.
- Locate the line in the User table with "root - localhost - No..." (probably the last one).
- Click the Edit icon (the final item in the row).
- Scroll down to the Change Password section.
- Select Password and enter your password twice. (If you're following the exercises, enter root).
- Click Go in the lower-right corner.
Q: I want to setup the practice files and site on my localhost, as described; however, I already have my current WordPress site (under development) running on my localhost. How do I run two WordPress sites on my localhost?
A: You can easily do it by setting up another site in Dreamweaver. Just copy the WordPress files to that folder as described and establish a new database via phpMyAdmin. You can set up as many WordPress sites as you need to. The author has upwards of 80 on his system, all for different clients.
Q: This course was updated on 10/23/2012. What changed?
A: The course was thoroughly revised and uses the most current versions of both programs. We added chapters on responsive design and creating a custom administration panel in WordPress, new movies about concepts and taxonomies, and extended the Spry chapter to include jQuery, among other changes. New movies are indicated by the NEW tag next to the movie name.