[theme-reviewers] A few issues to look out for

Justin Tadlock justin at justintadlock.com
Thu Apr 28 03:33:43 UTC 2011


I also check that themes handle public posts types and taxonomies too, 
at least to the degree that a theme can handle those things.  I assumed 
this was something everyone else was doing as well.  I do this with 
every theme I review.

For example, if a theme had a filter on 'single_template' that didn't 
take into account custom post types and failed to display a post of a 
custom post type at all, I'd point that out in the review and suggest a fix.

On 4/26/2011 10:33 PM, Chip Bennett wrote:
> This:
>
>     /as a matter of official Theme review, I care a great deal about
>     non-core comment types, including "tweetbacks" (even if they are
>     evil)./ :)
>
>
> But, why? Why should Theme Review be concerned with arbitrary, 
> non-core content? And, why only comment types? Why not other types of 
> content that could have arbitrary types added (taxonomies, posts, etc.)?
>
> IMHO, that's really the key question to answer.
>
> Chip
>
> On Wed, Apr 27, 2011 at 10:19 PM, Justin Tadlock 
> <justin at justintadlock.com <mailto:justin at justintadlock.com>> wrote:
>
>     Your use case is perfectly fine by me.  That scenario is not what
>     I've been talking about.  However, it too can handle custom
>     comment types with a little tweaking.
>
>     Put bluntly: /as a matter of official Theme review, I care a great
>     deal about non-core comment types, including "tweetbacks" (even if
>     they are evil)./ :)
>
>
>     On 4/26/2011 10:09 PM, Chip Bennett wrote:
>>     Here's an example of my use case:
>>     https://github.com/chipbennett/oenology/blob/master/comments.php
>>
>>     (And consider that the Guidelines currently *suggest* separating
>>     pings from comments.)
>>
>>     My primary issue is with this assertion:
>>
>>         how will this be displayed if a theme is deliberately
>>         overwriting core functionality and not showing the output of
>>         alternate comment types?
>>
>>
>>     Passing a valid argument to a core function is not "overwriting
>>     core functionality". Those arbitrary, "alternate" comment types
>>     *aren't part of core*. Put bluntly: /as a matter of official
>>     Theme review, I don't care about any non-core comment types,
>>     including "tweetback"/.
>>
>>     Again: if a Plugin adds a custom comment type, then the *Plugin*
>>     is responsible for either hooking that custom content into the
>>     Theme, or else for providing instructions to the end user for how
>>     to incorporate that custom content. (Yes, it might mean
>>     instructing the user to add a call to wp_list_comments(
>>     'type=tweetback' ). I see no problem with that.)
>>
>>     I don't agree that WordPress "handles it beautifully", because,
>>     aesthetically speaking, I think that pings mixed in with comments
>>     looks utterly horrid. Seeing "tweetbacks" mixed in with comments
>>     AND pings would look even worse.
>>
>>     On the other hand: I do agree with you that all code should be
>>     added deliberately. Copy/pasting TwentyTen's comments callback
>>     should  be done deliberately. And we should absolutely be
>>     checking such a Theme's comment-list output, to ensure that it is
>>     appropriate - and wherever possible, helping to educate Theme
>>     developers on the proper usage and powerful potential of
>>     implementing such custom callbacks. Such effort will only be to
>>     the benefit of end users.
>>
>>     Chip
>>
>>     On Wed, Apr 27, 2011 at 9:50 PM, Justin Tadlock
>>     <justin at justintadlock.com <mailto:justin at justintadlock.com>> wrote:
>>
>>         My question is:  If a plugin adds a custom comment type (for
>>         example, Facebook comments, tweetbacks, or something of the
>>         sort), how will this be displayed if a theme is deliberately
>>         overwriting core functionality and not showing the output of
>>         alternate comment types?
>>
>>         By default, WordPress handles this beautifully.  It's only
>>         when a theme overwrites this functionality that it breaks.
>>
>>         The fix is really quite simple for most themes.  Just create
>>         a default case in that copy-pasted switch statement used in
>>         about 90% of the themes based off TwentyTen's comment system.
>>
>>         I'm not suggesting we make a new guideline here.  I'm just
>>         suggesting we be on the lookout for this in themes where devs
>>         just copy/paste comment callback functions without giving it
>>         much thought.  I could certainly understand an intentional
>>         design choice to exclude custom comment types.  Whatever we
>>         decide, I'll be sure to continue educating theme authors on
>>         this because it is a legitimate problem that themes create
>>         for plugin authors.
>>
>>
>>         On 4/26/2011 9:36 PM, Chip Bennett wrote:
>>>         If a Theme is providing callback output for 'comment',
>>>         'pingback', and 'trackback', then it IS handling every core
>>>         comment type; thus, I disagree that a Theme is not "handling
>>>         every scenario that core handles by default". A Theme cannot
>>>         know what a Plugin might possibly hook into, or what content
>>>         it might provide.
>>>
>>>         Now, if a Theme provided callback functions for only
>>>         'comment' comment types, but not for 'pings' (or if it
>>>         accounted for 'trackback' but not 'pingback', or something
>>>         similar), then I would agree.
>>>
>>>         One of the most common features is for a Theme to separate
>>>         comments form pings. That very act of separation - however
>>>         accomplished - would require explicitly declaring 'comment'
>>>         and 'pings' comment types. Thus, it would not be using the
>>>         'all' comment type. And thus, such Themes would no longer be
>>>         flexible enough to handle some non-core comment type added
>>>         by a Plugin.
>>>
>>>         Or am I missing something?
>>>
>>>         Chip
>>>
>>>         On Wed, Apr 27, 2011 at 6:02 PM, Justin Tadlock
>>>         <justin at justintadlock.com <mailto:justin at justintadlock.com>>
>>>         wrote:
>>>
>>>             I probably didn't explain myself well enough in the
>>>             first email.
>>>
>>>             We're not looking at the "type" parameter of
>>>             wp_list_comments().  We're looking at the "callback"
>>>             parameter here.  This is where a theme is overriding
>>>             core functionality.  If the theme didn't override this
>>>             functionality with a custom function, WordPress would
>>>             display other comment types by default.
>>>
>>>             A plugin cannot be responsible for incorporating custom
>>>             comment types if a theme is purposely not allowing
>>>             comments of a custom type to show.  There's no hook to
>>>             allow a plugin to override what a theme is doing there. 
>>>             Even if there was a hook there, this would be a major
>>>             problem if a plugin was changing how a theme handled the
>>>             display of comments.
>>>
>>>             What's happening here is themes are overriding core
>>>             functionality without handling every scenario that core
>>>             handles by default.
>>>
>>>
>>>             On 4/26/2011 3:18 PM, Chip Bennett wrote:
>>>>             Quite possibly. But it is not the responsibility of
>>>>             Themes to account for content added by Plugins.
>>>>
>>>>             I see no reason to require Themes to support a non-core
>>>>             'tweetback' comment-type. If a Plugin adds this
>>>>             comment-type, then the Plugin should be responsible for
>>>>             incorporating it.
>>>>
>>>>             Chip
>>>>
>>>>             On Tue, Apr 26, 2011 at 3:14 PM, Sayontan Sinha
>>>>             <sayontan at gmail.com <mailto:sayontan at gmail.com>> wrote:
>>>>
>>>>                 Chip,
>>>>                 I believe Justin is referring to the fact that
>>>>                 plugins can add the type "tweetback". If that is
>>>>                 the case, then a theme that is explicitly checking
>>>>                 only for "comment", "pingback" and "trackback" is
>>>>                 missing out on the ones that don't fall into these
>>>>                 buckets, i.e. it is missing a catch-all for types
>>>>                 introduced by plugins.
>>>>
>>>>                 Sayontan.
>>>>
>>>>
>>>>                 On Tue, Apr 26, 2011 at 12:49 PM, Chip Bennett
>>>>                 <chip at chipbennett.net
>>>>                 <mailto:chip at chipbennett.net>> wrote:
>>>>
>>>>                     I can't find that 'tweetback' is a core comment
>>>>                     type.
>>>>
>>>>                     According to the Codex
>>>>                     <http://codex.wordpress.org/Function_Reference/wp_list_comments>,
>>>>                     the valid types are: 'all', 'comment',
>>>>                     'trackback', 'pingback', or 'pings'
>>>>
>>>>                     So, if a Theme accounts for these types, that
>>>>                     should be sufficient. For instance, if a Theme
>>>>                     accounts for 'comments' and 'pings', all bases
>>>>                     are covered.
>>>>
>>>>                     Chip
>>>>
>>>>
>>>>                     On Tue, Apr 26, 2011 at 2:39 PM, Chip Bennett
>>>>                     <chip at chipbennett.net
>>>>                     <mailto:chip at chipbennett.net>> wrote:
>>>>
>>>>                         Hmm... I don't think I've yet seen a Theme
>>>>                         that explicitly handles tweetbacks.
>>>>                         (Honestly, I didn't even realize such a
>>>>                         comment type existed.)
>>>>
>>>>                         Chip
>>>>
>>>>
>>>>                         On Wed, Apr 27, 2011 at 2:16 PM, Justin
>>>>                         Tadlock <justin at justintadlock.com
>>>>                         <mailto:justin at justintadlock.com>> wrote:
>>>>
>>>>                             Here's a few things we should be on the
>>>>                             lookout for when reviewing themes that
>>>>                             I thought I'd bring up.
>>>>
>>>>                             The use of the_post_thumbnail() with
>>>>                             the_content() can sometimes be a
>>>>                             problem.  If a user places the image
>>>>                             within the post content (at the
>>>>                             beginning of the post) and sets the
>>>>                             same image as the "feature image," it
>>>>                             creates a duplicate image issue.  Some
>>>>                             themes' designs are meant to handle
>>>>                             this while others aren't.
>>>>
>>>>                             Some themes have a comments callback
>>>>                             function where they don't recognize
>>>>                             comment types other than 'comment',
>>>>                             'pingback', and 'trackback'.   This is
>>>>                             also the case in the TwentyTen theme.
>>>>                              If you look at its switch statement,
>>>>                             you'll notice it doesn't give a
>>>>                             'default' case.  It should be corrected
>>>>                             to handle all comment types (e.g.,
>>>>                             tweetbacks).
>>>>
>>>>                             Loading JS and CSS on all pages of the
>>>>                             admin.  Sometimes, themes hook their
>>>>                             theme settings page JavaScript and
>>>>                             Stylesheet to the 'admin_init' hook or
>>>>                             something similar.  This should only be
>>>>                             loaded on the the theme settings page.
>>>>                              If using the add_theme_page()
>>>>                             function, a hook is created just for
>>>>                             that page.  A better hook would
>>>>                             probably be
>>>>                             'load-appearance_page_$pagename'.
>>>>                             _______________________________________________
>>>>                             theme-reviewers mailing list
>>>>                             theme-reviewers at lists.wordpress.org
>>>>                             <mailto:theme-reviewers at lists.wordpress.org>
>>>>                             http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>>>>
>>>>
>>>>
>>>>
>>>>                     _______________________________________________
>>>>                     theme-reviewers mailing list
>>>>                     theme-reviewers at lists.wordpress.org
>>>>                     <mailto:theme-reviewers at lists.wordpress.org>
>>>>                     http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>>>>
>>>>
>>>>
>>>>
>>>>                 -- 
>>>>                 Sayontan Sinha
>>>>                 http://mynethome.net | http://mynethome.net/blog
>>>>                 --
>>>>                 Beating Australia in Cricket is like killing a
>>>>                 celebrity. The death gets more coverage than the crime.
>>>>
>>>>
>>>>                 _______________________________________________
>>>>                 theme-reviewers mailing list
>>>>                 theme-reviewers at lists.wordpress.org
>>>>                 <mailto:theme-reviewers at lists.wordpress.org>
>>>>                 http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>>>>
>>>>
>>>>
>>>>             _______________________________________________
>>>>             theme-reviewers mailing list
>>>>             theme-reviewers at lists.wordpress.org  <mailto:theme-reviewers at lists.wordpress.org>
>>>>             http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>>>
>>>             _______________________________________________
>>>             theme-reviewers mailing list
>>>             theme-reviewers at lists.wordpress.org
>>>             <mailto:theme-reviewers at lists.wordpress.org>
>>>             http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>>>
>>>
>>>
>>>         _______________________________________________
>>>         theme-reviewers mailing list
>>>         theme-reviewers at lists.wordpress.org  <mailto:theme-reviewers at lists.wordpress.org>
>>>         http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>>
>>         _______________________________________________
>>         theme-reviewers mailing list
>>         theme-reviewers at lists.wordpress.org
>>         <mailto:theme-reviewers at lists.wordpress.org>
>>         http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>>
>>
>>
>>     _______________________________________________
>>     theme-reviewers mailing list
>>     theme-reviewers at lists.wordpress.org  <mailto:theme-reviewers at lists.wordpress.org>
>>     http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>
>     _______________________________________________
>     theme-reviewers mailing list
>     theme-reviewers at lists.wordpress.org
>     <mailto:theme-reviewers at lists.wordpress.org>
>     http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>
>
>
> _______________________________________________
> theme-reviewers mailing list
> theme-reviewers at lists.wordpress.org
> http://lists.wordpress.org/mailman/listinfo/theme-reviewers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.wordpress.org/pipermail/theme-reviewers/attachments/20110427/3876278a/attachment-0001.htm>


More information about the theme-reviewers mailing list