<div dir="ltr">Good afternoon, Theme Reviewers!<div><br></div><div>As I perform the final "QA" audit of approved Themes before pushing them Live, I've noticed several things that come up frequently:</div><div>
<br></div><div>1. <title> tag: the content of the <title> tag must be *only* the call to wp_title() with its parameters. All additional content must be added via `wp_title` filter</div><div><br></div><div>2. Document head stylesheet links: all stylesheets, scripts, and stylesheet/script links in the document head and footer must be enqueued, rather than hard-coded. Common culprits are GoogleFont stylesheet links</div>
<div><br></div><div>3. wp_nav_menu(): Themes must use the theme_location parameter, and NOT the menu parameter, in calls to wp_nav_menu(). The theme_location parameter corresponds to the array key used in the register_nav_menu()/register_nav_menus() call. The menu parameter corresponds to the slug for a *user-defined* custom nav menu.</div>
<div><br></div><div>4. Namespacing arguments arrays: Please place arguments arrays directly inside of the function calls to which they apply, or properly namespace the variable used to hold the array:</div><div><br></div>
<blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>$args = array( /* ... */ )</div><div>wp_nav_menu( $args );</div><div><br></div><div>Instead do one of the following:</div><div><br></div><div>wp_nav_menu( array( /* ... */ );</div>
<div><br></div><div>or </div><div><br></div><div>$themeslug_primary_menu_args = array( /* ... */ )</div><div>wp_nav_menu( $themeslug_primary_menu_args ;</div></blockquote><div><br></div><div>5. Confusion between the *site front page* and the *blog posts index*: is_front_page() vs is_home(), front-page.php vs home.php (and confusing custom page template names), etc. Themes must use front-page.php for the *site front page*, and that must account for both the blog posts index and a static page as front page.</div>
<div><br></div><div>6. Child Theme Friendliness: be cognizant of the differences between get_template_directory() and get_stylesheet_directory(), and the appropriate uses for each. Any asset that is NOT intended to be overridden in a Child Theme (e.g. Theme options) *must* use get_template_directory().</div>
<div><br></div><div>Thanks, everyone, for all your time and contribution to Theme review!</div><div><br></div><div>Chip</div></div>