Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Starting WordPress Theme Review


Published on

There is new slide for this at

Guide to Start WordPress Theme Review. Useful for WordPress Theme Developers, wannabe WordPress Theme Developers and wannabe WordPress Theme Reviewer

Published in: Technology
  • ➤➤ How Long Does She Want You to Last? Here's the link to the FREE report ■■■
    Are you sure you want to  Yes  No
    Your message goes here
  • ➤➤ 3 Reasons Why You Shouldn't take Pills for ED (important) ●●●
    Are you sure you want to  Yes  No
    Your message goes here

Starting WordPress Theme Review

  1. WordPressTheme Development & Starting Beyond WordPress Theme Review
  2. Audience• WordPress Theme Developers• Wannabe WordPress Theme Developers• Wannabe WordPress Theme Reviewer
  3. Why?- Contributing to WordPress Community- Get Recognition- Build International Partners and Co-workers- Start EarningRelated:Starting WordPress Theme Development
  4. I‟m Sakin Shrestha WordPress Theme Developer Founder Catch Internet Catch Themes
  5. How Theme Review Team Works• WordPress Theme Repository• Make WordPress Theme Blog• Theme Guide• Theme Review Mailing List reviewers• Theme Trac• Internet Relay Chat- IRC
  6. How to Join WPTRT• Sign up for account in• Subscribe to Theme Review Mailing List• Go to Theme Review Trac Ticket Request Queue page queue/• Leave a comment asking to be assigned a Theme. Be sure to include your username with your request.• Soon after 8 to 10 reviews you will be assign Theme Reviewer, then you can just review theme as per the priority list in Theme Trac.
  7. Theme Trac• Current approved theme. priority #1• Ticket older then two weeks. priority #2• Previously Reviewed, but not Approved theme. priority #3• New Themes, Never Reviewed. priority #4
  8. Theme Review• Ticket are assigned by priority• Reviewers assign tickets to themselves.• Issues are noted in a comment.• Ticket are closed as Approved or Not-Approved.• Previously approved tickets mostly diff review only.
  9. Setup a WordPress test environment• Install Latest Version of WordPress• Install plugin WordPress Importer• Import the Theme Unit Test datahttps://wpcom-• Install “Developer” plugin• Settings: – General (Site Title, Tagline), Reading (# Posts per page) – Discussion (Threaded comments, Depth, # Comments per page) – Media (defaults), Permalinks (Pretty)• Set WP_Debug to „true‟ in wp-config – define(WP_DEBUG, true);• Check for any extraneous file – .git or .svn, MACOSX files, backup files, etc
  10. Minimum Plugin Installation• Theme Check• Debug Bar• Log Deprecated Notices• Debogger• Monster Widget• WordPress Beta Tester• Regenerate Thumbnails
  11. Before Looking at the Code• Theme Name• Author URI and Theme URI• Footer Credit Link• License• Copyright• Screenshot• Correct Spelling of WordPress• Automated Test: Theme Check and Log deprecated Notices.
  12. Guidelines (Unit Test)• Static Front Page• Blog Posts Index Page – Scheduled Post, Draft Post, Layout Test, Readability Test, Post Format Tests, This Post Has No Body, No Title, Many Categories, Many Tags, Protect Test With Secret Password,• Single Post – Layout Test, Readability Test, Image Test, Post Format All, Post With Long Title, This Post Has No Body, No Title, Many Categories, Many Tags, Protected Test With Secret Password, Comment Test, Comments Disabled, Many Trackbacks• Pages – Page With Comments, Page With Comments Disabled, Parent Page, Child Page 1, Child Page 2, Clearing Floats• Misc Pages – Search Results, Not Found, 404 page• General – Menus, Widgets, screenshot, Anchor Text and Credit Link
  13. Guidelines (Code Quality)• Themes must not generate any WordPress Deprecated function notices. Note: Themes must not support backward compatibility for more than 2 prior major WP versions.• Check PHP, JS, CSS, HTML errors• Doctype Declaration• Theme Namespacing, theme-slug, textdomain• Hard-codes vs. configurable• Incorporate core functionality and don‟t re-invent• Use core APIs where possible
  14. Guidelines (Presentation Vs. Functionality)• Language – All public-facing text in English – Optionally incorporate translation/internationalization – Themes are required to use as string as the textdomain in translation functions• Favicons – Recommended to implement custom favicon functionality – If implement, add is support for user-defined favicon images• Plugin Territory – Adding/Modifying content, Shortcodes, Metabox• Custom Post Types/ Taxonomies – Theme Lock-in, Consider companion plugin
  15. Guidelines (Required Theme Features)• Automatic Feed Links. add_theme_support( automatic-feed-links );• Sidebars register_sidebar(); dynamic_sidebar(); If Theme uses custom widgets, then add_action(widgets_init); register_widget();• Comments comments_template(); wp_list_comments(); comment_form() wp_enqueue_script( comment-reply ); If using callback for wp_list_comments(); then comment_class();
  16. Guidelines (Recommended Theme Features)• Navigation Menus wp_nav_menu(); register_nav_menu(); or register_nav_menus();• Post Thumbnails the_post_thumbnail(); the_theme_support( ‘post-thumbnails’ );• Custom Header add_theme_support(custom-header);• Custom Backgrounds add_theme_support(custom-background);• Visual Editor CSS add_editor_style() editor-style.css
  17. Guidelines (Required Hooks & Navigation) and hooks, that are required to be included where appropriate:• wp_title();• wp_head(); immediately before </head>• body_class(); inside <body> tag• wp_title();• $content_width• post_class();• wp_link_pages();• paginate_comments_links();, or previous_comments_link();/next_comments_link();• posts_nav_link();, or previous_posts_link();/next_posts_link();, or paginate_links();• wp_footer(); immediately before </body>
  18. Guidelines (Required Hooks & Navigation) Template files: required to be called using the correct template tag.• comments.php ( via comments_template(); )• header.php ( via get_header(); )• footer.php ( via get_footer(); )• sidebar.php ( via get_sidebar(); )• searchform.php ( via get_search_form(); )Custom Template files: required to be called• get_template_part(); or locate_template();• Example: get_template_part( content, get_post_format() );• include( get_template_directory() . /file.php ) must not be used to call Theme template part files.
  19. Guidelines (Required Hooks & Navigation) also have several functions available for getting the path:• get_template_directory() File path to parent Theme directory. Returns the absolute template directory path.• get_template_directory_uri() URL path to parent Theme directory. Returns the template directory URI.• get_stylesheet_directory() File path to current Theme directory. Returns the absolute stylesheet directory path.• get_stylesheet_directory_uri() URL path to current Theme directory. Returns the stylesheet directory URI.Example: // Load up our theme options page and related code. require( get_template_directory() . /inc/theme-options.php )
  20. Guidelines (Required Hooks & Navigation)• Never hard-coding stylesheet/script links For Deregistering Scripts & Styles – wp_deregister_script() – wp_deregister_style() For Registering Scripts & Styles – wp_register_script() – wp_register_style() For EnqueueScripts & Styles – wp_enqueue_script() – wp_enqueue_style()• Themes are required to use core-bundled scripts, if using such scripts• Themes must not use TimThumb
  21. Guidelines (Required Hooks & Navigation)• If used, themes are required to modify the title, body class, post class through filter – wp_title() – body_class() – post_class();
  22. Guidelines (WordPress – Generated CSS Classes) Themes are required to support the following WordPress-defined CSS classes, or similar elements:• Alignment Classes – aligncenter, alignleft, alignright• Caption Related Classes (Gallery) – wp-caption, wp-caption-text, gallery-caption• Post Classes – sticky• Comment Classes – bypostauthor
  23. Guidelines (Template Files)• Required – index.php – comments.php – screenshot.png • Recommended 4:3 W:H ratio, size 600x450px (2x the previous 300x225px, to account for Retina displays). – style.cssNote: Child Themes may include less than this, since they depend on functionality of the parent theme.
  24. Guidelines (Template Files)• Recommended – 404.php – archieve.php – page.png – search.css – single.php – header.php – footer.php – sidebar.php• Noteheader.php, footer.php, and sidebar.php include variations such as: sidebar-left.php, sidebar-right.php, sidebar-footer.php, etc.
  25. Guidelines (Security & Privacy)• Unique Prefix• If used theme options panel, required to implement Theme Options and Theme Setting page.• Use the add_theme_page() function to add the Theme Settings Page rather than using add_menu_page() to add a top-level menu.• Required to use the edit_theme_options capability rather than rely on a role.• Use single array to save theme option.• Themes are required to use esc_attr() for text inputs , esc_html() for textareas, esc_url() for url, esc_js() for javascript.• Use validate and sanitize all untrusted data.
  26. Guidelines (Theme Documentation)• Themes are required to provide end-user documentation of any design limitations or extraordinary installation/setup instructions• Themes are recommended to include a readme.txt file, using Plugin readme.txt markdown.• In lieu of a readme.txt file, Themes are recommended to include a changelog, indicating version-to-version Theme changes.
  27. For Theme Reviewer: After All Theme Checks (Leave your Comment in Trac)• After all theme checks• You just leave a comment as Suggested for Approved or Suggest for Not-Approved• Then leave the comment of Each Test Issues if any• Suggest the way to fix the issues• After enough checks ideally 10 an above, you will be assigned as Reviewer. You can also ask admin team to make you reviewer.• After you are assign as Reviewer, you can assign and close ticket independently.
  28. For Theme Developer: After All Theme Checks (Upload your Theme To• After all these Test• zip your theme• Upload your theme to Theme Repository at• Wait for your theme to get approved and listed in Theme Repository at
  29. Questions? Thanks Sakin ShresthaBlog: http://sakinshrestha.comEmail: Twitter: @sakinshrestha