SlideShare uma empresa Scribd logo
1 de 68
WordPress 3.0 Andrew Nacin WordPress Core Developer twitter @nacinweb andrewnacin.com email andrewnacin@gmail.com
Make sure WP_CACHE is true. Props nacin.
PHP 5.22011 Q2WordPress 3.2
In nine weeks,WordPress 3.0was downloaded12,654,147 times http://wordpress.org/download/counter/
WordPresspowers8.5 percent of the web Acquia
WordPressis a CMS
Custompost types Customtaxonomies Theme development The mergeof WPMU Why WordPress is a CMS 3.0
Custompost types Customtaxonomies Theme development The mergeof WPMU Why WordPress is a CMS
blog site
a post type isacontent type
What can post types be used for? Everything.
Core post types Posts Pages Attachments Revisions Menu Items
They are your content and storage. Blog Articles News Releases Portfolio Products Newsletter Events Tweets Employees My Reading List Documentation Forums Menu Items Uploads Logging Revisions
Why? Some use cases are obvious. Articles, Newsletters, Portfolio, Events Some are not. Logging, Menu items
Leverage what WordPressdoes best Performance No direct queries Utilize caching Extremely light Scalability Ease Full API Full admin UI Use existing features Why reinvent the wheel?
Leverage existing features What can posts have? Title, content, excerpt Author Categories, tags Revisions Comments, Pingbacks Thumbnails Attachments Custom fields (meta) What can you leverage? Templating URL Rewriting WP_Query Capabilities Admin UI, meta boxes Feeds
Let’s put it together add_action( 'init', 'my_employees_init' ); function my_employees_init() { register_post_type( 'my_employee', array( 'labels' => array( 'name'          => 'Employees', 'singular_name' => 'Employee' ), 'public'       => true, 'show_ui'      => true, 'rewrite'      => array( 'slug' => 'team' ), 'query_var'    => 'team', 'hierarchical' => false, 'supports' => array(			'title', 'thumbnail', 'editor', 'excerpt' ), 	) ); }
What’s it look like?
Editing me
Let’s create a quick template query_posts( array('post_type' => 'my_employee') ); if ( have_posts() ) : while ( have_posts() ) :the_post(); echo '<h2><a href="' . get_permalink() . '">' . get_the_title() . '</a></h2>'; the_post_thumbnail(); the_content(); echo '<p>Read posts by '; the_author_posts_link(); echo '</p>'; endwhile; endif;
Done. /team/ /team/andrew-nacin/ /blog/author/andrew-nacin/ (excuse my CSS)
Custom taxonomiesdescribe your content.
Core taxonomies Post Tags Categories Link Categories Menus
They describe your content. The difference between tags and categories is hierarchy. Topics People Cities Cities Content: Travel blog Cuisine Content: Restaurants Songs Content: Concerts Actors, Directors, Producers Content: Movies
Custom taxonomies are not new Database schema — WP 2.3, Sept. 2007 Custom taxonomies — WP 2.5, March 2008 Partial UI — WP 2.8, June 2009 In WP 3.0 — full custom UI implementation So basically, they’re now on steroids.
Specialties taxonomy register_taxonomy( 'my_specialties', 'nacin_employee', array( 'labels' => array( 'name'          => 'Specialties', 		'singular_name' => 'Specialty' ), 'public'       => true, 'show_ui'      => true, 'query_var'    => false, 'rewrite'      => false, 'hierarchical' => false, ) );
Edit screen
'hierarchical' => 'false'
'hierarchical' => 'true'
WordPress 3.0 makestheme development and customizations easier.
Admin UI screenshot
How? In our themefunctions.php: function my_theme_setup() { add_custom_background(); } add_action( 'after_setup_theme', 'my_theme_setup' ); 1 2 3 4
function my_theme_setup() { add_custom_background(); define( 'NO_HEADER_TEXT', true ); define( 'HEADER_IMAGE_WIDTH', 940 ); define( 'HEADER_IMAGE_HEIGHT', 198 ); define( 'HEADER_IMAGE', '%s/images/default.jpg' ); add_custom_header( 'my_theme_header_style', 	'my_theme_admin_header_style' ); register_default_header( array( 		'default' => array( 			'url' => '%s/images/default.jpg', 			'thumbnail_url' => '%s/images/default-thumb.jpg', 'description' => 'Default Header' ), 		) ); } add_action( 'after_setup_theme', 'my_theme_setup' ); 2 3 4 5 6 7 8 9 10 11 12 13
Custom Header, cont. function my_theme_admin_header_style() { echo '#headimg { height: ' .     HEADER_IMAGE_HEIGHT . 'px; width: ' .     HEADER_IMAGE_WIDTH . 'px; }'; } function my_theme_header_style() { echo '#header { background-image: url(' .    header_image() . '); }'; } 1 2 3 4 5 6
Menus Screenshot of menu admin
In our themefunctions.php: function my_theme_setup() { add_custom_background(); add_custom_header( 'my_theme_header_style', 	'my_theme_admin_header_style' ); 	// ... register_nav_menu('header', 'Primary Navigation'); } add_action( 'after_setup_theme', 'my_theme_setup' ); In our theme header.php: wp_nav_menu( array( 'theme_location' => 'header' ) ); 1 2 3 4 5 6 7
Menus Screenshot of menus in Twenty Ten
Evolving Theme Development get_template_part() It’s basicallyinclude()on steroids. Example: get_template_part('loop', 'archive'); Process: Check for loop-archive.php. Check the child theme first, if applicable. Otherwise, check for loop.php. Less Redundancy FTW.
get_template_part('header', 'home'); Is like calling: get_header( 'home' ); Same deal: header-home.php,then header.php.
What’s with thetheme improvements?In 3.0, we weretheme developers.
Kubrick!
Twenty Ten
Power one site or 10 million.
WordPress Multisite The WPMU fork was merged Massive merge sprint, followed by cleanup Terminology/concept nightmare TODO: Network admin UI improvements TODO: Easier to manage, use, and install (in that order
Oh no, please don’t. define( 'WP_ALLOW_MULTISITE', true );
Only if you insist.
A new Network Admin New MU screen
Other cool features Pick a username/password during install comment_form() and wp_login_form() Stronger authentication security by default Bulk update plugins and themes “Search Engines Blocked” Rewritten initialization code
Follow along #wordpress-dev on freenode.net http://wpdevel.wordpress.com http://core.trac.wordpress.org wp-svn– mailing list for commits wp-hackers – plugin and core developers wp-testers
What might be next Column sorting and a more AJAX feel More features for custom post types and custom taxonomies Support for custom comment types Better support for custom post statuses Media/upload overhaul Incremental admin, DRY, UX changes Incremental improvements to multisite Links as a post type Roles/capabilities overhaul
Our philosophies. codex.wordpress.org/Release_Philosophy
Decisions, not options.
Preferences have a cost. Too many means you can't find any of them. They damage QA and testing. They make good UI difficult. They confuse users. Do something specific and do it well. Defaults that work will lead the UI in the right direction.
The quality of an interface design is inversely proportional to the number of designers.
If you're too lazy to do the homework and think through the big-picture rationale, I'm too lazy to add the feature.
In the presence of good rationale, maintainers should be willing to change their mind often.
Let’s talk           security.
QualysBlindElephant BlindElephantis a web application fingerprinter. Drupal, Joomla!, Liferay, Mediawiki, Moodle, MovableType, osCommerce, phpBB, phpMyAdmin, phpNuke, SPIP, WordPress
96 percent JOOMLA 1.5.20 Versions < 1.0.15 and < 1.5.17 are critically insecure. Version 1.5.17 was released 3 months ago.Percentage of installs running a critically insecure version?
69 percent (and up) DRUPAL 6.19 Versions < 5.22 and < 6.16 are critically insecure. Version 6.16 was released in March. Versions 6.18 and 5.23 were critical security fixes released last week.Percentage of installs running a critically insecure version?
4 percent WORDPRESS 3.0.1 Versions < 2.5.1 are critically insecure. (Released in April 2008.)Versions < 2.8.3 are insecure. (August 2009.)Percentage of installs running a critically insecure version?
Shared hosts suck.
security@wordpress.org
pre-release candidates for 3.0 were downloaded 75,000times QUALITY ASSURANCE
Questions? twitter @nacinweb andrewnacin.com email andrewnacin@gmail.com

Mais conteúdo relacionado

Mais procurados

WordPress Plugin Development- Rich Media Institute Workshop
WordPress Plugin Development- Rich Media Institute WorkshopWordPress Plugin Development- Rich Media Institute Workshop
WordPress Plugin Development- Rich Media Institute WorkshopBrendan Sera-Shriar
 
Develop advance joomla! MVC Component for version 3
Develop advance joomla! MVC Component for version 3Develop advance joomla! MVC Component for version 3
Develop advance joomla! MVC Component for version 3Gunjan Patel
 
Tour of sh404SEF - SEO and security for Joomla
Tour of sh404SEF - SEO and security for JoomlaTour of sh404SEF - SEO and security for Joomla
Tour of sh404SEF - SEO and security for Joomlavdrover
 
Develop Basic joomla! MVC component for version 3
Develop Basic joomla! MVC component for version 3Develop Basic joomla! MVC component for version 3
Develop Basic joomla! MVC component for version 3Gunjan Patel
 
JoomlaEXPO: Search Engine Friendly URLs - Azrul.com
JoomlaEXPO: Search Engine Friendly URLs - Azrul.comJoomlaEXPO: Search Engine Friendly URLs - Azrul.com
JoomlaEXPO: Search Engine Friendly URLs - Azrul.comJohn Coonen
 
WordPress theme development from scratch : ICT MeetUp 2013 Nepal
WordPress theme development from scratch : ICT MeetUp 2013 NepalWordPress theme development from scratch : ICT MeetUp 2013 Nepal
WordPress theme development from scratch : ICT MeetUp 2013 NepalChandra Prakash Thapa
 
JSN Epic Customization Manual
JSN Epic Customization ManualJSN Epic Customization Manual
JSN Epic Customization ManualJoomlaShine
 
JSN Epic Configuration Manual
JSN Epic Configuration ManualJSN Epic Configuration Manual
JSN Epic Configuration ManualJoomlaShine
 
Advanced WordPress Optimization - iGaming Supershow 2012
Advanced WordPress Optimization - iGaming Supershow 2012Advanced WordPress Optimization - iGaming Supershow 2012
Advanced WordPress Optimization - iGaming Supershow 2012Bastian Grimm
 
Joomla! Plugin Development
Joomla! Plugin DevelopmentJoomla! Plugin Development
Joomla! Plugin DevelopmentYireo
 
Ionic으로 모바일앱 만들기 #3
Ionic으로 모바일앱 만들기 #3Ionic으로 모바일앱 만들기 #3
Ionic으로 모바일앱 만들기 #3성일 한
 
Introduction To Simple WordPress Plugin Development
Introduction To Simple WordPress Plugin DevelopmentIntroduction To Simple WordPress Plugin Development
Introduction To Simple WordPress Plugin DevelopmentBruce L Chamoff
 
JSN Gruve Customization Manual
JSN Gruve Customization ManualJSN Gruve Customization Manual
JSN Gruve Customization ManualJoomlaShine
 
JSN Dome Customization Manual
JSN Dome Customization ManualJSN Dome Customization Manual
JSN Dome Customization ManualJoomlaShine
 
What’s new in joomla 3.7
What’s new in joomla 3.7What’s new in joomla 3.7
What’s new in joomla 3.7Tim Plummer
 
HTML & CSS - Le Wagon Bootcamp
HTML & CSS - Le Wagon BootcampHTML & CSS - Le Wagon Bootcamp
HTML & CSS - Le Wagon BootcampPaal Ringstad
 
Responsive Theme Workshop - WordCamp Columbus 2015
Responsive Theme Workshop - WordCamp Columbus 2015Responsive Theme Workshop - WordCamp Columbus 2015
Responsive Theme Workshop - WordCamp Columbus 2015Joe Querin
 
JSN Teki Customization Manual
JSN Teki Customization ManualJSN Teki Customization Manual
JSN Teki Customization ManualJoomlaShine
 
State of play for Joomla - Nov 2014
State of play for Joomla - Nov 2014State of play for Joomla - Nov 2014
State of play for Joomla - Nov 2014Tim Plummer
 

Mais procurados (20)

WordPress Plugin Development- Rich Media Institute Workshop
WordPress Plugin Development- Rich Media Institute WorkshopWordPress Plugin Development- Rich Media Institute Workshop
WordPress Plugin Development- Rich Media Institute Workshop
 
Develop advance joomla! MVC Component for version 3
Develop advance joomla! MVC Component for version 3Develop advance joomla! MVC Component for version 3
Develop advance joomla! MVC Component for version 3
 
Tour of sh404SEF - SEO and security for Joomla
Tour of sh404SEF - SEO and security for JoomlaTour of sh404SEF - SEO and security for Joomla
Tour of sh404SEF - SEO and security for Joomla
 
Develop Basic joomla! MVC component for version 3
Develop Basic joomla! MVC component for version 3Develop Basic joomla! MVC component for version 3
Develop Basic joomla! MVC component for version 3
 
Word Camp Fukuoka2010
Word Camp Fukuoka2010Word Camp Fukuoka2010
Word Camp Fukuoka2010
 
JoomlaEXPO: Search Engine Friendly URLs - Azrul.com
JoomlaEXPO: Search Engine Friendly URLs - Azrul.comJoomlaEXPO: Search Engine Friendly URLs - Azrul.com
JoomlaEXPO: Search Engine Friendly URLs - Azrul.com
 
WordPress theme development from scratch : ICT MeetUp 2013 Nepal
WordPress theme development from scratch : ICT MeetUp 2013 NepalWordPress theme development from scratch : ICT MeetUp 2013 Nepal
WordPress theme development from scratch : ICT MeetUp 2013 Nepal
 
JSN Epic Customization Manual
JSN Epic Customization ManualJSN Epic Customization Manual
JSN Epic Customization Manual
 
JSN Epic Configuration Manual
JSN Epic Configuration ManualJSN Epic Configuration Manual
JSN Epic Configuration Manual
 
Advanced WordPress Optimization - iGaming Supershow 2012
Advanced WordPress Optimization - iGaming Supershow 2012Advanced WordPress Optimization - iGaming Supershow 2012
Advanced WordPress Optimization - iGaming Supershow 2012
 
Joomla! Plugin Development
Joomla! Plugin DevelopmentJoomla! Plugin Development
Joomla! Plugin Development
 
Ionic으로 모바일앱 만들기 #3
Ionic으로 모바일앱 만들기 #3Ionic으로 모바일앱 만들기 #3
Ionic으로 모바일앱 만들기 #3
 
Introduction To Simple WordPress Plugin Development
Introduction To Simple WordPress Plugin DevelopmentIntroduction To Simple WordPress Plugin Development
Introduction To Simple WordPress Plugin Development
 
JSN Gruve Customization Manual
JSN Gruve Customization ManualJSN Gruve Customization Manual
JSN Gruve Customization Manual
 
JSN Dome Customization Manual
JSN Dome Customization ManualJSN Dome Customization Manual
JSN Dome Customization Manual
 
What’s new in joomla 3.7
What’s new in joomla 3.7What’s new in joomla 3.7
What’s new in joomla 3.7
 
HTML & CSS - Le Wagon Bootcamp
HTML & CSS - Le Wagon BootcampHTML & CSS - Le Wagon Bootcamp
HTML & CSS - Le Wagon Bootcamp
 
Responsive Theme Workshop - WordCamp Columbus 2015
Responsive Theme Workshop - WordCamp Columbus 2015Responsive Theme Workshop - WordCamp Columbus 2015
Responsive Theme Workshop - WordCamp Columbus 2015
 
JSN Teki Customization Manual
JSN Teki Customization ManualJSN Teki Customization Manual
JSN Teki Customization Manual
 
State of play for Joomla - Nov 2014
State of play for Joomla - Nov 2014State of play for Joomla - Nov 2014
State of play for Joomla - Nov 2014
 

Destaque

Capture All the URLS: First Steps in Web Archiving
Capture All the URLS: First Steps in Web ArchivingCapture All the URLS: First Steps in Web Archiving
Capture All the URLS: First Steps in Web ArchivingKristen Yarmey
 
AutoSuccessOct04
AutoSuccessOct04AutoSuccessOct04
AutoSuccessOct04autosuccess
 
Aja group presentation_4[1]
Aja group presentation_4[1]Aja group presentation_4[1]
Aja group presentation_4[1]ashewright
 
Link Persistence, Website Persistence
Link Persistence, Website PersistenceLink Persistence, Website Persistence
Link Persistence, Website Persistencenullhandle
 
Just in Case: Archive-It & DuraCloud Integration
Just in Case: Archive-It & DuraCloud IntegrationJust in Case: Archive-It & DuraCloud Integration
Just in Case: Archive-It & DuraCloud IntegrationKristen Yarmey
 

Destaque (8)

Capture All the URLS: First Steps in Web Archiving
Capture All the URLS: First Steps in Web ArchivingCapture All the URLS: First Steps in Web Archiving
Capture All the URLS: First Steps in Web Archiving
 
Contest v1.1
Contest v1.1Contest v1.1
Contest v1.1
 
AutoSuccessOct04
AutoSuccessOct04AutoSuccessOct04
AutoSuccessOct04
 
Aja group presentation_4[1]
Aja group presentation_4[1]Aja group presentation_4[1]
Aja group presentation_4[1]
 
As.oct11
As.oct11As.oct11
As.oct11
 
Link Persistence, Website Persistence
Link Persistence, Website PersistenceLink Persistence, Website Persistence
Link Persistence, Website Persistence
 
E3 chap-07
E3 chap-07E3 chap-07
E3 chap-07
 
Just in Case: Archive-It & DuraCloud Integration
Just in Case: Archive-It & DuraCloud IntegrationJust in Case: Archive-It & DuraCloud Integration
Just in Case: Archive-It & DuraCloud Integration
 

Semelhante a WordPress 3.0 at DC PHP

WordPress 2.5 Overview - Rich Media Institute
WordPress 2.5 Overview - Rich Media InstituteWordPress 2.5 Overview - Rich Media Institute
WordPress 2.5 Overview - Rich Media InstituteBrendan Sera-Shriar
 
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017 So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017 Evan Mullins
 
Getting started with WordPress development
Getting started with WordPress developmentGetting started with WordPress development
Getting started with WordPress developmentSteve Mortiboy
 
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to DevelopmentWordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to DevelopmentEvan Mullins
 
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1Yoav Farhi
 
Joomla Day Austin Part 4
Joomla Day Austin Part 4Joomla Day Austin Part 4
Joomla Day Austin Part 4Kyle Ledbetter
 
WordPress development paradigms, idiosyncrasies and other big words
WordPress development paradigms, idiosyncrasies and other big wordsWordPress development paradigms, idiosyncrasies and other big words
WordPress development paradigms, idiosyncrasies and other big wordsTomAuger
 
Wordpress Beyond A Blog Word Camp Toronto08
Wordpress Beyond A Blog Word Camp Toronto08Wordpress Beyond A Blog Word Camp Toronto08
Wordpress Beyond A Blog Word Camp Toronto08Jamie Oastler
 
Plugin Development Practices
Plugin Development PracticesPlugin Development Practices
Plugin Development Practicesdanpastori
 
WordPress Optimization & Security - LAC 2013, London
WordPress Optimization & Security - LAC 2013, LondonWordPress Optimization & Security - LAC 2013, London
WordPress Optimization & Security - LAC 2013, LondonBastian Grimm
 
Developing Branding Solutions for 2013
Developing Branding Solutions for 2013Developing Branding Solutions for 2013
Developing Branding Solutions for 2013Thomas Daly
 
Developing Branding Solutions for 2013
Developing Branding Solutions for 2013Developing Branding Solutions for 2013
Developing Branding Solutions for 2013Thomas Daly
 
WordPress SEO in 2014 - WordCamp Baltimore 2014
WordPress SEO in 2014 - WordCamp Baltimore 2014WordPress SEO in 2014 - WordCamp Baltimore 2014
WordPress SEO in 2014 - WordCamp Baltimore 2014Arsham Mirshah
 
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!Evan Mullins
 
Creating Your First WordPress Plugin
Creating Your First WordPress PluginCreating Your First WordPress Plugin
Creating Your First WordPress PluginBrad Williams
 
Widgets: Making Your Site Great and Letting Others Help - WordCamp Victoria
Widgets: Making Your Site Great and Letting Others Help - WordCamp VictoriaWidgets: Making Your Site Great and Letting Others Help - WordCamp Victoria
Widgets: Making Your Site Great and Letting Others Help - WordCamp VictoriaJeff Richards
 
Font End Development + Automation with Django
Font End Development + Automation with DjangoFont End Development + Automation with Django
Font End Development + Automation with DjangoEvan Reiser
 

Semelhante a WordPress 3.0 at DC PHP (20)

WordPress 2.5 Overview - Rich Media Institute
WordPress 2.5 Overview - Rich Media InstituteWordPress 2.5 Overview - Rich Media Institute
WordPress 2.5 Overview - Rich Media Institute
 
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017 So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
 
Getting started with WordPress development
Getting started with WordPress developmentGetting started with WordPress development
Getting started with WordPress development
 
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to DevelopmentWordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
 
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
 
Joomla Day Austin Part 4
Joomla Day Austin Part 4Joomla Day Austin Part 4
Joomla Day Austin Part 4
 
WordPress development paradigms, idiosyncrasies and other big words
WordPress development paradigms, idiosyncrasies and other big wordsWordPress development paradigms, idiosyncrasies and other big words
WordPress development paradigms, idiosyncrasies and other big words
 
Wordpress Beyond A Blog Word Camp Toronto08
Wordpress Beyond A Blog Word Camp Toronto08Wordpress Beyond A Blog Word Camp Toronto08
Wordpress Beyond A Blog Word Camp Toronto08
 
Plugin Development Practices
Plugin Development PracticesPlugin Development Practices
Plugin Development Practices
 
WordPress Optimization & Security - LAC 2013, London
WordPress Optimization & Security - LAC 2013, LondonWordPress Optimization & Security - LAC 2013, London
WordPress Optimization & Security - LAC 2013, London
 
Developing Branding Solutions for 2013
Developing Branding Solutions for 2013Developing Branding Solutions for 2013
Developing Branding Solutions for 2013
 
Developing Branding Solutions for 2013
Developing Branding Solutions for 2013Developing Branding Solutions for 2013
Developing Branding Solutions for 2013
 
Meet WordPress
Meet WordPressMeet WordPress
Meet WordPress
 
Optimize wordpress
Optimize wordpressOptimize wordpress
Optimize wordpress
 
WordPress SEO in 2014 - WordCamp Baltimore 2014
WordPress SEO in 2014 - WordCamp Baltimore 2014WordPress SEO in 2014 - WordCamp Baltimore 2014
WordPress SEO in 2014 - WordCamp Baltimore 2014
 
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
 
Creating Your First WordPress Plugin
Creating Your First WordPress PluginCreating Your First WordPress Plugin
Creating Your First WordPress Plugin
 
Widgets: Making Your Site Great and Letting Others Help - WordCamp Victoria
Widgets: Making Your Site Great and Letting Others Help - WordCamp VictoriaWidgets: Making Your Site Great and Letting Others Help - WordCamp Victoria
Widgets: Making Your Site Great and Letting Others Help - WordCamp Victoria
 
Font End Development + Automation with Django
Font End Development + Automation with DjangoFont End Development + Automation with Django
Font End Development + Automation with Django
 
Wordpress as a CMS
Wordpress as a CMSWordpress as a CMS
Wordpress as a CMS
 

Mais de andrewnacin

Challenges Building the WordPress REST API (API Strategy & Practice, Chicago ...
Challenges Building the WordPress REST API (API Strategy & Practice, Chicago ...Challenges Building the WordPress REST API (API Strategy & Practice, Chicago ...
Challenges Building the WordPress REST API (API Strategy & Practice, Chicago ...andrewnacin
 
WordCamp Netherlands 2012: WordPress in 2012
WordCamp Netherlands 2012: WordPress in 2012WordCamp Netherlands 2012: WordPress in 2012
WordCamp Netherlands 2012: WordPress in 2012andrewnacin
 
You Don't Know Query (WordCamp Netherlands 2012)
You Don't Know Query (WordCamp Netherlands 2012)You Don't Know Query (WordCamp Netherlands 2012)
You Don't Know Query (WordCamp Netherlands 2012)andrewnacin
 
You Don't Know Query - WordCamp Portland 2011
You Don't Know Query - WordCamp Portland 2011You Don't Know Query - WordCamp Portland 2011
You Don't Know Query - WordCamp Portland 2011andrewnacin
 
WordCamp SF 2011: Debugging in WordPress
WordCamp SF 2011: Debugging in WordPressWordCamp SF 2011: Debugging in WordPress
WordCamp SF 2011: Debugging in WordPressandrewnacin
 
WordCamp San Francisco 2011: Transients, Caching, and the Complexities of Mul...
WordCamp San Francisco 2011: Transients, Caching, and the Complexities of Mul...WordCamp San Francisco 2011: Transients, Caching, and the Complexities of Mul...
WordCamp San Francisco 2011: Transients, Caching, and the Complexities of Mul...andrewnacin
 
Open Source (and you can too) - 2011 Teens in Tech Conference
Open Source (and you can too) - 2011 Teens in Tech ConferenceOpen Source (and you can too) - 2011 Teens in Tech Conference
Open Source (and you can too) - 2011 Teens in Tech Conferenceandrewnacin
 
WordCamp Columbus 2011 - What's Next for WordPress
WordCamp Columbus 2011 - What's Next for WordPressWordCamp Columbus 2011 - What's Next for WordPress
WordCamp Columbus 2011 - What's Next for WordPressandrewnacin
 
TEDxYouth@DowntownDC
TEDxYouth@DowntownDCTEDxYouth@DowntownDC
TEDxYouth@DowntownDCandrewnacin
 
Best Practices in Plugin Development (WordCamp Seattle)
Best Practices in Plugin Development (WordCamp Seattle)Best Practices in Plugin Development (WordCamp Seattle)
Best Practices in Plugin Development (WordCamp Seattle)andrewnacin
 
Ask Not What WordPress Can Do For You (Ignite - WordCamp Seattle)
Ask Not What WordPress Can Do For You (Ignite - WordCamp Seattle)Ask Not What WordPress Can Do For You (Ignite - WordCamp Seattle)
Ask Not What WordPress Can Do For You (Ignite - WordCamp Seattle)andrewnacin
 
Hidden Features (WordPress DC)
Hidden Features (WordPress DC)Hidden Features (WordPress DC)
Hidden Features (WordPress DC)andrewnacin
 
Lightning Talk: Mistakes (WordCamp Phoenix 2011)
Lightning Talk: Mistakes (WordCamp Phoenix 2011)Lightning Talk: Mistakes (WordCamp Phoenix 2011)
Lightning Talk: Mistakes (WordCamp Phoenix 2011)andrewnacin
 
WordPress at Web Content Mavens (Jan. 2011)
WordPress at Web Content Mavens (Jan. 2011)WordPress at Web Content Mavens (Jan. 2011)
WordPress at Web Content Mavens (Jan. 2011)andrewnacin
 
WordPress 3.1 at DC PHP
WordPress 3.1 at DC PHPWordPress 3.1 at DC PHP
WordPress 3.1 at DC PHPandrewnacin
 
What's Next for WordPress at WordCamp Netherlands
What's Next for WordPress at WordCamp NetherlandsWhat's Next for WordPress at WordCamp Netherlands
What's Next for WordPress at WordCamp Netherlandsandrewnacin
 
What's Next for WordPress: WordCamp Birmingham 2010
What's Next for WordPress: WordCamp Birmingham 2010What's Next for WordPress: WordCamp Birmingham 2010
What's Next for WordPress: WordCamp Birmingham 2010andrewnacin
 
Advanced and Hidden WordPress APIs
Advanced and Hidden WordPress APIsAdvanced and Hidden WordPress APIs
Advanced and Hidden WordPress APIsandrewnacin
 

Mais de andrewnacin (18)

Challenges Building the WordPress REST API (API Strategy & Practice, Chicago ...
Challenges Building the WordPress REST API (API Strategy & Practice, Chicago ...Challenges Building the WordPress REST API (API Strategy & Practice, Chicago ...
Challenges Building the WordPress REST API (API Strategy & Practice, Chicago ...
 
WordCamp Netherlands 2012: WordPress in 2012
WordCamp Netherlands 2012: WordPress in 2012WordCamp Netherlands 2012: WordPress in 2012
WordCamp Netherlands 2012: WordPress in 2012
 
You Don't Know Query (WordCamp Netherlands 2012)
You Don't Know Query (WordCamp Netherlands 2012)You Don't Know Query (WordCamp Netherlands 2012)
You Don't Know Query (WordCamp Netherlands 2012)
 
You Don't Know Query - WordCamp Portland 2011
You Don't Know Query - WordCamp Portland 2011You Don't Know Query - WordCamp Portland 2011
You Don't Know Query - WordCamp Portland 2011
 
WordCamp SF 2011: Debugging in WordPress
WordCamp SF 2011: Debugging in WordPressWordCamp SF 2011: Debugging in WordPress
WordCamp SF 2011: Debugging in WordPress
 
WordCamp San Francisco 2011: Transients, Caching, and the Complexities of Mul...
WordCamp San Francisco 2011: Transients, Caching, and the Complexities of Mul...WordCamp San Francisco 2011: Transients, Caching, and the Complexities of Mul...
WordCamp San Francisco 2011: Transients, Caching, and the Complexities of Mul...
 
Open Source (and you can too) - 2011 Teens in Tech Conference
Open Source (and you can too) - 2011 Teens in Tech ConferenceOpen Source (and you can too) - 2011 Teens in Tech Conference
Open Source (and you can too) - 2011 Teens in Tech Conference
 
WordCamp Columbus 2011 - What's Next for WordPress
WordCamp Columbus 2011 - What's Next for WordPressWordCamp Columbus 2011 - What's Next for WordPress
WordCamp Columbus 2011 - What's Next for WordPress
 
TEDxYouth@DowntownDC
TEDxYouth@DowntownDCTEDxYouth@DowntownDC
TEDxYouth@DowntownDC
 
Best Practices in Plugin Development (WordCamp Seattle)
Best Practices in Plugin Development (WordCamp Seattle)Best Practices in Plugin Development (WordCamp Seattle)
Best Practices in Plugin Development (WordCamp Seattle)
 
Ask Not What WordPress Can Do For You (Ignite - WordCamp Seattle)
Ask Not What WordPress Can Do For You (Ignite - WordCamp Seattle)Ask Not What WordPress Can Do For You (Ignite - WordCamp Seattle)
Ask Not What WordPress Can Do For You (Ignite - WordCamp Seattle)
 
Hidden Features (WordPress DC)
Hidden Features (WordPress DC)Hidden Features (WordPress DC)
Hidden Features (WordPress DC)
 
Lightning Talk: Mistakes (WordCamp Phoenix 2011)
Lightning Talk: Mistakes (WordCamp Phoenix 2011)Lightning Talk: Mistakes (WordCamp Phoenix 2011)
Lightning Talk: Mistakes (WordCamp Phoenix 2011)
 
WordPress at Web Content Mavens (Jan. 2011)
WordPress at Web Content Mavens (Jan. 2011)WordPress at Web Content Mavens (Jan. 2011)
WordPress at Web Content Mavens (Jan. 2011)
 
WordPress 3.1 at DC PHP
WordPress 3.1 at DC PHPWordPress 3.1 at DC PHP
WordPress 3.1 at DC PHP
 
What's Next for WordPress at WordCamp Netherlands
What's Next for WordPress at WordCamp NetherlandsWhat's Next for WordPress at WordCamp Netherlands
What's Next for WordPress at WordCamp Netherlands
 
What's Next for WordPress: WordCamp Birmingham 2010
What's Next for WordPress: WordCamp Birmingham 2010What's Next for WordPress: WordCamp Birmingham 2010
What's Next for WordPress: WordCamp Birmingham 2010
 
Advanced and Hidden WordPress APIs
Advanced and Hidden WordPress APIsAdvanced and Hidden WordPress APIs
Advanced and Hidden WordPress APIs
 

Último

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 

Último (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

WordPress 3.0 at DC PHP

  • 1. WordPress 3.0 Andrew Nacin WordPress Core Developer twitter @nacinweb andrewnacin.com email andrewnacin@gmail.com
  • 2. Make sure WP_CACHE is true. Props nacin.
  • 4. In nine weeks,WordPress 3.0was downloaded12,654,147 times http://wordpress.org/download/counter/
  • 7. Custompost types Customtaxonomies Theme development The mergeof WPMU Why WordPress is a CMS 3.0
  • 8. Custompost types Customtaxonomies Theme development The mergeof WPMU Why WordPress is a CMS
  • 10. a post type isacontent type
  • 11. What can post types be used for? Everything.
  • 12. Core post types Posts Pages Attachments Revisions Menu Items
  • 13. They are your content and storage. Blog Articles News Releases Portfolio Products Newsletter Events Tweets Employees My Reading List Documentation Forums Menu Items Uploads Logging Revisions
  • 14. Why? Some use cases are obvious. Articles, Newsletters, Portfolio, Events Some are not. Logging, Menu items
  • 15. Leverage what WordPressdoes best Performance No direct queries Utilize caching Extremely light Scalability Ease Full API Full admin UI Use existing features Why reinvent the wheel?
  • 16. Leverage existing features What can posts have? Title, content, excerpt Author Categories, tags Revisions Comments, Pingbacks Thumbnails Attachments Custom fields (meta) What can you leverage? Templating URL Rewriting WP_Query Capabilities Admin UI, meta boxes Feeds
  • 17. Let’s put it together add_action( 'init', 'my_employees_init' ); function my_employees_init() { register_post_type( 'my_employee', array( 'labels' => array( 'name' => 'Employees', 'singular_name' => 'Employee' ), 'public' => true, 'show_ui' => true, 'rewrite' => array( 'slug' => 'team' ), 'query_var' => 'team', 'hierarchical' => false, 'supports' => array( 'title', 'thumbnail', 'editor', 'excerpt' ), ) ); }
  • 20. Let’s create a quick template query_posts( array('post_type' => 'my_employee') ); if ( have_posts() ) : while ( have_posts() ) :the_post(); echo '<h2><a href="' . get_permalink() . '">' . get_the_title() . '</a></h2>'; the_post_thumbnail(); the_content(); echo '<p>Read posts by '; the_author_posts_link(); echo '</p>'; endwhile; endif;
  • 21. Done. /team/ /team/andrew-nacin/ /blog/author/andrew-nacin/ (excuse my CSS)
  • 23. Core taxonomies Post Tags Categories Link Categories Menus
  • 24. They describe your content. The difference between tags and categories is hierarchy. Topics People Cities Cities Content: Travel blog Cuisine Content: Restaurants Songs Content: Concerts Actors, Directors, Producers Content: Movies
  • 25. Custom taxonomies are not new Database schema — WP 2.3, Sept. 2007 Custom taxonomies — WP 2.5, March 2008 Partial UI — WP 2.8, June 2009 In WP 3.0 — full custom UI implementation So basically, they’re now on steroids.
  • 26. Specialties taxonomy register_taxonomy( 'my_specialties', 'nacin_employee', array( 'labels' => array( 'name' => 'Specialties', 'singular_name' => 'Specialty' ), 'public' => true, 'show_ui' => true, 'query_var' => false, 'rewrite' => false, 'hierarchical' => false, ) );
  • 30. WordPress 3.0 makestheme development and customizations easier.
  • 32.
  • 33. How? In our themefunctions.php: function my_theme_setup() { add_custom_background(); } add_action( 'after_setup_theme', 'my_theme_setup' ); 1 2 3 4
  • 34.
  • 35. function my_theme_setup() { add_custom_background(); define( 'NO_HEADER_TEXT', true ); define( 'HEADER_IMAGE_WIDTH', 940 ); define( 'HEADER_IMAGE_HEIGHT', 198 ); define( 'HEADER_IMAGE', '%s/images/default.jpg' ); add_custom_header( 'my_theme_header_style', 'my_theme_admin_header_style' ); register_default_header( array( 'default' => array( 'url' => '%s/images/default.jpg', 'thumbnail_url' => '%s/images/default-thumb.jpg', 'description' => 'Default Header' ), ) ); } add_action( 'after_setup_theme', 'my_theme_setup' ); 2 3 4 5 6 7 8 9 10 11 12 13
  • 36. Custom Header, cont. function my_theme_admin_header_style() { echo '#headimg { height: ' . HEADER_IMAGE_HEIGHT . 'px; width: ' . HEADER_IMAGE_WIDTH . 'px; }'; } function my_theme_header_style() { echo '#header { background-image: url(' . header_image() . '); }'; } 1 2 3 4 5 6
  • 37. Menus Screenshot of menu admin
  • 38. In our themefunctions.php: function my_theme_setup() { add_custom_background(); add_custom_header( 'my_theme_header_style', 'my_theme_admin_header_style' ); // ... register_nav_menu('header', 'Primary Navigation'); } add_action( 'after_setup_theme', 'my_theme_setup' ); In our theme header.php: wp_nav_menu( array( 'theme_location' => 'header' ) ); 1 2 3 4 5 6 7
  • 39. Menus Screenshot of menus in Twenty Ten
  • 40. Evolving Theme Development get_template_part() It’s basicallyinclude()on steroids. Example: get_template_part('loop', 'archive'); Process: Check for loop-archive.php. Check the child theme first, if applicable. Otherwise, check for loop.php. Less Redundancy FTW.
  • 41. get_template_part('header', 'home'); Is like calling: get_header( 'home' ); Same deal: header-home.php,then header.php.
  • 42. What’s with thetheme improvements?In 3.0, we weretheme developers.
  • 45. Power one site or 10 million.
  • 46. WordPress Multisite The WPMU fork was merged Massive merge sprint, followed by cleanup Terminology/concept nightmare TODO: Network admin UI improvements TODO: Easier to manage, use, and install (in that order
  • 47. Oh no, please don’t. define( 'WP_ALLOW_MULTISITE', true );
  • 48. Only if you insist.
  • 49.
  • 50. A new Network Admin New MU screen
  • 51. Other cool features Pick a username/password during install comment_form() and wp_login_form() Stronger authentication security by default Bulk update plugins and themes “Search Engines Blocked” Rewritten initialization code
  • 52. Follow along #wordpress-dev on freenode.net http://wpdevel.wordpress.com http://core.trac.wordpress.org wp-svn– mailing list for commits wp-hackers – plugin and core developers wp-testers
  • 53. What might be next Column sorting and a more AJAX feel More features for custom post types and custom taxonomies Support for custom comment types Better support for custom post statuses Media/upload overhaul Incremental admin, DRY, UX changes Incremental improvements to multisite Links as a post type Roles/capabilities overhaul
  • 56. Preferences have a cost. Too many means you can't find any of them. They damage QA and testing. They make good UI difficult. They confuse users. Do something specific and do it well. Defaults that work will lead the UI in the right direction.
  • 57. The quality of an interface design is inversely proportional to the number of designers.
  • 58. If you're too lazy to do the homework and think through the big-picture rationale, I'm too lazy to add the feature.
  • 59. In the presence of good rationale, maintainers should be willing to change their mind often.
  • 60. Let’s talk security.
  • 61. QualysBlindElephant BlindElephantis a web application fingerprinter. Drupal, Joomla!, Liferay, Mediawiki, Moodle, MovableType, osCommerce, phpBB, phpMyAdmin, phpNuke, SPIP, WordPress
  • 62. 96 percent JOOMLA 1.5.20 Versions < 1.0.15 and < 1.5.17 are critically insecure. Version 1.5.17 was released 3 months ago.Percentage of installs running a critically insecure version?
  • 63. 69 percent (and up) DRUPAL 6.19 Versions < 5.22 and < 6.16 are critically insecure. Version 6.16 was released in March. Versions 6.18 and 5.23 were critical security fixes released last week.Percentage of installs running a critically insecure version?
  • 64. 4 percent WORDPRESS 3.0.1 Versions < 2.5.1 are critically insecure. (Released in April 2008.)Versions < 2.8.3 are insecure. (August 2009.)Percentage of installs running a critically insecure version?
  • 67. pre-release candidates for 3.0 were downloaded 75,000times QUALITY ASSURANCE
  • 68. Questions? twitter @nacinweb andrewnacin.com email andrewnacin@gmail.com