Erwin Prasetyo

Web Designer dari Indonesia

How to Create a WordPress Theme from Scratch: Part 2

Sep 18th in WordPress by Sam Parkinson

It’s time for the good stuff now. We’ll be adding the comments system, a sidebar with widgets and an archive for all the old posts. This will cover all that you need for a simple but well functioning WordPress theme, and hopefully you be able to apply this to all sorts of theming projects.

Author: Sam Parkinson

I live in London, the capital city of England. I enjoy it, there is always something to do. As to what I’ve done web related, I’ve created a proxy site, a blog and a club site, I’ve also havd the pleasure of creating several web designs for a few lucky people. I’ve almost learn’t PHP, HTML and CSS are my area of expertise though I’m also a good guy to have when it comes to hardware.

Overview Of The Extras

Following on from the previous article on How to Create a WordPress Theme from Scratch, we are now going to add that oh so missing sidebar, the comments system and lastly an archive page. This should get you well introduced into WordPress theming, however you could always improve so I’ll also give you a bit of recommended reading.

I hope to show you how to setup a widget ready sidebar, which should also give you an idea of how to add widgets to other areas of a template. The comments system is fairly simple, but we always like our site to look good so there will be a bit of styling involved. Lastly the archive, this is one of WordPress’s standard template files, however custom pages are very similar, killing two birds with one stone…

Step 1 – The Sidebar

Always best to tackle the hard parts first right? Well lets get started then. Create a new file in your theme’s directory called functions.php and open it up for editing. Paste in the following:

  1. <?php
  2. if ( function_exists(‘register_sidebar’) )
  3. register_sidebar(array(
  4. ‘before_widget’ => ,
  5. ‘after_widget’ => ,
  6. ‘before_title’ => ‘<h2>’,
  7. ‘after_title’ => ‘</h2>’,
  8. ));
  9. ?>

What this does is tell WordPress that there is a widget ready sidebar in our theme. This code can be expanded on to include themes with several widget ready areas. We also state that our theme’s sidebar needs different HTML from what WordPress normally outputs. What this does is stop the sidebar widgets getting wrapped in <li> tags, which wouldn’t look so good for us.

Now, lets design that sidebar, create yet another file, called sidebar.php and paste in the following.

  1. <div id=“sidebar”>
  2. <?php if ( !function_exists(‘dynamic_sidebar’)
  3. || !dynamic_sidebar() ) : ?>
  4. <h2>About</h2>
  5. <p>This is the deafult sidebar, add some widgets to change it.</p>
  6. <?php endif; ?>
  7. </div>

What this does is simply tell WordPress where the sidebar is meant to be. There’s a little default text in there in case you don’t have any widgets on the sidebar.

Finally we need to include the sidebar file in index.php, so open that up and add the following just before the <div id="content"> tag, make sure the header include tag is still at the top of the file though.

  1. <?php get_sidebar(); ?>

Congrats, you’ve just added a dynamic sidebar to the theme.

Step 2 – Comments

The WordPress comment system can be as easy or as complicated as you wish, however because this is a simple tutorial that is building a simple theme, we’re going to use the simple method of adding comments to our posts.

WordPress makes it easy by having a standard commenting system design that comes with every copy of WordPress, and it can be used by any theme. So that’s what we’ll do. Open up index.php and put the following after line 13 (I’m talking about right after the line with all the post details like the_time(), etc.)

  1. <?php comments_template(); // Get wp-comments.php template ?>

As you can see, this includes a file that we do not have in our theme folder, but actually from somewhere within the confusing depths of WordPress. Joking aside, this makes our life a whole lot easier.

Test out your theme now, you’ll notice that it’s smart enough to not show the form and all the comments on the homepage, but when you click on a post it all renders as you want. Well… except for the fact that the textarea is way to big. To fix this we do not want to go and edit the core of WordPress but simply add a line of CSS, and make it somewhat easier to read in the process. So add the following to the bottom of style.css.

  1. textarea#comment { width: 400px; padding: 5px; }
  2. .commentmetadata { font-size: 10px; }

The first line will limit the textarea’s with to a sensible size and also add a bit of padding to make it that bit easier to read. You now have a simple but ever so functional commenting system in your theme.

The meta data was also a bit small, so thats what the second line covers.

Step 3 – The Archive

Most WordPress sites have an ‘archive’, the place to look for old posts. The commonly display two lists, one with links to all the posts in the sites categories, and one with all the posts by month. This keeps the archive quick to browse through and makes it a better user experience.

archives.php is seen by WordPress as one of their standard files, you do not need to add any special header to get it seen. However if you wish to make another page template that is not standard, take a read here.

So create the new file and put in the following, and all will be explained.

  1. <?php get_header(); ?>
  2. <?php get_sidebar(); ?>
  3. <div id=“content”>
  4. <h2 class=“entry-title”><?php the_title() ?></h2>
  5. <?php the_content() ?>
  6. <ul id=“archives-page” class=“xoxo”>
  7. <li id=“category-archives”>
  8. <h3>Archives by Category</h3>
  9. <ul>
  10. <?php wp_list_categories(‘optioncount=1&title_li=&show_count=1′) ?>
  11. </ul>
  12. </li>
  13. <li id=“monthly-archives”>
  14. <h3>Archives by Month</h3>
  15. <ul>
  16. <?php wp_get_archives(‘type=monthly&show_post_count=1′) ?>
  17. </ul>
  18. </li>
  19. </ul>
  20. </div>
  21. <?php get_footer(); ?>

