What you&#39;ve laid out below would be great to incorporate into the Codex.<div><br></div><div>Lance, what are your thoughts on the organization of the Codex pages related to Theme development and review?</div><div><br></div>
<div>We really could use an explicit checklist, but I don&#39;t want to go in and mess around too much with what you&#39;ve already reorganized/cleaned up.</div><div><br></div><div>Chip<br><br><div class="gmail_quote">On Sat, Aug 14, 2010 at 7:00 PM, Philip M. Hofer (Frumph) <span dir="ltr">&lt;<a href="mailto:philip@frumph.net">philip@frumph.net</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">SETUP -<br>
<br>
Load up 3 websites in browser windows<br>
<a href="http://themes.trac.wordpress.org/report/1" target="_blank">http://themes.trac.wordpress.org/report/1</a><br>
<a href="http://codex.wordpress.org/Theme_Review" target="_blank">http://codex.wordpress.org/Theme_Review</a><br>
<a href="http://codex.wordpress.org/Theme_Unit_Test" target="_blank">http://codex.wordpress.org/Theme_Unit_Test</a><br>
<br>
Have a window open to the themes/ directory of your review site, to get ready to svn the theme when reviewing<br>
<br>
Open up your wp-admin on your review site, and another one for your homepage of your review site<br>
<br>
View the active tickets, select the top most active ticket that is not assigned to someone. (status can be assigned, but just not assigned to an owner)<br>
<br>
Check the keywords, if it is buddypress and you cannot review buddypress tickets, avoid and go to the next. šElse reassign the ticket to yourself, right away. (You will need to be logged in);<br>
<br>
View all previous tickets on the theme, read over everything that was previously requested of the theme developer and all responses, check the revisions if necessary by searching for the theme then clicking on the newest revision of the theme,<br>

clicking the &#39;location&#39; then click [view changes] at the bottom, another screen will appear then erasing the revision # just a character or two in the &#39;from&#39; line so that it populates to the other revisions, select proper revision to compare again and click the view changes button,<br>

a revision history of what was changed from previous to this one will appear.<br>
<br>
Go back to the latest active ticket that you assigned to yourself, copy the link location of the SVN of it. šSVN that theme into your themes folder.<br>
<br>
clear the nacin&#39;s deprecated plugin if you have it loaded.<br>
<br>
Load up the source in a source editor software, I use Visual Studio Express from Microsoft on my PC, it&#39;s free and easy to use.<br>
<br>
<br>
-- You&#39;re now ready to review the Visual and Source of the site. -- <br>
VISUAL CHECKS -<br>
<br>
0) Preview the theme before activating it. šIf displays the home page, move on.<br>
<br>
1) During the time when you activate the theme and refresh the home page, verify the screenshot.png is a reasonable display of what you see on the home page after refreshing, if not, it&#39;s a fail.<br>
<br>
2) Check the menubar, if it has one. šDoes it look like how you arranged your custom menubar in appearance menus? if not go to the wp-admin -&gt; appearance -&gt; menus and see if you can assign it to the theme_unit_tests appropriate one. šIf you are<br>

unable to set your own and it&#39;s not the one you have in the wp-admin -&gt; appearance -&gt; menus then fail. #see code check on wp_nav_menu();<br>
<br>
2a) All items in your menu need to display, whether they are dropdown CSS or just one right after the other.<br>
<br>
3) Do the theme_unit_test, check the page with comments disabled, checking if it has comments are closed/disabled/off messages, if it does, fail.<br>
<br>
<br>
4) Verify that pages can have commenting on them, if not, fail.<br>
<br>
5) Check clearing floats page, if the image in the clearing float is not 150px × 99px and floating properly then it&#39;s good, usually you can tell when floats are bad on this page is when there is text of some sort to the right of the image or it says edit to the right of it, as clues.<br>

<br>
6) Make sure the layout test is the stickied post at the top of all the others on the home page. (if applicable), if it is, check each of the pages in it to make sure it navigates properly and the information inside of it is reasonable to accept.<br>

<br>
7) Go down to Readability Test, on the home page it should have a valid MORE link as specified while the other posts do not. šIt is valid if there&#39;s a distinction between a READMORE link that is seperate from the read the rest of the entry type of read more. šThe posts cannot be excerpts, they need to be full the_content unless MORE tag is used.<br>

<br>
8) Images test, š the top one, image alignment tests, needs to be a centered image, caption centered under it, surrounded by a box around it.<br>
<br>
9) Images Test, verify alignment. šCheck floats. šCheck resizing.<br>
<br>
10) Wide Image, Not Resized. šThis actually means make sure that the image does NOT go out of the content area and bleed into other parts of the site. Usage of max-width and overflow are acceptable. šIf it does flow over, fail it.<br>

<br>
11) Check embedded video so that it displays and is viewable in the content area.<br>
<br>
12) Check titles of posts to make sure they can be viewed properly and full title can be displayed.<br>
<br>
13) No body posts and no-title posts must not disrupt the theme&#39;s style.<br>
<br>
14) Go to the older entries/previous posts, there has to be links to them, if they are not there fail, basically your testing for paging.<br>
<br>
15) Themes are not required to show tags and categories, but if it does make sure they are displaying nicely and all of them are displaying if they exist on the post.<br>
<br>
16) check Protected: Test with secret password so that it clearly says its a protected post. šThe password and submit is not required on the home page list, but clicking on the post and having it there is minimally required. Make sure that on that password protected post that you cannot see any comments at all.<br>

<br>
17) On the comment test post, check the comments, make sure they&#39;re displaying properly.<br>
<br>
18) On comments disabled post, make sure that it&#39;s clear that the comments are disabled/off on the &#39;single&#39; post itself as a minimum. doesn&#39;t have to be on the home page, but the single page after clicking on it, it has to display.<br>

<br>
19) Last post, &#39;many trackbacks&#39; if the theme allows trackbacks, make sure they are easily read and different from regular posts, don&#39;t spend much time on this, this is aesthetics.<br>
<br>
20) Check all external links on the homepage pages and singles. š Make sure author credits do not go to a spam site or advertising site, they need to go to a page or site specifically dedicated to the theme.<br>
<br>
21) Check a 404 page and search page.<br>
<br>
NOTE: While checking all of the posts and pages and you see any notices warning failures or deprecated, fail.<br>
<br>
THEME OPTIONS NOTES -<br>
<br>
1) Check theme options pages, make sure they function., i.e click save and no errors;<br>
<br>
<br>
SOURCE CHECKS -<br>
<br>
1) View the style.css check for GPL information AND link to said GPL information, if it doesn&#39;t exist check for a license.txt file, if that doesn&#39;t exist, fail.<br>
<br>
2) Open up header.php, verify that wp_head(); is directly above &lt;/head&gt; and there are no &lt;link rel=&#39;s to RSS feeds, ATOM is okay. šCheck for .JS or .CSS &lt;link rel&#39;s in the header, if there are fail, tell them to have them enqueued. šNote: link rel&#39;s going to stylesheet_url and pingback_url are allowed; šcheck for body_class(); if it doesn&#39;t exist in the &lt;body&gt; fail.<br>

Cursory glance the header.php to check for wp_nav_menu if thats where the developer put the menu, if it has wp_list_pages, wp_list_categories, wp_page_menu as it&#39;s menubar in a menubar style look it&#39;s a fail and they have to use wp_nav_menu();<br>

<br>
3) Open up footer.php, verify that wp_footer(); is directly above &lt;/body&gt; and check the links that people put in the footer sometimes verify they go to non-spam or adveritsing sites and to a site for the theme or author&#39;s theme.<br>

<br>
4) Open up comments.php and comments-popup.php if they exist and verify they are using comment_form(); šif not fail.<br>
<br>
SOURCE SEARCH CHECKS<br>
<br>
Most Editors will allow you to search all code in the theme for what you&#39;re looking for, at least visual studio express does.<br>
<br>
1) Search for &quot;searchform&quot; verify that that if it&#39;s being called that its being done with get_search_form();<br>
<br>
2) search for &#39;add_theme_support&#39;, verify that add_theme_support(&#39;automatic-feed-links&#39;) is present and utilized<br>
<br>
3) search for &#39;register_nav&#39; šfor the wp_nav_menu, if it doesn&#39;t exist, search for add_theme_support(&#39;menus&#39;) if that doesn&#39;t exist, and wp_nav_menus is used, fail. šNote, old add_theme_support(&#39;nav-menus&#39;); needs to be add_theme_support(&#39;menus&#39;); now.<br>

<br>
4) search for $content_width, it must set (or with an if, if already isset) the value of the available width of the post area.<br>
<br>
5) search for &quot;include&quot; or sidebar, or the filename of a file that could be a sidebar that&#39;s in the theme and make sure they&#39;re loaded with get_sidebar(); also if includes found in non-function files but regular WP files it&#39;s a fail cause they need to use get_template_part();<br>

<br>
6) cursory glance at all the custom function names in the theme, they need to have unique non-wordpress-core and not basic function names, a prefix unique to the theme or mytheme something that will make it so that it should not conflict.<br>

<br>
7) search for &#39;dynamic_sidebar&#39; if theme doesnt support dynamic sidebar&#39;s fail, if they exist search for &#39;register_sidebar&#39; if that doesn&#39;t exist fail.<br>
<br>
8) search for &#39;post_class&#39; if that doesnt exist, fail.<br>
<br>
9) search for &#39;wp_list_comments&#39; if it has a callback then search for the function for it, if it doesnt exist, fail, if it does check for &#39;comment_class&#39;, if that doesnt exist with a callback then fail.<br>

<br>
<br>
<br>
WRITING THE REVIEW -<br>
<br>
1) If any notices / warnings or deprecated were found, you are *not* required to display them all and you can write something to effect like:<br>
<br>
=&gt; PHP Warnings and/or wordpress errors found:<br>
To check for notices/warnings/fatal errors or deprecated functions, enable define(&#39;WP_DEBUG&#39;, true); in the wp-config.php<br>
<br>
2) Make sure that you write references to all the things found via links from the <a href="http://codex.wordpress.org/Theme_Unit_Test" target="_blank">http://codex.wordpress.org/Theme_Unit_Test</a> and link to the <a href="http://codex.wordpress.org/Theme_Review" target="_blank">http://codex.wordpress.org/Theme_Review</a> documentation, in each entry you make if applicable.<br>

<br>
Example:<br>
<br>
=&gt; Clear floats not behaving properly on pages - <a href="http://codex.wordpress.org/Theme_Unit_Test#Clearing_Floats" target="_blank">http://codex.wordpress.org/Theme_Unit_Test#Clearing_Floats</a><br>
<br>
3) Then after everything is itemized including any notes you want to take or suggestions you should add some extra info example:<br>
<br>
Developer needs to thoroughly read the <a href="http://codex.wordpress.org/Theme_Review" target="_blank">http://codex.wordpress.org/Theme_Review</a> šand find all the must-haves and update their theme(s) accordingly, this theme will continue to not pass until all requirements are met.<br>

<br>
Items marked with =&gt; are reasons for not being approved<br>
Items marked with / are just suggestions<br>
Items marked with - are notes<br>
<br>
This is a tertiary review, enough items didn&#39;t pass; Next reviewer might find more so please do everything you can to adhere to the documentation on what is accepted in the theme review.<br>
<br>
<br>
</blockquote></div><br></div>