WordPress.org

Ready to get started?Download WordPress

Theme Review Team

Recent Updates Toggle Comment Threads | Keyboard Shortcuts

  • Jose Castaneda 11:04 pm on August 28, 2014 Permalink | Log in to leave a Comment  

    The Role of Key Reviewer 

    On Tuesday we had our IRC meeting and it went well. Feel free to read the IRC logs if you would like to and catch up. The key points to take away from it are the criteria to meet. The admins are looking for:

    • Experience
    • Community involvement
    • High quality reviews

    This role of key reviewer will be a sub-admin style in that this person will be able to push not only their themes live but others as well. They will not, however, be able to assign any tickets or reassign them. The admins are asking for more feedback from us all; let’s show them some love and give them more, yeah?

    What do you feel makes for a key theme reviewer? Shout out in the comments below and have your voice heard.

     
    • Sandy 2:11 am on August 29, 2014 Permalink | Log in to Reply

      That’s very good idea

    • Tammie 10:04 am on August 29, 2014 Permalink | Log in to Reply

      We didn’t go over assigning in IRC. One thing that does strike me (also that we didn’t discuss) is if they can’t assign this doesn’t help with the New Reviewer issue. Our idea at one point Key Reviewers would also lighten the load from admins for that both virtual and on a temporary (or not) contribution day basis. Maybe we could slate a discussion on this for a meeting. It feels to me like something worth discussing.

    • Sakin Shrestha 5:06 pm on August 29, 2014 Permalink | Log in to Reply

      We have been discussing about this from long time now. So, we now need to decide and move on, then we can rectify it, if there is any issue. Let’s assign few active members as key reviewer who will have authority to make themes live except their own theme.

  • Jose Castaneda 5:41 am on August 18, 2014 Permalink | Log in to leave a Comment  

    Weekly meetings 

    As brought up from the mail list there are some that are interested in having a weekly meeting, or perhaps two. Much like some of the other contributing groups that have office hours I feel we can do the same.

    Our first meeting was August 15 and dealt with when would be a good time for a weekly meeting. The decision was made for Tuesday 1700UTC and possible office hours on Thursday 1700UTC as well.

    The first of what hopes to be a great rebirth of the IRC meetings for those looking to help in reviewing themes and contributing will begin on August 19 2014 1700UTC.

    Hope to see you there with questions so we can all learn from one another from our trials and errors.

     
  • Chip Bennett 1:22 am on July 9, 2014 Permalink | Log in to leave a Comment
    Tags: , sane defaults, , Theme Mods API   

    Using Sane Defaults in Themes 

    With the release of WordPress 3.9, one of the changes to the Theme Review Guidelines is that Themes must use sane defaults. That means that Themes must not write default setting values to the database. For many Themes, this may seem like a major change; but it doesn’t have to be. This post will step through a few ways to implement sane defaults.

    Portability/DRY

    To make this method easier, put all of your defaults inside a function:

    function themeslug_get_option_defaults() {
    	$defaults = array(
    		'option_1' => 'value_1',
    		'option_2' => 'value_2',
    		'option_3' => 'value_3'
    	);
    	return apply_filters( 'themeslug_option_defaults', $defaults );
    }
    

    (Note: by making the return valuable filterable, the Theme defaults can be easily overridden by a Child Theme or Plugin.)

    We’ll make use of this function later.

    Options API

    Most Themes use the Options API, and will use get_option() to put Theme settings into a global:

    $themeslug_options = get_option( 'theme_themeslug_options' );
    

    Knowing that this get_option() caall will return FALSE if the option has not yet been saved to the database, Theme developers have taken to saving default values to the database as part of Theme initialization, like so:

    if ( false == get_option( 'theme_themeslug_options' ) ) {
    	update_option( 'theme_themeslug_options', themeslug_get_option_defaults() );
    }
    $themeslug_options = get_option( 'theme_themeslug_options' );
    

    But this is entirely unnecessary. And everything needed to implement a better solution already exists.

    As a first step, consider that get_option() includes a second parameter, which specifies the default value to return, if nothing is returned from the database:

    get_option( $name, $default );
    

    So, the simplest solution is merely to tell get_option() to return the defaults, using the function we previously defined:

    $themeslug_options = get_option( 'theme_themeslug_options', themeslug_get_option_defaults() );
    

    This works, but isn’t perfect. It will return the Theme-defined defaults if the user hasn’t saved settings to the databse. But if later versions of the Theme add, remove, or change options, this might break, since the return value is either/or: either the database-saved setting, or else the defaults. So, if the user saves settings, and then a new setting is added in a later Theme version, the new setting value won’t be included in $themeslug_options unless/until the user saves settings again.

    The solution is to merge the arrays, rather than to return one or the other. WordPress has a core function specifically for this purpose: wp_parse_args(), which will use the settings array, and “fill in the blanks” with the defaults array:

    wp_parse_args( $settings, $defaults );

    Caveat: bearing in mind that wp_parse_args() expects both parameters to be arrays, and knowing that get_option() returns FALSE by default, be sure to specify get_option() returns an empty array by default: get_option( ‘theme_themeslug_options’, array() ); otherwise, wp_parse_args() will (might – see note below) choke if the user hasn’t saved settings to the database.

    The construct will look something like this:

    $themeslug_options = wp_parse_args( 
        get_option( 'theme_themeslug_options', array() ), 
        themeslug_get_option_defaults() 
    );
    

    This is perhaps the simplest, most elegant way to implement sane defaults.

    (Note: according to Otto, passing an empty arrayy() as the second parameter to get_option() isn’t necessary. In his words: “The wp_parse_args() function checks for the first parameter to be an object or an array. If it’s neither, then it calls wp_parse_str on it, because it can take a GET URL-like array of parameters too. The wp_parse_str() function calls PHP’s parse_str on it, and does a deep strip_slashes if magic quotes is on, then filters the result. So, because false maps to the empty string, parse_str will return an empty array for it, so passing false to wp_parse_args should be A-OK and probably has been like that for a very long time. Doesn’t hurt to add the empty array(), but doesn’t really change anything.” YMMV.)

    Theme Modification API

    Using the Theme Modification API (get_theme_mod()/get_theme_mods()) is fairly similar.

    An individual setting can be called via:

    get_theme_mod( $name, $default );
    

    But perhaps more useful, all settings can be called via:

    $themeslug_options = get_theme_mods();
    

    Since get_theme_mods() returns an array, you can use the same technique as with Options API settings:

    $themeslug_options = wp_parse_args( 
        get_theme_mods(), 
        themeslug_get_option_defaults() 
    );
    

    Portability/DRY (Part 2)

    To be able to use this method throughout the Theme, wrap the wp_parse_args() call inside a function:

    function themeslug_get_options() {
        // Options API
        return wp_parse_args( 
            get_option( 'theme_themeslug_options', array() ), 
            themeslug_get_option_defaults() 
        );
        // Theme Mods API:
        /*
        return wp_parse_args( 
            get_theme_mods(), 
            themeslug_get_option_defaults() 
        );
        */
    }
    

    Then, wherever you need access to Theme options:

    $themeslug_options = themeslug_get_options();
    

    From there, you can globalize $themeslug_options, or cache/transient it, etc. When you need to add a new option, simply add the new option default to the defaults array, and the Theme will handle it automatically.

     
    • Justin Tadlock 2:05 am on July 9, 2014 Permalink | Log in to Reply

      No need for the custom filter hook there on the defaults. Child theme authors can simply filter 'default_option_' . $option if they need to overwrite this.

      • Chip Bennett 12:32 pm on July 9, 2014 Permalink | Log in to Reply

        But that only works if the option is not yet set in the database, right? In which case, it’s a bit more fragile, and wouldn’t work in the case of a Theme (or Child Theme) adding a new option in a later version of the Theme.

  • Chip Bennett 12:07 am on July 8, 2014 Permalink | Log in to leave a Comment
    Tags: copyright,   

    Proper Copyright/License Attribution for Themes 

    There seems to be a great deal of confusion/misunderstanding regarding what constitutes proper copyright/license attribution for Themes, and several Themes are being approved without proper copyright/license attribution.

    There are four primary types of attribution: the Theme itself, derivative-work, incorporated code, and bundled resources. For works licensed under (or compatibly with) GPL, this attribution is important, because it ensures that end users know their rights regarding modification and distribution of the copyrighted work. The “copyleft” nature of GPL ensures that those same rights are preserved in downstream distributions of a copyrighted work, or works derived from that work – which is why it is imperative that correct copyright/license attribution be included in GPL-compatible works.

    Theme Copyright Attribution

    Fred WordPress Theme, Copyright 2012 Joe Smith
    Fred is distributed under the terms of the GNU GPL
    

    The Theme itself is a copyrighted work, and requires copyright attribution. According to GNU (the maintainer of the GPL):

    Whichever license you plan to use, the process involves adding two elements to each source file of your program: a copyright notice (such as “Copyright 1999 Terry Jones”), and a statement of copying permission, saying that the program is distributed under the terms of the GNU General Public License (or the Lesser GPL).

    The copyright notice:

    The copyright notice should include the year in which you finished preparing the release (so if you finished it in 1998 but didn’t post it until 1999, use 1998). You should add the proper year for each release; for example, “Copyright 1998, 1999 Terry Jones” if some versions were finished in 1998 and some were finished in 1999. If several people helped write the code, use all their names.

    The statement of copying permission:

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program. If not, see < http://www.gnu.org/licenses/ >.

    Derivative Themes and Incorporated Code Copyright Attribution

    Themes that are derived from other Themes (such as Twenty Twelve or Underscores) must declare that they are derived from another work, and include the original copyright notice from that work. For derivative works, the declaration would follow the Theme’s own copyright notice, and would take a form similar to the following:

    Ginger WordPress Theme is derived from Fred WordPress Theme, Copyright 2012 Joe Smith
    Fred WordPress Theme is distributed under the terms of the GNU GPL
    

    Incorporated Code Copyright Attribution

    Themes that incorporate code from other Themes (or Plugins) must declare that they incorporate code from another Theme/Plugin. The difference between a derivative work and incorporated code is, generally, a matter of extent. If you use a Theme as a “starter” or a base (such as Underscores), then you have created a derivative work. If you use one or more functions from another Theme, then you have incorporated code from that Theme.

    For incorporated code, the declaration should be added to the header comments for the files and/or the doc blocks for the incorporated functions, including copyright, license, and a source link, using appropriate syntax (such as phpDoc for incorporated PHP code). The Theme readme (or license) file should include a declaration of incorporated code:

    Ginger WordPress Theme incorporates code from Fred WordPress Theme, Copyright 2012 Joe Smith
    Fred WordPress Theme is distributed under the terms of the GNU GPL
    

    Bundled Resource Copyright Attribution

    Themes that bundle third-party resources (such as script libraries, PHP or CSS frameworks, images, fonts, etc.) must declare that they bundle those resources. For bundled resources, the original copyright notice (normally found in file headers, or a license file) should be retained if it exists. Additionally, the Theme readme (or license) file should include a declaration of bundled resources, including copyright, license, and a source link.

    Ginger WordPress Theme bundles the following third-party resources:
    
    Genericons icon font, Copyright 2013 Automattic
    Genericons are licensed under the terms of the GNU GPL, Version 2 (or later)
    Source: http://www.genericons.com
    
    Cycle2 jQuery library, Copyright 2012 M. Alsup
    Cycle2 is dual-licensed under the terms of the GNU GPL, Version 2, and the MIT license
    Source: http://jquery.malsup.com/cycle2/
    

    Requiring this information to be listed in the readme when it is available in file headers is a bit redundant; but it is a matter of ensuring that the Theme developer has considered/verified that the licenses for all bundled resources are GPL-compatible, and that end users (and reviewers) have a known location to find this information. Note that, because binary files (such as images) do not have human-readable file headers, the inclusion of copyright, license, and source link in the readme is critical, since otherwise the end user will have no way to know how to find this information.

    Putting it All Together

    Here is an example of a complete copyright/license attribution section in a Theme readme (or license) file:

    Ginger WordPress Theme, Copyright 2012 Joe Smith
    Ginger is distributed under the terms of the GNU GPL
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see .
    
    Ginger WordPress Theme is derived from Underscores WordPress Theme, Copyright 2013 Automattic, Inc.
    Underscores WordPress Theme is distributed under the terms of the GNU GPL
    
    Ginger WordPress Theme incorporates code from Fred WordPress Theme, Copyright 2012 Joe Smith
    Fred WordPress Theme is distributed under the terms of the GNU GPL
    
    Ginger WordPress Theme bundles the following third-party resources:
    
    Genericons icon font, Copyright 2013 Automattic
    Genericons are licensed under the terms of the GNU GPL, Version 2 (or later)
    Source: http://www.genericons.com
    
    Cycle2 jQuery library, Copyright 2012 M. Alsup
    Cycle2 is dual-licensed under the terms of the GNU GPL, Version 2, and the MIT license
    Source: http://jquery.malsup.com/cycle2/
    

    Hopefully this post helps clarify the requirements for proper copyright/license attribution, and will help ensure that review of license requirements is more consistent. As a reminder: under the current guidelines, these copyright statements must be included in the Theme readme (or license) file. The examples given above are intended to describe required content, and not necessarily a required format for that content.

     
    • Joan Boluda 6:38 am on July 8, 2014 Permalink | Log in to Reply

      Great resource. Very useful to the TRT. Thanks for clarifying, Chip.

    • Team Vivacity 10:18 am on July 8, 2014 Permalink | Log in to Reply

      Thanks Chip, The post is really helpful for the beginers and as well as experienced developers to put all necessary things in theme.

      Great work!

    • alex27 10:59 am on July 8, 2014 Permalink | Log in to Reply

      This is great! We should make those nuggets part of the guidelines, so that they are easy to find also for theme authors!

      • Chip Bennett 1:28 pm on July 8, 2014 Permalink | Log in to Reply

        We intentionally keep this level of detail out of the Guidelines. If we tried to put all this in the Guidelines (Front page settings, Copyright attribution – and more coming in the days/weeks ahead), the Guidelines would quickly become unreadable.

        Long-term, my goal is to link all of these long-form tutorials in an updated Review Guide (something else I’m working on, but it takes time), so that the information is easily accessible, and easy to follow, while conducting a review.

    • rajlaksh 5:50 am on July 12, 2014 Permalink | Log in to Reply

      Sir, Your Site is confusing. I was unable to find what i was looking. But that exists in your site.

      I was waited for it past 1 month. Thanks for deep tutorial.

  • Chip Bennett 4:57 pm on June 28, 2014 Permalink | Log in to leave a Comment
    Tags: template hierarchy   

    Correct Handling of Static Front Page and Custom Blog Posts Index Template 

    Recently, there have been several Themes submitted – and approved – that include a template-blog.php (or page-blog.php) custom page template, or that include a static front page template (front-page.php) that doesn’t properly account for the user configuration to display the blog posts index on the front page. In order to be approved, Theems must handle these correctly.

    Themes must properly support user configuration of the front page display, as configured via Settings -> Reading, Front page displays, Front page, and Page for posts.

    The “Front page displays” option correlates to get_option( ‘show_on_front’ ), and returns a value of ‘page’ (static front page) or ‘posts’ (blog posts index). Themes must account for both values, whether or not the Theme uses front-page.php. For more information, see here.

    Theme support extends beyond the “Front page displays” setting, however. Themes must also properly implement support for the “Front page” and “Page for posts” settings, as defined by the Template Hierarchy. To understand the implementation, consider the user configuration. Users set up a static front page like so:

    1. Create two static pages, which we’ll call “Front Page” and “Blog”
    2. In Settings -> Reading, set “Front page displays” to “a static page”
    3. In Settings -> Reading, set “Front page” to “Front Page”
    4. In Settings -> Reading, set “Posts page” to “Blog”

    In this scenario, using the Template Hierarchy, WordPress will determine what to display in the context of Front Page and Blog Posts Index.

    Front Page:

    • front-page.php
    • Page Template Hierarchy (custom page template, page-slug.php, page-id.php, page.php, index.php)

    Blog Post Index:

    • Home Template Hierarchy (home.php, index.php)

    That means that, according to the Template Hierarchy, the correct file to use to define a custom blog posts index is the home.php template file, and not a custom page template. In fact, when users have properly configured a static front page and assigned pages to display the site front page and the blog posts index, a custom page template is pointless. Even if the user applies the template-blog.php custom page template to the page assigned to display the blog posts index, WordPress will ignore it, because the blog posts index uses the Home template hierarchy, and not the Page template hierarchy. WordPress will look for the home.php template file, and will fall back to the index.php template file.

    So, the only possible way for the user to use a template-blog.php custom paage template would be for the Theme to instruct the user to configure the site front page and blog posts index in a way other than the way that core defines. Forcing the user into a different configuration than the one defined by core is poor UX. Users should not have to configure core WordPress features differently whenever they install a new Theme.

    So, if a Theme incorporates a custom template for the blog posts index, it must be implemented as the home.php template file, and not as a template-blog.php custom page template. If you are reviewing a Theme, please ensure that this is part of your review. If you’re a Theme developer, please ensure that you’re instructing your users to implement static front pages (and blog posts index pages) consistently with the core implementation, and that your Theme properly implements the Template Hierarchy.

    (Side note: I strongly recommend the habit of prefixing custom page templates with “template” or “tpl” or something similar, rather than “page”. Naming a custom page template ‘page-foobar.php’ will cause WordPress to use that custom page template any time the user creates a static page with the slug “foobar”. Using something else, such as ‘template-foobar.php’ or ‘tpl-foobar.php’ will prevent that from happening, and will ensure that the custom page template is only used if the user explicitly assigns the custom page template to a given static page.)

     
    • Emil Uzelac 6:44 pm on June 28, 2014 Permalink | Log in to Reply

      Great post Chip, well covered!

    • Maria Antonietta Perna 10:16 am on June 29, 2014 Permalink | Log in to Reply

      This is a great point, thank you for having brought it up in such a clear way.

    • kevinhaig 9:52 pm on June 29, 2014 Permalink | Log in to Reply

      So I guess I’m one of those using custom templates. My index.php still allows users to implement a blog page using core configuration. But my themes have a couple of custom blog templates that provide users with different blog options. For example, a blog with a slider at the top or a full width blog versus a blog with a sidebar.

      All the user has to do is create the page using the template and put the page in the menu. If the user has configured a static home (front) page and they want to use a custom blog page, they are instructed to leave the “Posts page:” to” — Select — “.

      I am struggling on why this is such a bad practice. If a user switches a theme, then they will have to set up a blog page witch is just a few clicks. Much simpler then having to reset all the sidebar widgets.

      I could program a custom home.php, setting up all the user options that are available in the two custom blog templates, but what would I do with all the existing users that are using the custom templates?

      If blog pages are to be restricted to home.php or index.php, then why are all the pages created on a site listed in a drop down list for “Posts page:” ? I realize they are ignored anyway, but why are they there?

      • Chip Bennett 10:36 pm on June 29, 2014 Permalink | Log in to Reply

        I am struggling on why this is such a bad practice. If a user switches a theme, then they will have to set up a blog page witch is just a few clicks. Much simpler then having to reset all the sidebar widgets.

        Start from the assumption that users already have properly configured their site to use a static front page. When they activate your Theme, they have to change their configuration. They shouldn’t have to do that. Likewise, if they use your Theme first, and then switch to another Theme, they again have to change their configuration. They shouldn’t have to do that. Themes – especially WPORG-hosted Themes – should support core features and configurations out-of-the-box. Anything less adversely impacts end users.

        Sidebars always have to be reconfigured when switching Themes. But that’s a different discussion for a different venue.

        I could program a custom home.php, setting up all the user options that are available in the two custom blog templates, but what would I do with all the existing users that are using the custom templates?

        Work with your Reviewer. Add in a proper home.php template file, with associated Theme options, and instructions to your users for how to make the switch. Then, in the next Theme update, remove the custom page templates. Let your reviewer know up front that you’re working on a transition path for your users, to bring the Theme into compliance. If you have any problems, CC me on the ticket and I’ll help.

        If blog pages are to be restricted to home.php or index.php, then why are all the pages created on a site listed in a drop down list for “Posts page:” ? I realize they are ignored anyway, but why are they there?

        That relates to how the Template Hierarchy works. The “Posts page” dropdown simply applies the ID of the selected page to get_option( 'page_for_posts' ). If that value is set, and a query request is made for that Page ID, WordPress recognizes it as the Posts page (view source), sets the query context to the Blog Posts Index (is_home() = true), which then causes the template loader to call the Blog Posts Index template hierarchy.

    • kevinhaig 10:49 pm on June 29, 2014 Permalink | Log in to Reply

      Thanks Chip

    • Greg Priday 9:57 am on July 2, 2014 Permalink | Log in to Reply

      I’ve used template-blog.php in some of my older themes that are live on the directory already. Would I need to remove these page templates from my existing themes or just encourage users to use the proper reading settings for the blog page?

      • Chip Bennett 2:59 pm on July 2, 2014 Permalink | Log in to Reply

        Yes, you’ll need to remove them. But as I mentioned previously: work with your reviewer, and use a transition plan. In the next revision, add in the correct templates, and provide instructions to your users. Then in the following revision, remove the incorrect, custom page templates.

        • Greg Priday 7:22 am on July 3, 2014 Permalink | Log in to Reply

          Great, I’ll get to work removing them. It does seem a lot less hackey doing it this way, so I’m all for the change.

          Would adding the following code to the top of my current template-blog.php files be a valid transition plan?

          `
          if( !get_option(‘page_for_posts’) && get_option(‘show_on_front’) == ‘page’ && get_post_status() == ‘publish’) {
          // We’re transitioning away from using the blog page template
          // Automatically update this so it uses the proper system.
          update_option( ‘page_for_posts’, get_the_ID() );
          update_post_meta( $post->ID, ‘_wp_page_template’, ‘default’ );
          }
          `

          Basically what I’m doing here is automatically setting up everything for the user and if all goes well, I’ll be able to remove template-blog.php in the following update, without much fuss.

    • vinnyj 10:34 am on July 5, 2014 Permalink | Log in to Reply

      I am a theme developer have been for about two years now. I am still learning to use a development tool for themes designed for word press. How would I get involved in the theme team to see if my themes are qualified for being used with word press. I want to know is there were I can discuss most of my concerns about making themes for word press. I have come to realize that its not that easy to make themes designed for buddy press.

    • weblizar 11:31 am on July 5, 2014 Permalink | Log in to Reply

      Very Helpful Post,Thanks Chip..

  • Chip Bennett 6:45 pm on June 20, 2014 Permalink | Log in to leave a Comment  

    Review Workflow and Closing Tickets 

    There seems to be some misunderstanding about the review workflow. A few of the newer reviewers are leaving initial review comments, and immediately closing the ticket. While that was our old workflow, it has not been our current workflow for about a year.
    Our current workflow is designed such that, as long as the ticket remains open, any subsequent Theme updates that get submitted are automatically appended to the open ticket – which allows for the review process to take place in a single ticket. This process is much easier both for the reviewers and for developers.
    Tickets should only be closed under two circumstances:
    1. The developer fails to respond within a reasonable time
    2. The submission is not legitimate (ripped theme, spam theme, etc.)
    We currently define “reasonable time” as a week. But in order to make things even easier and consistent, I am asking that reviewers not close tickets due to lack of developer response. This is something that I check for, usually daily, in order to close tickets with no response, or to request a status update.
    So:
    1. Do not close tickets due to lack of developer response. Admins will take care of such ticket closures.
    2. Do not post “bump” comments, as doing so impacts Admins’ ability to follow up on idle tickets.
    The idea is that reviewers can just focus on doing reviews, and helping developers proceed toward approval; Admins can focus on dealing with tickets without developer response and otherwise idle tickets.
     
    • Rizqy Hidayat 1:54 am on June 21, 2014 Permalink | Log in to Reply

      got it, except for “bump” comments. what kind of these?

      • Chip Bennett 12:14 pm on June 21, 2014 Permalink | Log in to Reply

        On forums, a “bump” post is one that is used just to bring a topic back to the top of the list – i.e. “bumping” the topic. In the context of Theme-Trac, a “bump” comment is one that is just an update request (e.g. “Any update on this review?” or “Any response from the developer?” – that kind of thing). Such comments actually work exactly opposite as they would in a forum, in that they “bump” the ticket to the *bottom* of the lists we Admins use (tracking assigned tickets, pushing approved Themes “Live”, etc. – which is why it is counter-productive to post “When will my Theme be live?” comments).

        For example: when tracking assigned tickets, I follow up on any ticket that is assigned, but not modified in more than 7 days. So, by posting a “bump” comment, the ticket is modified, and it drops to the bottom of the list. The same is true with pushing approved Themes “Live”: I start with the oldest “Approved” ticket, in terms of last-modified date/time. So, by posting a “bump” comment, the ticket is modified, and it drops to the bottom of the list.

    • perryb 7:27 am on July 2, 2014 Permalink | Log in to Reply

      Ah, thanks for the update. Also having your theme review shut down before you can reasonably respond is going to come across a tad rude ;)

  • Jen Mylo 6:19 pm on June 20, 2014 Permalink | Log in to leave a Comment
    Tags: ,   

    Team Meetup at WCSF 

    Hi again! We’re working on making sure we have enough room blocks to make sure all the contributors who are coming in October can get a decent rate (or have a room provided by us if applicable). Some of you replied to my post from last week and filled in the survey so I’d know you were planning to come, but some haven’t. Additionally, some people did the survey and marked themselves as team members of teams they’re not actually involved with, so I need your help! :)

    I just want to make sure we count everyone so we can try to put you at the same hotel to make the meetup part easier.

    If you didn’t read the post before, the plan for the event is:
    Sat/Sun — WCSF conference
    Monday — community summit
    Tues/Wed — team meetups (team being together to talk issues, make plans, work together, etc)

    The people who identified themselves as active members of the theme review team in the survey are:
    @jcastaneda, @cais, @otto42, Tammie Lister (@karmatosed), Aleksandra Łączek (@alex27), Sakin Shrestha (@Catchtheme), Ayman Al Zarrad (@aymanalzarrad), and Joe Dolson (@joedolson).

    Notably, @chipbennett and @emiluzelac are missing. :) Could you guys fill out the survey so I can have you on the list as we start deciding which hotels to put each team in (this applies to anyone on the team planning to come who hasn’t submitted this survey yet). We’ll be spread out among 4 or 5 hotels, so I want to be sure we can keep the teams together. If you’re not planning to come, just let me know in the comments.

    @emiluzelac and @chipbennett, could one of you let me know if the list above is accurate or if there are names on it that are not active members of the team?

    And just a reminder that we have a travel assistance program this year to help contributors who don’t work for a wp-based company and can’t cover travel costs on their own. Apply for travel assistance by June 30. IMPORTANT: if you apply for travel assistance, you still need to fill out the contributors at wcsf survey so you’ll be included in the team count as we do our planning.

    Thanks!

     
  • Jen Mylo 11:33 pm on June 12, 2014 Permalink | Log in to leave a Comment
    Tags: , wcsf,   

    WCSF 2014: Who’s Planning to Attend? 

    Heads up, theme review team! We’re getting ready to publish details about the plans for WordCamp this October (which includes a mini team meetup), so if you’re thinking of attending, please read the post at http://make.wordpress.org/updates/2014/06/12/wordcamp-san-francisco-travel-contributor-days/ and take the short survey linked at the end of it so I’ll know how many team members to plan for (don’t worry, this isn’t a commitment or anything, I just need to get some rough numbers for budgeting purposes). Thanks!

     
  • Emil Uzelac 4:39 pm on June 5, 2014 Permalink | Log in to leave a Comment
    Tags:   

    GPL-Compatible Images 

    We are moving a very healthy discussion from our list. If you need to catch up, archives are available here.


    RE: GPL-Compatibility

    Hey guys,

    I was thinking to write a post about it, but I chose the list instead.

    As I was going over some license *issues* with my very own work, it turns
    out that sites like http://unsplash.com/ are completely unreliable and
    probably not the best choice to use images from.

    The site itself does not have an explicit license, other than a line where
    it says “All photos CC0″, which is definitely not enough.

    Should we “police” this? You bet!

    All right, so I took few extra steps and came to conclusion that the
    original license and the license http://unsplash.com/ advertise are
    different.

    In most cases the license are either not CC0, or they require a special
    permission by the owner and in some other cases released under CC and we
    all know that CC alone is not GPL-Compatible. Not to mention that sites
    lists images from people that don’t even exist.

    When that special permission is granted the source needs to have that in
    writing, otherwise “All photos CC0″ means nothing to us.

    Best example:

    http://500px.com/photo/69737425/hoi-an-vietnam-by-rafael-chiti?from=user

    Thanks,
    Emil


     
    • Towfiq I. 4:55 pm on June 5, 2014 Permalink | Log in to Reply

      unsplash has lots of images that have cc2 license..
      are there any websites that provide *beautiful* gpl compatible images? not the ones that you find on public domain image websites..

    • Manoz69 4:57 pm on June 5, 2014 Permalink | Log in to Reply

      In my last theme review, the developer included pattern images from http://thepatternlibrary.com/ . After few researches, I just found one line about the license: “This on going project compiles patterns shared by the most talented designers out there for you to use freely in your designs”. This is definitely not a license (in my opinion) but I didn’t know what to do (the theme is still in review btw).

      For my themes I usually take my images from http://pixabay.com/ wich is nice and lot of images are free and GPL compatible.

    • imon Hasan 5:10 pm on June 5, 2014 Permalink | Log in to Reply

      Looking at the site’s license terms:
      http://pixabay.com/en/service/terms/

      I don’t think the images are licensed compatibly with GPL. For example:

      • You may not use Images for pornographic, unlawful or other immoral purposes, or in a way that can give a bad name to depicted persons, or to imply endorsement of products and services by identifiable persons, brands, organisations, etc.
      • You are not allowed to mass download Images with an application, or reuse a big part of the Images for redistribution on a similar Website.

      Neither of these terms is GPL-compatible.

      • Manoz69 5:35 pm on June 5, 2014 Permalink | Log in to Reply

        Well for me and for creativecommons.org, images from pixabay (CC0) are GPL Compatible. Further reading: http://creativecommons.org/tag/gpl

        The paragraph is clear: “[...] Both public domain works and the simple license provided by CC0 are compatible with the GNU GPL.”

      • ThemeZee 6:57 pm on June 5, 2014 Permalink | Log in to Reply

        All images uploaded on Pixabay have stated their license explicit on the image page, for example: http://pixabay.com/en/drop-of-water-drip-blade-of-grass-351778/

        Since the image declares the CC0 license on its page, and CC0 is GPL compatible, I think we should be able to use them. I guess Pixabay just cites these general terms to protect itself.

        Pixabay is one of the very few resources for good GPL compatible images and was so far always okay in theme review. Forbidding images from sites like Pixabay or Unsplash would have the result that 90% of all themes need new screenshots ;)

        As theme author you can only carefully select your images and photographers, but there will never be a platform which can ensure 100% that nobody has upload a copyrighted image.

        • Manoz69 12:32 am on June 6, 2014 Permalink | Log in to Reply

          “[...] but there will never be a platform which can ensure 100% that nobody has upload a copyrighted image.”

          return true; :)

          Pixabay is probably one of the best website with free GPL-compatible images. This is a reviewer who made ​​me discover Pixabay and I use it today in all my projects even outside of WordPress. In fact Pixabay should be recommended in the Theme Guidelines.

      • ThemeZee 7:01 pm on June 5, 2014 Permalink | Log in to Reply

    • Sovit 5:14 pm on June 5, 2014 Permalink | Log in to Reply

      Selecting an images for screenshot are head-pain. If we cannot use the screenshot from http://unsplash.com/ and http://pixabay.com/ than where we can :(? If I am not wrong Twenty Fourteen A Default WordPress Theme also used an images from http://unsplash.com/
      I think WordPress should start a free GPL photo blog like Genericons?

      • Jose Castaneda 9:05 pm on June 5, 2014 Permalink | Log in to Reply

        Some of us actually have a few:

        Christine: flickr.com/photos/crondeau/sets/72157636563358724/

        Carolina: flickr.com/photos/layout_nu/

        Personal: blog.josemcastaneda.com/downloads

        I know esmi shared: publicphoto.org quite some time ago and from what I can recall Matt’s ( ma.tt/gallery ) his are GPL compatible as well.

    • imon Hasan 5:44 pm on June 5, 2014 Permalink | Log in to Reply

      @sovit this is a good idea

      • Sami Keijonen 8:05 pm on June 5, 2014 Permalink | Log in to Reply

        That’s really good idea. We need a source we can trust. For now I can only trust my own photos to be GPL compatible and it has been several years I’ve been playing with a camera.

        • Manoz69 10:12 pm on June 5, 2014 Permalink | Log in to Reply

          And if the author decides to change the license one day? I think we can never really believe in a particular source. We’ll unfortunately continue to search unless you have friends photographers or you’re yourself.

          It’s a very good idea but I don’t think we “need” a source. We can find GPL images everywhere. I don’t really understand the problem. If you have doubts, just search on Google: “license name + GPL compatible” :)

          • Sovit 5:48 am on June 6, 2014 Permalink | Log in to Reply

            I don’t think that author will decide to change the license one day. We some are also the author of some themes here in wordpress.org. Can we change the license of that theme one day? “NO” we can’t because theme must be a GPL licensed. If we clearly write about the license before uploading a images. I don’t think that author one day decide to change the license if so we can remove those images permanently too.

            And also you said that we can never believe in particular source if so than how it comes to trust images that are search on Google under key word “GPL compatible images” are 100% GPL compatible and from original authors.

            • Manoz69 10:25 am on June 6, 2014 Permalink

              I should have been clearer. I didn’t want to talk about Google image search but the search for information about licenses. The 1st time I’ve heard about CC0 I typed “CC0 + GPL compatible” on Google for more informations about the compatibility.

            • Chip Bennett 3:06 pm on June 6, 2014 Permalink

              I can give an actual, real-world example of a license being changed: IconSweets, which is an icon set. Some (long) time ago, when looking for GPL-compatible icons, I found IconSweets, which had a “free for use in personal or commercial projects” statement. Under that license statement, I used the icons. Later, the terms were changed to an explicit license (CC of some form or another, if I recall correctly). Now, because I was using icons that were distributed under different terms, I would have been fine to continue using them. But if anyone were to go back to the source, the change in license would have been confusing. So, I switched to a different resource. (Actually, I switched to an Icon Font – Genericons – which was a better implementation all-around, and eliminated all license ambiguity/confusion.)

              So, yes: it is possible that licenses can change.

    • mindctrl 7:22 pm on June 5, 2014 Permalink | Log in to Reply

      Ideally themes wouldn’t be bundling images such as the ones you find on the aforementioned sites. Background and pattern images are one thing, but “content” images such as the ones you see on Unsplash really shouldn’t be bundled with a theme. Just as themes shouldn’t include functionality that belongs in plugins, they shouldn’t be bundling content that should generally fall under the purview of the theme consumers and content creators. Huge image assets that either end up being deleted or otherwise not used really don’t have any place in a theme. Twenty Eleven set a poor example, in my opinion, by bundling all the header images with the theme. This is distinctly different from using these types of images on a theme demo site.

      Would someone mind explaining exactly why the CC0 license isn’t GPL compatible? Thanks.

    • Andrey "Rarst" Savchenko 5:27 pm on June 6, 2014 Permalink | Log in to Reply

      Note that copyright holder (original author) can release the work under different licenses. There is nothing preventing author from submitting photo to unsplash under CC0 and having it hosted under different license elsewhere.

      Of course that means author needs to understand implications of CC0 release and preferably be verified by unsplash.

      Essentially it’s about how much do you trust unsplash to handle submissions properly. But there is nothing inherently incompatible or not “sufficient” about them hosting images under CC0.

    • StefanRisticDev 10:40 pm on June 13, 2014 Permalink | Log in to Reply

      I’m a bit confused. Can someone please share a link that would explain what is GPL-Compatible image?

      When I go to images.google.com, and choose “free to use, share or modify, even commercially” I’m getting some awesome pictures that I could use.

      Are those images GPL-Compatible?

    • Carolina Nymark 4:17 pm on June 14, 2014 Permalink | Log in to Reply

      What about model releases?

      ..And what kind of photos are you mainly looking for?

    • Zilli 9:23 am on June 30, 2014 Permalink | Log in to Reply

      @Emil. Sorry if I didn’t get your point, but what is the problem with unplash.com? All their photos are in public domain license. Why wouldn’t you accept a theme that has a public domain photo? I hope you can clarify my thoughts.

    • Emil Uzelac 6:48 pm on June 30, 2014 Permalink | Log in to Reply

      It was a license mismatch, just double check that’s all. Just confirm with author or the site :)

    • fasterthemes 3:12 am on July 1, 2014 Permalink | Log in to Reply

      @Emil I’ve more 10-12 professional photographer friends who are ready to share a few of their photos under GPL license. I’m going to launch a website soon where they will be able to share their images and they will also ask other friends of theirs to share awesome quality photos under GPL3 license.
      Now I need your little help. Please guide me how I can ensure that the OTHERs who will upload the images are owing those images. Because if someone uploads someone else’s photo then I don’t want to be in trouble :)
      The website link will be share to all theme developers here where they will see FOOD, WILD LIFE, Architect, Person, Wedding etc GPL3 or more compatible images :)
      I would really appreciate if you can throw some light to help me developing this website. :)

      • Emil Uzelac 4:25 am on July 1, 2014 Permalink | Log in to Reply

        This is slightly outside of the scoop, but no worries, I’ll help!

        Just like anything else out there, work with trusted people and ensure that every submission has some type of submission agreement. Also include the license under which the images are released as well.

        Agreement for your own protection and GPL inclusion before that hit the upload button.

        Nothing is perfect, but you can get close to it :)

        Hope that this helps!

  • Jose Castaneda 7:25 am on April 25, 2014 Permalink
    Tags:   

    Contributor Poll 

    Take a moment and give some feedback. Make giving back to the community easier for you and others. :)

     
c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
shift + esc
cancel