This may look fairly similar to index.php however you may notice that there is no WordPress loop. This is because we’re creating a page, with only one item in it. We can still use functions such as the_title() to get and display information about the page.

There is also the the_content() function, so that if you did put a little text on this page it would still display. Now the next stuff is fairly simple, its a standard list (well two actually…) with two functions in it, wp_list_categories() and wp_get_archives(). Both functions output a standard list, the first list all the sites categories and gives each a link which go to display all posts in that category. The second does just the same except it displays months not categories.

The parameters in the functions make them display the category/month with a post count for added dynamic site factor, hehe. To add this cool archive page to your site you need to create a new page and change the “Page Template” option to the new “Archives Page” one. Check it out, a cool archive page for everyone to see how much you have written.

Review – Does it work?

Yes it does, the sidebar does its job. Same goes for the comment system and the archive page. I hope this has shown you the basics of how to make a WordPress theme, even if in the simplest of forms. Check out the links below to get started with the more advanced themeing available for WordPress.

Further Reading

  • The WordPress Codex

    The WordPress Codex

    Theme development, the codex is clear and well written documentation. Coming from the creators of WordPress, you can’t go wrong following its instructions.

    Visit

  • CSS Tricks Screencast

    There was a lot of mention about CSS Tricks 3 part guide to WordPress themeing, so I though I’d put it up on this one. It goes through how to build a nice site, a fair bit more complicated that this one but should improve on those themeing skills.

    Visit


Related Posts

Check out some more great tutorials and articles that you might like

Enjoy this Post?

Your vote will help us grow this site and provide even more awesomeness

sumber dari : http://nettuts.com/tutorials/wordpress/how-to-create-a-wordpress-theme-from-scratch-part-2/

About these ads

Filed under: Blog, Komputer,

Klik untuk mengenal lebih jauh Erwin

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Bergabunglah dengan 26 pengikut lainnya.

Erwin berkata….

RSS gurudesain

  • World Smallest Quadricopter Drone http://t.co/HFXa… 30/03/2015
    World Smallest Quadricopter Drone wp.me/p5HtNf-39 Posting World Smallest Quadricopter Drone http://t.co/HFXa… ditampilkan lebih awal di Guru Desain.
    Erwin Prasetyo
  • 5 Resources for Overcoming Creative Block 29/03/2015
    5 Resources for Overcoming Creative Block http://t… ift.tt/1De63UJ #gurudesain Posting 5 Resources for Overcoming Creative Block ditampilkan lebih awal di Guru Desain.
    Erwin Prasetyo
  • Optimizing Your Images for WordPress 28/03/2015
    Optimizing Your Images for WordPress ift.tt/1a5v3DS #gurudesain Posting Optimizing Your Images for WordPress ditampilkan lebih awal di Guru Desain.
    Erwin Prasetyo
  • How To Clear Color Swatches in Photoshop 27/03/2015
    How To Clear Color Swatches in Photoshop & Ill… ift.tt/1Enpdt5 #gurudesain Posting How To Clear Color Swatches in Photoshop ditampilkan lebih awal di Guru Desain.
    Erwin Prasetyo
  • Bagi yang ingin memulai kursus privat desain, kamu… 26/03/2015
    Bagi yang ingin memulai kursus privat desain, kamu bisa memilih program studi sesuai keinginan Kamu gurudesain.com/program-studi/ Posting Bagi yang ingin memulai kursus privat desain, kamu… ditampilkan lebih awal di Guru Desain.
    Erwin Prasetyo
  • Is Working Freelance Really Worth It? 26/03/2015
    Is Working Freelance Really Worth It? ift.tt/1LuTpCD #gurudesain Posting Is Working Freelance Really Worth It? ditampilkan lebih awal di Guru Desain.
    Erwin Prasetyo
  • How I Made a Cargo Bike in My Kitchen 25/03/2015
    How I Made a Cargo Bike in My Kitchen t.co… ift.tt/1DcNosi #gurudesain Posting How I Made a Cargo Bike in My Kitchen ditampilkan lebih awal di Guru Desain.
    Erwin Prasetyo
  • 8 Free Photorealistic Stationery Branding PSD Mock… 24/03/2015
    8 Free Photorealistic Stationery Branding PSD Mock… ift.tt/1xuOW29 #gurudesain Posting 8 Free Photorealistic Stationery Branding PSD Mock… ditampilkan lebih awal di Guru Desain.
    Erwin Prasetyo
  • Download a FREE Nexus 5 PSD template http://t.co/g… 24/03/2015
    Download a FREE Nexus 5 PSD template wp.me/p5HtNf-4j Posting Download a FREE Nexus 5 PSD template http://t.co/g… ditampilkan lebih awal di Guru Desain.
    Erwin Prasetyo
  • Download a FREE Nexus 5 PSD template 24/03/2015
    Download a FREE Nexus 5 PSD template on http://t.c… ift.tt/1LuehtH #gurudesain Posting Download a FREE Nexus 5 PSD template ditampilkan lebih awal di Guru Desain.
    Erwin Prasetyo

Blog Stats

  • 125,424 hits
web stats
Ikuti

Get every new post delivered to your Inbox.

Bergabunglah dengan 26 pengikut lainnya.

%d blogger menyukai ini: