Wordpress guidelines


Technical Requirements
A. Technologies to use
- Overview:

• Should have a solid body of work / Clean code
• Front-end development including CSS, XHTML, HTML5, JavaScript, JQuery and Ajax.
• WordPress latest version, including WordPress Woocommerce, custom plugins, custom post types and overall Wordpress security (https://wordpress.org/ | http://codex.wordpress.org/Main_Page )
• No debug outputs
• Follow WordPress Coding Standards
• No duplicated functions/classes
• Validate php, html, css, js
• Lint all code
• Support for IE10+, Safari, Firefox and Chrome (latest versions) on Win 8.1, OSX (latest)
• Support for Safari on IOS8 and Android Browser (latest version)
• Do not use any deprecated functions
• Do not use any experimental functions
• Do not use flash/Silverlight/java
• php strict
• check spelling in code
• validate/sanitize all user input

- Front:

Note: Mobile support retina 2x for all images (css, theme and user uploaded images)
- Back:

Wordpress:
Latest version
• Use template system for theme and custom plugins
• I18n support for all strings
•No query vars on css/js links click
• Support ssl
• Don’t use a plugin for contact forms
• Do not modify plugins
• Hash all theme and custom plugin css/js files


• Give wordpress its own directory click
• Use composer for wordpress and plugins (ensure dependencies only includes mandatory items for production)
• Provide gulp/grunt build scripts if used
• Capture all exceptions and write to dedicated log file (notify admin contact by email, this is not the php error log)
• Capture all 3rd party api call errors and write to dedicated log file (notify admin contact by email, this is not the php error log)
• Allow to route all wordpress emails through smtp server (outside of php configuration) click


C. Performance
Visual complete in less than 4 seconds
• No SPOF
• Minify and combine all css/js resources
• Don’t load external css/js/fonts unless it is necessary. Deliver local assets
• Google pages peed score of at least 90 for mobile and desktop
• Cache all external API calls if possible
• All images to be optimized
• Use the appropriate image format for the task of the image
• Use css sprites/svg
• Offload all static elements to cookieless (sub)domain