0
Intro To WordPress Development<br />Kenny Younger (@kenny)<br />&<br />Andy Brudtkuhl (@abrudtkuhl)<br />
What does WordPress look like to the users?<br />Let’s take a look!<br />
Database<br />
Database Schema<br />Source: SchemaBank.com<br />
File Structure<br />
/<br />wp-admin/<br />wp-content/<br />plugins/<br />Each plugin usually has its own directory<br />themes/<br />Each them...
wp-config.php<br />define('WP_ALLOW_MULTISITE', true);<br />
Debugging made easy<br />Debugging flags added to wp-config.php:<br />define( 'WP_DEBUG', true );<br />define( 'SCRIPT_DEB...
WordPress Themes<br />What are themes? A way to skin WordPress<br />
What’s In A WordPress Theme?<br />WordPress themes are a combination of PHP, CSS, and image files<br />Requirements:<br />...
Anatomy Of A WordPress Theme<br />
Theme Structure<br />Index.php<br />includes header.php<br />Includes sidebar.php<br />Includes footer.php<br />
Standard Theme Architecture<br />Homepage<br />index.php<br />home.php<br />Single Post<br />single.php<br />Page<br />pag...
tag.php
Search Results
search.php
404
404.php</li></li></ul><li>
The Stylesheet – style.css<br />The comment headers in the style.css provide meta info to WP are are REQUIRED<br />Thissty...
Functions.php<br />Contains theme related functions and commonly is used to generate dynamic sidebars<br />
The Loop<br />If (havePosts)<br />	show post stuff<br />Else<br />	nothing here!<br />End if<br />
Template Tags<br /><ul><li>the_title()
the_permalink()
the_content()
the_excerpt()
And more!</li></li></ul><li>Theme Frameworks<br />
What Is A WordPress Plugin?<br />Plugins are used to add or enhance functionalities of your WordPress site<br />
The Plugin Directory<br />http://wordpress.org/extend/plugins/<br />
The Plugin API<br />The API provides “Hooks” into WordPress<br />No more hacking the core<br />Made up of Actions and Filt...
Plugin Data<br />Sometimes it’s necessary to store data…<br />For large amounts, create a new database table<br />For smal...
Admin Menus<br />Custom option panels for users to update settings for your plugin<br />Adds options in WordPress Admin Da...
Users & Roles & Capabilities<br />WordPress is designed to handle multiple users – from admin and editors to subscribers<b...
Custom Fields<br />Allow attaching meta-data to posts.<br />http://www.smashingmagazine.com/2010/04/29/extend-wordpress-wi...
Custom Post Types<br />Used for:<br />Real Estate Listing<br />Event Calendar<br />Movie Database<br />Issue Management / ...
Upcoming SlideShare
Loading in...5
×

Getting Started With WordPress Development

7,853

Published on

A presentation from Iowa Code Camp 2010 by Kenny Younger (@kenny) and Andy Brudtkuhl (@abrudtkuhl)

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,853
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
244
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide
  • Describe each table.
  • Transcript of "Getting Started With WordPress Development"

    1. 1. Intro To WordPress Development<br />Kenny Younger (@kenny)<br />&<br />Andy Brudtkuhl (@abrudtkuhl)<br />
    2. 2. What does WordPress look like to the users?<br />Let’s take a look!<br />
    3. 3. Database<br />
    4. 4. Database Schema<br />Source: SchemaBank.com<br />
    5. 5. File Structure<br />
    6. 6. /<br />wp-admin/<br />wp-content/<br />plugins/<br />Each plugin usually has its own directory<br />themes/<br />Each theme has its own directory<br />uploads/<br />Created on first upload (default location)<br />wp-includes/<br />wp-config.php<br />
    7. 7. wp-config.php<br />define('WP_ALLOW_MULTISITE', true);<br />
    8. 8. Debugging made easy<br />Debugging flags added to wp-config.php:<br />define( 'WP_DEBUG', true );<br />define( 'SCRIPT_DEBUG', true );<br />define( 'SAVEQUERIES', true );<br /> $wpdb->queries<br />“All” hook:<br />add_action( 'all', create_function( '', 'var_dump( current_filter() );' ) );<br />Core Control Plugin: <br />http://wordpress.org/extend/plugins/core-control/<br />Dump Environment Plugin:<br />http://wordpress.org/extend/plugins/dump_env/<br />Source: http://www.andrewnacin.com/2010/04/23/5-ways-to-debug-wordpress/<br />
    9. 9. WordPress Themes<br />What are themes? A way to skin WordPress<br />
    10. 10. What’s In A WordPress Theme?<br />WordPress themes are a combination of PHP, CSS, and image files<br />Requirements:<br />HTML<br />CSS<br />Some PHP<br />
    11. 11. Anatomy Of A WordPress Theme<br />
    12. 12. Theme Structure<br />Index.php<br />includes header.php<br />Includes sidebar.php<br />Includes footer.php<br />
    13. 13. Standard Theme Architecture<br />Homepage<br />index.php<br />home.php<br />Single Post<br />single.php<br />Page<br />page.php<br />Category<br />category.php<br />archive.php<br /><ul><li>Tags
    14. 14. tag.php
    15. 15. Search Results
    16. 16. search.php
    17. 17. 404
    18. 18. 404.php</li></li></ul><li>
    19. 19. The Stylesheet – style.css<br />The comment headers in the style.css provide meta info to WP are are REQUIRED<br />Thisstylesheet also controls the layout and design elements of your theme…<br />
    20. 20. Functions.php<br />Contains theme related functions and commonly is used to generate dynamic sidebars<br />
    21. 21. The Loop<br />If (havePosts)<br /> show post stuff<br />Else<br /> nothing here!<br />End if<br />
    22. 22. Template Tags<br /><ul><li>the_title()
    23. 23. the_permalink()
    24. 24. the_content()
    25. 25. the_excerpt()
    26. 26. And more!</li></li></ul><li>Theme Frameworks<br />
    27. 27. What Is A WordPress Plugin?<br />Plugins are used to add or enhance functionalities of your WordPress site<br />
    28. 28. The Plugin Directory<br />http://wordpress.org/extend/plugins/<br />
    29. 29. The Plugin API<br />The API provides “Hooks” into WordPress<br />No more hacking the core<br />Made up of Actions and Filters<br />Actions = functions triggered by events<br />ie: Call function on user log in<br />Filters = functions that modify information<br />ie: Add facebook share button before post <br />
    30. 30. Plugin Data<br />Sometimes it’s necessary to store data…<br />For large amounts, create a new database table<br />For small amounts, use WordPress “Options” – a table with key/value pairs<br />
    31. 31. Admin Menus<br />Custom option panels for users to update settings for your plugin<br />Adds options in WordPress Admin Dashboard<br />
    32. 32. Users & Roles & Capabilities<br />WordPress is designed to handle multiple users – from admin and editors to subscribers<br />5 Pre-Defined Roles<br />Administrator<br />Editor<br />Author<br />Contributor<br />Subscriber<br />http://codex.wordpress.org/Roles_and_Capabilities<br />
    33. 33. Custom Fields<br />Allow attaching meta-data to posts.<br />http://www.smashingmagazine.com/2010/04/29/extend-wordpress-with-custom-fields/<br />
    34. 34. Custom Post Types<br />Used for:<br />Real Estate Listing<br />Event Calendar<br />Movie Database<br />Issue Management / Ticket System<br />Etc.<br />
    35. 35. Custom Post Type Options<br />label<br />singular_label<br />description<br />public – query-able from public?<br />menu_position<br />menu_icon<br />hierarchical<br />query_var<br />capability_type – permissions<br />supports<br />rewrite<br />taxonomies<br />register_meta_box_cb<br />permalink_epmask<br />
    36. 36. Custom Post Types – Integration with the loop<br /><?php $loop = new WP_Query( array( 'post_type' => my_custom_post_type', 'posts_per_page' => 10 ) ); ?><br /><?php while ( $loop->have_posts() ) : $loop->the_post(); ?><br /> <?phpthe_title( '<h2 class="entry-title"><a href="' . get_permalink() . '" title="' . the_title_attribute( 'echo=0' ) . '" rel="bookmark">', '</a></h2>' ); <br /> ?><br /> <div class="entry-content"><br /> <?phpthe_content(); ?><br /> </div><br /><?phpendwhile; ?><br />
    37. 37. Taxonomies<br />What are taxonomies?<br />register_taxonomy()<br />Shows up in menu system<br />Demo<br />register_taxonomy( <br /> 'actor', <br /> 'post', <br /> array( <br /> 'hierarchical' => false, <br /> 'label' => __('Actors', 'series'), <br /> 'query_var' => 'actor', <br /> 'rewrite' => array( 'slug' => 'actors' ) <br /> ) <br /> );<br />
    38. 38. Core Development<br />Versioning<br />0.1 increments<br />Based on time, not features<br />Generally every 5-6 months<br />0.0.1 – usually security fixes, other small bug fixes<br />Always update!!<br />Mailing lists: <br />http://codex.wordpress.org/Mailing_Lists<br />Trac: <br />http://core.trac.wordpress.org<br />
    39. 39. Resources<br />Planet - planet.wordpress.org<br />WordPress Codex – codex.wordpress.org<br />WordPress Forums – wordpress.org/support<br />All Things WordPress- wordpress.alltop.com <br />Core Development Blog – devel.wordpress.org<br />
    40. 40. August 7th, Downtown Des Moines Public Library<br />
    41. 41. Thanks!!!<br />Kenny Younger (@kenny)<br />&<br />Andy Brudtkuhl (@abrudtkuhl)<br />
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×