3. Why not a framework?
• Need to design a backend
• Usability
• Need to code a backend
• Difficult problems (WYSIWYG integration, file upload,
content filters, etc)
• Security
• Quality assurance
4. Why not a CMS?
Joomla Ez Publish
Mambo
Typo3
XOOPS
bitweaver
Expression
Engine
Drupal
5. Why not a CMS?
Joomla Ez Publish
Mambo
Wordpress is a CMS! Typo3
XOOPS
bitweaver
Expression
Engine
Drupal
6. Why not a CMS?
Joomla Ez Publish
Mambo
Wordpress is a CMS! Typo3
XOOPS
and it’s better...
Expression
bitweaver
Engine
Drupal
8. Backend Interface
• Designed by usability experts at Happy Cog
• Clean, Standards Compliant XHTML filters
• Flawless WYSIWYG Integration
• Easy media uploading and embedding
9. Wordpress.com
• Very popular
• #29 trafficed site in the US (via Quantcast)
• Alexa Rank: 29
• 4,209,042 blogs, 153,086 new posts, 37,653,000 words
today*
• Tons of user feedback
• An easy to sell to clients
• Corporate support: Automattic
*All stats on this slide were recorded September 24th, 2008.
20. Create Relationships
with Custom Fields
• Store related post ID in custom field
• Retrieve related post using the post ID
POST
(12)
POST
Feature Story: 14 (14)
POST
Quick Facts: 58 (58)
21. Relationships with Custom Fields:
Benefits
• Users can edit using the WYSIWYG
• We can feature posts on several pages
without copying
22. GoHave1.com:
Retrieving a
Feature Story
$custom = get_post_custom();
if (isset($custom['feature_story'][0])) {
$id = $custom['feature_story'][0];
$story =& get_post($id);
}
23. print_r($story);
stdClass Object
(
[ID] => 23
[post_author] => 1
[post_date] => 2008-03-25 14:48:37
[post_date_gmt] => 2008-03-25 22:48:37
[post_content] => I never entertained the idea...
[post_title] => Jo Krombholz's Story
[post_category] => 0
[post_excerpt] => I never entertained the idea...
[post_status] => publish
[comment_status] => open
[ping_status] => open
[post_password] =>
[post_name] => jo-krombholz
[to_ping] =>
[pinged] =>
[post_modified] => 2008-04-29 12:08:40
[post_modified_gmt] => 2008-04-29 20:08:40
[post_content_filtered] =>
[post_parent] => 0
[guid] => http://gohave1.com/archives/augue-ipsum-orci-dolor-interdum-enim/
[menu_order] => 0
[post_type] => post
[post_mime_type] =>
[comment_count] => 1
[ancestors] => Array
)
24. Relationships with Custom Fields:
Problems
“You want me
Usability nightmare! to do what??”
A. Posts that aren’t posts
B. Managing post IDs
26. Problem A:
Posts that aren’t posts
Solution:
Develop a new post type called ‘element’
Won’t show up in post lists
27. Problem B:
Managing Post IDs
Solution:
Simple post selection interface
Add panel below Categories
Include posts of type ‘element’
28. Final Thoughts
• Wordpress is not for every situation
• Only 90% of them
• As for the other 10%...
• Frameworks might work for you
• Write it from scratch!