Building an Organizational News Site with WordPress
Web Services @ UTHSC in Memphis
Memphis WordPress User Group Organizer
#memtech Community Evangelist
georgespake.com
@georgespake
github.com/gpspake
Before WordPress
UTHSC News
Before WordPress
UTHSC News
Before WordPress
UTHSC News
Before WordPress
UTHSC News
Before WordPress
Before WordPress
UTHSC Press Coverage Records
News Notes
Announcements
Before WordPress
Utilize Default Content Types for News
News
Default Post Type Posts
Default Taxonomies Categories & Tags
Custom fields Homepage Feature
Moving To WordPress
WXR file generated with a script
(and some manual labor)
News
Moving To WordPress
News
Moving To WordPress
Rich Content
Images!
SEO / Social
450 New Posts Since Launch
Dramatic Increase in Traffic
First Responsive Site at UTHSC
Custom Post Types
Moving To WordPress
Moving To WordPress
News Notes Renamed to
Custom Post Type in-the-media
Custom Taxonomy in-the-media-publisher, in-the-media-tags
Custom fields publisher-logo, in-the-media-url
In the Media
Moving To WordPress
In the Media
Advanced Custom Fields
Moving To WordPress
Announcements
Custom Post Type announcements
Custom Taxonomy digest
Moving To WordPress
Announcements
WP User Frontend
Moving To WordPress
Announcements
Almost 4k Announcements Since Launch
Moderation Via
Edit Flow
Moving To WordPress
Search
Results labeled by post type
Same content templates as respective post type archive
Developer Notes
Sidebars
Using plugins isn't cheating
Know what your plugins are doing and how they work
Avoid Code Rot and Technical Debt
It's OK to "hack" plugins
(That's how stuff gets better)
Developer Notes
Grammar
Not the details
taxonomies vs terms etc.
get_[thing], the_[thing],
get_[thing]_by_[id]
WP's API is intuitive and well documented
Developer Notes
Custom Content
Register each post type and associated taxonomies in its own plugin
Use
Dashicons!
Generate WP
Developer Notes
Custom Fields
USE ACF to Build CRUD UI's
API makes adding fields to templates easy
Developer Notes
Template Hierarchy
Describes which template is being loaded
Based on naming convention
Archive vs Single
Developer Notes
The Loop
Move reusable markup to template parts and call with get_template_part()
Understand how to pass custom args to WP_Query for custom queries
Developer Notes
Admin UX
Editor
Admin
Admin Menu Editor
Developer Notes
Sidebars
Announcements
News
Custom Sidebars
Set default sidebars for single/archive post type templates
Developer Notes
Communication
Great Developers are Great Communicators
Developer Notes