Your SlideShare is downloading. ×
0
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]

1,172

Published on

Having started out as a self-described "WordPress hacker", it's taken me years to discover how to incorporate best practices into a WordPress context. I'll share a brief overview of the plugin …

Having started out as a self-described "WordPress hacker", it's taken me years to discover how to incorporate best practices into a WordPress context. I'll share a brief overview of the plugin devleopment concepts I wish I'd understood earlier, including object-oriented architecture, interface-like dependency management, robust app-like directory structure, super-charged deployment, the power of WP constants and APIs, and more.

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

No Downloads
Views
Total Views
1,172
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
10
Comments
0
Likes
7
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. The WordPress Hacker’s Guide to the Galaxy()Saturday, March 2, 13
  • 2. @rhodesjason github.com/jasonrhodes notrobotic.comSaturday, March 2, 13
  • 3. WordPress, as described by various PHP developers Terrible design buried under a mountain of spaghetti code Reading through [WordPress code] is like jabbing red-hot fire pokeys into your eyes. BEHOLD WORDPRESS, DESTROYER OF CPUS remote shell with cms on side, aka: shit shit plugins WordPress is for cat pictures and diary entries. code is crapcrapcrap F$%@ THAT F$%@ THAT F$%@ THAT F$%@ THAT F$%@ THAT F$%@ THAT WordPress is... just adequate WordPress is for amateurs. WordPress is... terrifyingly insecure. No good default caching, it will kill your server if you don’t know what you’re doing A really terrible database structure Stack Overflow spam questions Not a “real” CMS and definitely not a “real” frameworkSaturday, March 2, 13
  • 4. WORDPRESS IS NOT THE DEVILSaturday, March 2, 13
  • 5. WORDPRESS IS PHPSaturday, March 2, 13
  • 6. WORDPRESS IS CODESaturday, March 2, 13
  • 7. BETTER CODE BETTER PHP BETTER WORDPRESSSaturday, March 2, 13
  • 8. THE WP HACKER’S GUIDE TO THE GALAXYSaturday, March 2, 13
  • 9. +Saturday, March 2, 13
  • 10. Saturday, March 2, 13
  • 11. Saturday, March 2, 13
  • 12. Saturday, March 2, 13
  • 13. THE WP HACKER’S GUIDE TO THE GALAXYSaturday, March 2, 13
  • 14. FOLDER STRUCTURESaturday, March 2, 13
  • 15. mysite /wp-admin /wp-content /wp-includes index.php wp-config.php wp-{etc}.phpSaturday, March 2, 13
  • 16. mysite index.php /wpSaturday, March 2, 13
  • 17. WP GIANTS: MARK JAQUITHSaturday, March 2, 13
  • 18. Saturday, March 2, 13
  • 19. Saturday, March 2, 13
  • 20. Saturday, March 2, 13
  • 21. mysite /config /environments environment-config.php /public /content /wp index.php wp-config.php /vendorSaturday, March 2, 13
  • 22. Saturday, March 2, 13
  • 23. Saturday, March 2, 13
  • 24. LET’S WRITE SOME PLUGIN CODESaturday, March 2, 13
  • 25. Saturday, March 2, 13
  • 26. YES, PLUGINS (NOT FUNCTIONS.PHP)Saturday, March 2, 13
  • 27. Saturday, March 2, 13
  • 28. MUST USE PLUGINSSaturday, March 2, 13
  • 29. content /plugins cornify.php /batcache /themes /uploadsSaturday, March 2, 13
  • 30. content /mu-plugins /plugins cornify.php /batcache /themes /uploadsSaturday, March 2, 13
  • 31. Saturday, March 2, 13
  • 32. What’s the difference between actions and filters? Filters filter. Actions (usually) have side effects. http://wp.smashingmagazine.com/2012/02/16/ inside-wordpress-actions-filters/Saturday, March 2, 13
  • 33. CALLABLE add_action(“action_name”, “function_name”);Saturday, March 2, 13
  • 34. array($object, “method_name”)Saturday, March 2, 13
  • 35. LET’S USE OOPSaturday, March 2, 13
  • 36. WP GIANTS: SCRIBUSaturday, March 2, 13
  • 37. Saturday, March 2, 13
  • 38. Saturday, March 2, 13
  • 39. LET’S NAMESPACESaturday, March 2, 13
  • 40. Saturday, March 2, 13
  • 41. Saturday, March 2, 13
  • 42. MORE GOOD THINGS ‣ Load JS/CSS with enqueue functions ‣ Write tests (PHPUnit and QUnit) ‣ Experiment with WP-CLI ‣ Fun with caching ‣ Use the APIs ‣ Deploy smartSaturday, March 2, 13
  • 43. ‣ Database API ‣ Rewrite API ‣ HTTP API ‣ Settings API ‣ File Header API ‣ Shortcode API ‣ Filesystem API ‣ Theme Modification API ‣ Metadata API ‣ Theme Customization API ‣ Options API ‣ Transients API ‣ Plugin API ‣ Widgets API ‣ Quicktags API ‣ XML-RPC WordPress APISaturday, March 2, 13
  • 44. mysite current -> releases/1362181983 /releases /1362181983 /1362153455 /1362141927 /shared /config /filesSaturday, March 2, 13
  • 45. Saturday, March 2, 13
  • 46. Saturday, March 2, 13
  • 47. @rhodesjason Please rate this talk https://joind.in/8209 Slides, notes, example code: http://notrobotic.com/talks/ 2013-02-20-wpgalaxy.htmlSaturday, March 2, 13

×