[theme-reviewers] Theme Review: summ 1.0.0
chip at chipbennett.net
chip at chipbennett.net
Fri Jun 11 15:53:41 UTC 2010
NOTE: Review based on theme as rendered on test site:
http://themereview.chipbennett.net/wordpress
1) Code Quality: PHP/WP Errors:
- This:
"Notice: Undefined index: action in
/.../wp-content/themes/summ/options/theme-options.php on line 49"
Line 49 of theme-options.php is: `if ( 'save' == $_REQUEST['action'] )`
Try adding an `if(isset($_GET["action"]))` here to avoid this error.
Note: taken from suggestion here:
http://www.webdeveloper.com/forum/archive/index.php/t-32298.html
- This:
"Notice: Undefined variable: max_page in
/.../wp-content/themes/summ/functions.php on line 113"
$max_page variable appears in par_pagenavi() function.
Try explicitly declaring $max_page before the conditional on line 113?
- Theme uses deprecated get_settings() function; should be replaced with
get_option()
See the Codex reference:
http://codex.wordpress.org/Function_Reference/get_settings
- Theme uses deprecated get_links() function; should be replaced with
get_bookmarks()
see the Codex reference:
http://codex.wordpress.org/Function_Reference/get_links
2) Code Quality: HTML/CSS Validation:
- 1 HTML validation error (but I believe it comes from the gallery
shortcode, not from the theme? Error results from <style type="text/css">
being placed in BODY instead of in HEAD.)
- 24 CSS validation errors (but all are associated with browser-specific
declarations, rather than malformed CSS)
3) Code Quality: HTML Structure:
- Theme appears to use reasonably well-structured HTML.
4) Code Quality: JS Errors:
- I detected no JS errors.
5) Header: DOCTYPE
- Doctype declared; declaration well-formed
6) Header: HTML tag language_attributes() declaration
- language_attributes() properly declared in HTML tag
7) Header: HEAD tag XFN profile link
- profile="http://gmpg.org/xfn/11" properly declared in HEAD tag
8) Header: content-type meta declaration
- meta http-equiv="Content-Type" declared above TITLE tag
- HTML_type and charset declared using bloginfo()
9) Header: Title/Description fetched via bloginfo()
- Title and Description fetched via bloginfo() in #header div
(Note: this checklist item is misplaced. Semantically, it should come
*after* all of the HEAD tag checklist items.)
10) Header: Feed Auto-discovery LINK
- RSS 2.0, RSS 0.92, and Atom 0.3 feed links declared, using bloginfo()
11) Header: wp_head()
- wp_head() hook declared in proper location: last item before closing
HEAD tag.
12) Footer: wp_footer() call
- wp_footer() hook declared, last item before closing BODY tag.
- NOTE: theme uses #footer DIV, but declares wp_footer() immediately
after closing DIV tag for #footer. Consider moving inside #footer DIV?
13) Syntax/File Handling: SVN
- N/A
14) Syntax/File Handling: JS
- CDATA encoding N/A
- wp_enqueue_script() used in header, for comment_reply
15) File References: Hard-Coded vs. bloginfo()
- All linked/included pages use bloginfo(); no hard-coded URIs
16) Untrusted Data: Data Escaping
- the_title_attribute() used in anchor tag title attribute
- other esc_attr uses N/A
17) Basic Usability: Clear Visual Hierarchy
- Layout has a header area, a content area, and a footer area:
- Header area has Site Title/Description area, and Navigation bar (for
pages, top-level only)
- Content area has main content area on left, sidebar on right
- NOTE: What are you actually looking for here? "Clear visual hierarchy"
isn't particularly descriptive.
18) Basic Usability: Navigation
- Top-level page menu as Navigation bar in Header
- Sub-level pages not exposed as navigation without using a widget.
19) Basic Usability: 404 Page
- 404 page included, but unable to test (probably something with my
.htaccess or other config. Will look into it later).
- Included 404 page isn't especially useful. Only has text "Error 404 -
Not Found".
20) Basic Usability: Search Results Page
- Search Results page exists, with decent layout.
- Does not explicitly state or give other visual indication of search
query terms
21) Basic Usability: Content/Presentation Separation
- All styling is handled by CSS
22) Formatting/Function/Logic: Post Order
- Posts are in reverse-chronological order (index.php and archive.php)
- NOTE: theme template file "archive.php" is mis-spelled as
"archieve.php", which won't be recognized by WP
22) Formatting/Function/Logic: Correct # Posts Displayed
- Front Page: yes
- Archive Page: yes (note: based on index.php. See note on #22 above)
23) Formatting/Function/Logic: Sticky Posts
- Sticky Post appears to be displaying correctly
24) Formatting/Function/Logic: Pages in Header
- Header has Pages navigation bar. See #18 above
- NOTE: Too many (~9) top-level pages will probably cause layout issues.
25) Navigation: Pagination
- index.php and single.php paginate correctly.
- Unable to test archive.php. See #22 above.
26) Navigation: wp_link_pages()
- index.php and page.php use wp_link_pages()
- single.php uses link_pages()
27) Navigation: Stable With Categories Showing
- Theme does not expose categories (as list/links) by default, without
using a widget
28) Widgets: Fully Widgetized
- Theme has one widget area: the right column in the main content area
29) Widgets: Custom Widgets
- No custom widgets defined
30) Wdigets: Current Widgets Correctness
- No widgets displayed by default.
- Adding Pages and Categories widgets to test:
- I think this line in functions.php is wrong:
`if ( function_exists('register_sidebar') )
register_sidebar();`
Widgets admin page was unusable (but it could have just been my server
acting up?). I changed to this:
`if ( function_exists('register_sidebar') ) register_sidebar();`
and all worked again.
- When widgets are added, default content of sidebar.php (links, tag
cloud) is not rendered. Nice touch, but I would recommending having
calls to wp_list_pages() and wp_list_categories() amongst the default
content.
31) Widgets: Standard Widgets
- No widgets are displayed by default
32) Widgets: Standard Widgets Override
- No standard widgets are filtered. Theme has no custom widgets.
- Theme has a custom tag_cloud() function. Consider a unique prefix for
function name; also consider using it as filter for the standard Tag
Cloud widget.
33) Pages: Comments
- comments_template() included in page.php
34) Pages: Sub-Page Navigation
- Sub-Page Navigation only exposed with sidebar Pages widget.
- Consider using breadcrumb navigation for pages, similar to the one used
for posts
35) Pages: Date/time Stamps:
- No Date/Time Stamps displayed on pages
36) Pages: Custom Page Templates
- No custom page template files.
- NOTE: Please clarify this criterion, WRT page-{slug}.php nomenclature.
Nomenclature is valid, but checklist says to ensure no pages use it?
37) Posts: Logged-in Function
- Theme does not expose EDIT links for posts
38) Posts: Date/Time Format
- Date/Time Format Option setting not used. It appears theme is capable
of accommodating this option.
- NOTE: In index.php the call to the_time() uses mal-formed parameter:
`m月d日`, which does not render the date properly in my
default language (English)
39) Posts: Styling
- Tables, Captions, Un/Ordered Lists, Blockquotes all appear to be styled
reasonably.
40) Multiple-Page Posts
- Page links display correctly.
- Page links work.
41) "More" Tag:
- Pre-"more" tag content displays on index.php
- Full post appears on single.php
42) Enclosures
- On Enclosure Test post, both enclosures appear as (external) links.
43) Images
- Left/Right/Center alignment styled correctly
- Oversized images resize appropriately
- $content_width / $GLOBALS['content_width'] not set in functions.php
(NOTE: which one is correct to use?)
- Gallery shortcode displays correctly
- Image borders styled nicely
- no image.php file defined
- no navigation (prev/next) exposed for single-image displays for gallery
images
44) Categories
- Post category links are displayed, and work properly
- Categories not displayed by default, without using Categories widget
- Categories displayed using standard widget is rendered as an
unintuitive, two-column unordered list, that reads left-right, top-bottom
- instead of top-bottom, left-right.
- Categories displayed using standard widget are not displayed as
hierarchical. List is flat, with no parent-child relationships displayed.
45) Tags
- Post tag links are displayed, and work properly
- Theme has a very nicely styled custom tag cloud - but it is not
rendered if any widgets are used
46) Comments
- Comments are displayed on single.php and page.php, and display properly
- Blockquotes and other HTML are rendered properly
- Author comments are not uniquely highlighted/styled
- Gravatars display properly
47) No/Disabled Comments
- With comments disabled, displays "Comments are closed"
48) Trackbacks
- Trackbacks are displayed correctly, no overlap
- NOTE: trackbacks are listed below comments, and below the comment form.
Unintuitive layout.
49) Comment Input Form
- Looks fine when logged in
- Looks fine when logged out
- "Edit" links not exposed for comments
- Comment HTML displayed correctly
50) Screenshot
- Theme has screenshot
- Screenshot shows light-colored background. Theme renders on my system
with a dark-colored background. Otherwise, screenshot accurately reflects
theme appearance.
51) Bonus: Print Style Sheet
- Theme does not define a separate style sheet for media:print
52) Bonus: Theme Classes
- Theme does not use body_class()
- Theme uses post_class() in index.php, but not in single.php or page.php
- Theme uses standard call to comments_template()
- NOTE: I don't think use of theme classes should be "Bonus Points".
These should be required, just like standard hooks
53) Bonus: Language Support
- Theme has *some* language support
54) Bonus: Accessibility
- Layout is somewhat fluid for main content
- Contrast is ideal: dark text, light background
- Links are indicated with foreground-color change only. :hover includes
color change and underline
- :focus - not tested
55) Devices
- Theme renders fine in IE/Win, FF/Win, and Chrome/Win. Will check
Chrome/Linux and FF/Linux later.
- Mobile devices: not tested
56) Theme Unit Tests
- Need to verify that all data imported correctly. Everything is there,
but I don't think it's entirely as expected. I imported on a fresh 2.9.2
install, with only the default user (admin). Not sure if that would cause
any problems?
57) Other thoughts
- The theme only has one plugin dependency, that I could find: Simple
Tags. Calls to st_related_posts() function are properly sanitized in a
function_exists conditional, but default output ("RELATED(Simple Tags) OR
YOUR INFO HERE") is sub-optimal.
- In the #header DIV, the DIV that displays bloginfo('title') is too
narrow. Layout style breaks with long Blog Titles.
- UX: the post_meta layout changes from index.php to single.php. In
index.php (front page), below the post title are displayed the post date
(in a green box) and post category (in a blue box). However, in
single.php, the content in the blue box changes to # of comments, and
post categories are displayed in a breadcrumb navigation above the post.
- The theme comes with a very nicely styled and unique tag cloud, but it
is only displayed if no widgets are used. Strongly suggest to create a
custom widget in functions.php for this custom tag cloud, and use it to
filter the standard Tag Cloud widget.
- I like the color scheme - though the light background shown in the
screenshot (and as displayed on the author's home page) looks much better
than the dark background I'm seeing on my test site. As rendered on my
test site, the Blog Title and Blog Description are not readable, due to
lack of contrast.
===================================================
Okay, that was probably entirely too long. But, there it is!
Cheers,
Chip
More information about the theme-reviewers
mailing list