What’s In a Name?

To paraphrase a famous line from Shakespeare’s Romeo and Juliet, “a theme by any other name would look as sweet” … and in the same manner that one can see “code is poetry”, a good theme will be known by its quality more so than by its name. The name should just be a point of reference so you can find it more easily.

Also keep in mind, that when you choose a theme name you should recognize what and how that name should be used within the theme’s code. For example, the theme name will directly translate into the theme’s slug. The theme slug should be expressly used as the theme’s textdomain. Also keep in mind, in many cases the theme name/slug should also be used as the prefix for any of the theme’s functions that may be used to ensure there is minimal chance of code clashes and/or conflicts.

So what makes a good name? I would say something unique but still easy to remember. People might joke about naming a theme “Fred” which is all fine especially if Fred is a great theme then it will be rather easy to search for, but seriously … Fred?!

Why not try something a little more interesting, something to make the theme stand out a bit. Maybe “Black Gypsy Moth” … or “Hecuba’s Huzzah” … how about “SKU Biddy Bah Boo”?! These can all be good, or bad, theme names but for the most part the real test will be in the code and design; and, what the theme does for the person using it.

Also, don’t forget the power of a single word theme name, and that does not mean to say it has to be a “real” word. Why not try making something up yourself … could you see “Gooderama”, “Crazylicious”, or even “Bestest” as a theme name? I can. I might even grab one of these for myself. It’s still first come first served so be quick about it, these are all free to use.

Will playing off of another popular name, or flavor of the day/week/month really be that valuable down the road? Maybe, but why not stand out with a truly unique name upfront rather than share the limelight with something or someone else.

Part of the fun and the challenge of theme design is giving the finished product a name that suits the work. Although this is something that often needs to be done before the code is written, it is still worth the time to take a step back and think of something unique to aspire to … you’re not just creating a copy of another theme you are creating your own unique work, doesn’t it deserve a unique identifying name as well?

#discussion-topic, #theme-names

Improving our theme previews

As many of you may, or may not, have noticed there are currently over two thousand themes available in the repository. I think that is amazing. Seriously, huge thanks to all those that have contributed not only their time but their efforts as well.

One thing I noticed some time ago was the mentioning of the theme previews. I can’t recall where it was brought up but I do recall it mentioned that it wasn’t the greatest preview of a theme, or themes really. I do hate to admit it but it is fairly true. The current preview is lacking on some things.

One of the things being post formats. Currently the theme preview is just a few posts and a few pages. I think we can do a little better now. I’ve brought up a ticket a few times: #30 in the Meta trac.

Here are some of the things I think we can not only improve upon but can contribute to.

  • Sample data
  • Images
  • Video
  • Audio

Data

Simple and to the point. We need posts and plenty of them. How about quick little tidbits like how to set up a front page, or changing the image headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes.. Doesn’t have to be huge.

Images

Galleries. Sliders. Single images. We need more boats!! Okay not really but if you have them it would be awesome.

Videos

I think we can find a way to contribute a few videos here and there. I know there are some themes that have video format support and I would love to be able to accent that in some way.

Audio

I’m thinking podcasters and maybe musicians.

So there you have it. Let’s discuss!

#community, #discussion, #discussion-topic, #wporg

Theme Review Points of Emphasis

Here are some of the things I’ve been looking for specifically when performing the final audit of approved Themes waiting to be made live. These are the most-frequent issues when reopening a ticket for an approved Theme. Please consider these as “points of emphasis”, to help improve the consistency of our reviews.

Prerequisites – these should be verified before even looking at Theme code

  • ThemeURI/AuthorURI: the first thing I do is check ThemeURI/AuthorURI for appropriateness.
  • If ThemeURI is a commercial Theme shop, or if the Theme is Up-Sell, I verify the commercial-Theme license, to ensure that it is 100% GPLGPL GPL is an acronym for GNU Public License. It is the standard license WordPress uses for Open Source licensing https://wordpress.org/about/license/. The GPL is a ‘copyleft’ license https://www.gnu.org/licenses/copyleft.en.html. This means that derivative work can only be distributed under the same license terms. This is in distinction to permissive free software licenses, of which the BSD license and the MIT License are widely used examples./compatible
  • Credit Link: I then verify that the Theme has only one credit link, in the footer, that the URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org is either ThemeURI or AuthorURI, and that link text and attributes are not SEO-seeded
  • Licensing: next, I check everything bundled with the Theme, verify that copyright/license attribution has been included, and that all licenses are GPL-compatible – fonts, images, jquery scripts, iconsets, everything. If it’s bundled with the Theme, it either needs to be copyrighted as part of the Theme, or include copyright attribution and be distributed under a GPL-compatible license

Code Quality

  • header.php: verify that HTMLHTML HTML is an acronym for Hyper Text Markup Language. It is a markup language that is used in the development of web pages and websites. <title> tag includes only the call to wp_title(). Any additional content, if required, must be added via wp_title filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output..
  • header.php: verify that no scripts or stylesheets are hard-coded in the document head (except for the main stylesheet, and IE-conditional stylesheets)
  • header.php (usually): verify that calls to wp_nav_menu() include the ‘theme_location’ parameter, and do NOT include the ‘menu’ parameter
  • functions.php: verify that all function calls are placed inside of callbacks, hooked into explicit actions. No functions should execute directly from functions.php.
  • functions.php: verify that the Theme doesn’t call PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party-territory remove_action() calls, such as removing the WordPress version generator from wp_head
  • functions.php: verify that Theme does not add function_exists() conditional wrappers for coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. functions introduced more than two prior major WordPress versions (currently: for any core function introduced prior to WordPress 3.5)
  • Template files and custom page templates: verify that Theme uses new WP_Query for secondary loops, and pre_get_posts to modify the main query, rather than query_posts()
  • Theme Options: verify that Theme options are being stored as a single array, are being sanitized on input, and escaped on output
  • Theme Options: verify that Theme options do not include “Plugin territory” options such as analytics/tracking code

Addressing these issues would cover about 99% of tickets currently being reopened after approval.

#discussion-topic, #guidelines

Discussion: Theme Internationalization

How should Themes handle Internationalization?

Currently, Internationalization is recommended, and if internationalization is incorporated, Themes are required to use theme-slug as a unique textdomain.

What else should be considered? For example:

  1. If Themes include translation, should all strings be required to be translatable?
  2. If Themes do not include translation, should any strings be translatable?
  3. What else should be considered?

In other words: what constitutes best-practice, and what should be avoided, when implementing Theme internationalization?

#discussion-topic, #guidelines, #internationalization