Developing WordPress: What You Need to Learn

  • Download and install WordPress on a development PC.
    • LAMP/WAMP/XAMP stack (Apache, MySQL, PHP)
    • Database table naming. Default is “wp_”. Change the name in config.php so multiple installations in the one DB.
  • Training:
  • Official WordPress sites:
  • Terms and Concepts (and how they work)
    • Users
    • Roles
    • Taxonomies
    • Posts (this the core of WordPress) and Post Types
    • Custom Post Types
    • Database structure
  • Custom Development
    • Themes
    • Plug-ins
    • Shortcodes
    • Page Templates
    • ‘Meta’ fields
    • Custom Roles
    • Extending user information/fields
    • WordPress API
    • Actions, Hooks, Filters
  • Achieving specific ends
    • Creating forms for users in the front-end
  • Good Themes and plug-ins to know
    • Themeco ‘X’ or ‘Pro’ themes
    • Advanced Custom Fields (ACF)
  • Other things to think about
    • Form validation for custom forms
    • Data sanitisation
    • Security
    • Exception handling (500 & 404)
    • Unit test and general testing
      • https://codex.wordpress.org/Theme_Unit_Test
    • Logging
    • User analytics (tracking user behaviour)
    • Different plug-ins (and theme) loading the same javascript resources (e.g. jQuery). Think about version conflicts.
    • Updating themes and plug-ins
    • Debugging (e.g. debug(‘WP_DEBUG’, true);)

Thinking about DevOps:

  • The database stores a lot of configuration data.
  • Plug-in development
  • Theme development
  • Creating dev/test environments from prod.
    • Renaming domains in the .database
  • Can we push dev/test (including config via DB) to prod? Investigate.
  • Deploying themes and plug-ins (is built-in WP the best, even for us?)

Look at:

wordpress.org/extend/plugins/monster-widget/
../theme-check/
../developer/
../debogger/
../log-deprecated-notices/

http://wptest.io/

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>