WordPress Themes and Plugins


Published on

A basic introduction for web developers.

Published in: Technology, Business
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • For web developers who are familiar with WordPress and want to get started with their own themes and plugins
  • YAY for open source!

    Everything I know I learned from the interwebs!

    Keep in mind:

    - WordPress is evolving RAPIDLY! If you want to know where it's going, you can find information on WordPress.org and even check out the WordPress trac.

    - Random info/code on the web can be out of date or just plain wrong... always test, keep/make backups, and/or use version control.
  • Don’t be intimidated by a little bit of code! Copy and paste away, experiment with editing, and maybe you’ll learn something… A little goes a long way!
  • Oh good, I already know those stuffs! Now what are my options?

    Use an existing theme framework or parent theme to make a child theme

    Modify an existing theme (make sure the license allows this... many do!)

    Writing a theme from total scratch without any copying and pasting is just plain silly! At least copy and paste the loop!
  • Do you like what’s already there?
    How familiar are you with it?
    How much customization do you need?
    Do you need WordPress widget support?
    Is it compatible with plugins you want to use?
    How many themes are you going to make?
    Should I modify a theme or build a child?

    Watch out: random themes may have bugs or just not work as advertised, code might not be easy to follow or modify

    Support network: free/paid access to forums and lists, paid development services

    Is the code commented/self-explanatory? Is it valid XHTML? Cross-browser compatible? Is there an active, helpful, and enthusiastic community for support? Does the framework build upon WordPress’ existing standards or will I have to learn a whole new set of functions? How long will it take me to get up to speed? Does the framework do too much more than I need? Not enough?

    For best (quick) results: Choose a popular, well-tested theme or framework

  • A separate WordPress theme that works in conjunction with and builds off of an existing parent theme, using as much or as little of the parent theme's styles, templates, and functions as you want it to!

    You need to have the parent theme installed in order for the child theme to work (the child theme must be the activated theme).

    New in 2.7: Override parent templates and add new custom templates

    Child themes are definitely sounding more interesting these days… but are they really the answer?

    New in 2.7: Override parent templates and add new custom templates (previously limited to CSS and functions)
    YAYs: Leverage parent theme upgrades without having to update your own custom theme.
    Oh noes: If you do major customization and override a lot of templates, there may be little to leverage in the parent theme.

    Upgrades to the existing theme (adding features, enabling future WordPress compatibility, etc.) may still have to be merged into your customized one.
  • Child theme: Better for those who want to rely on the parent maker for upgrades and need less customization (best if you can do almost everything through CSS or PHP functions/plugins).

    Modifying: For those who need more customization to the various templates. Less to learn and less files to manage, so everything’s a bit more straightforward.

    Remember that themes may not always be standards compliant or fully supported by the latest WordPress release. This is why I often start with a cleaned up version of the default theme, Kubrick.

    Personal opinion: I don’t want to learn a new complicated framework, I just want to support the WordPress core and would rather spend my time keeping up and learning to do more with it. Plus I don’t want any extra bloat in my theme. HOWEVER, if WordPress came out with an official theme framework as part of the core distribution then I’d probably jump on it! I usually either start with a theme the client has picked out and do as much customization as necessary, or when starting with a photoshop template I directly modify a blanked out WordPress default theme. I sell my support and customization services usually on an hourly basis and all of the sites are different. If a client wants an upgrade to a newer WP, then it’s beneficial to me that they pay for it! So it also depends on your business model.
  • Stylesheet (style.css) – Know your CSS!
    Template files – Site markup and a bit of PHP
    Functions (optional: functions.php) – Write custom PHP code to add functionality, features, and services to your theme!
  • WordPress loads the appropriate template and sets certain variables based on the query string

    In your template, you need to write code that gets the content through these variables… eg. on most pages you’ll be iterating through an array posts

    AND you also need to write the site markup to display this content on the page

    Header, footer, sidebar, comments
  • Header/logo image – upload an image into the theme directory, adjust markup in header.php, and style with CSS
    Horizontal page menu – call WP function wp_list_pages(‘title_li=‘) in header.php and style with CSS
    Footer – adjust markup in footer.php and style with CSS

    Even if you are new to themes, if you know CSS you can already do a lot just by editing stylesheets!
  • What CAN’T you do? You can make your site do almost anything!

    Any function in functions.php can be written as a plugin (and vise versa)
    If the function only makes sense in your theme, then it’s probably better to put it in functions.php
    Main reason to make it a plugin: Share your super useful and cool functions across themes and with others!

    For those who know PHP or aren’t afraid of it!

    Override pluggable.php functions
    Use WordPress filters to manipulate data
    Use WordPress action hooks to run custom code where you want it
    Use built-in WordPress functions
    Access the database (using WordPress functions, of course)
    Connect WordPress to other applications and services

    For example, I use my WordPress website to refresh profile boxes on my Facebook app more or less hourly, because Facebook caches the content otherwise.
  • Sometimes all you need is to be able to understand what a piece of code does to use it. What’s the point in doing something someone else has already done? At the very least you can check out the options, and if you feel like it, you can do it yourself better!
  • WordPress Themes and Plugins

    1. 1. WordPress Themes and Plugins A basic introduction for web developers
    2. 2. Use free resources! • WordPress Codex: http://codex.wordpress.org • Source code of other themes, plugins, and the WordPress core • Search the internet! • WordPress support forums on WordPress.org: http://wordpress.org/support/
    3. 3. I want a custom theme! What skills do I need to have? • CSS • (X)HTML • Image editing (only if you plan on having any images and they’re not already ready to go) • Copy and paste!
    4. 4. Good to know: • PHP • MySQL • Javascript/jQuery
    5. 5. Theme options • Make a child theme • Modify an existing theme • Write your own new theme (or framework) from scratch with lots of copying and pasting!
    6. 6. Things to look for when researching existing themes and frameworks • Design and layout • Ease of use and quality of code • Documentation • Dependencies • Efficiency • Support network • Theme/framework/author reputation • Internationalization support
    7. 7. Child themes • The good: Leverage parent theme upgrades • The bad: Doing major customization may mean there might not be much to leverage!
    8. 8. Building smarter, faster, better! • Child theme: for those who want to rely on the parent maker for upgrades and need less customization • Modifying: for those who don’t care about upgrades, want a simpler structure, and need more customization
    9. 9. What is a WordPress theme? • Stylesheet (style.css) • Template files • Functions (optional: functions.php) /* Theme Name: MyTheme URI: the-theme's-homepage Description: a-brief-description Author: your-nameAuthor URI: your-URI Template: use-this-to-define-a-parent-theme—optional Version: a-number--optional. General comments/License Statement if any.. */
    10. 10. WordPress template hierarchy
    11. 11. Quick, easy, and effective theme customizations • Header/logo image – header.php • Page menus – WP functions: wp_list_pages, wp_page_menu, wp_nav_menu • Footer – footer.php Style everything with CSS!
    12. 12. What can I do with functions.php and plugins? • Write any custom code! • Override pluggable.php functions • Use WordPress filter and action hooks • Access the database (using WordPress functions, of course!) • Connect WordPress to other applications and services
    13. 13. Plugins (and theme functions) don’t have to be complicated! • Your coding skill can range from non-existent to expert (REALLY!) • Search, research, and make liberal use of your copy and paste skills /* Plugin Name: Magic Plugin Plugin URI: http://example.com/magic-plugin Description: Magic Plugin performs magic Version: 2.3 Author: Mr. MagicAuthor URI: http://example.com/ */