WordPress.org

Plugin Directory

Creative Commons Configurator

Helps you publish your content under the terms of Creative Commons and other licenses.

Creative-Commons-Configurator is the only tool a user will ever need in order to license the contents of WordPress powered web site under the terms of a Creative Commons or other license. Configuration of the plugin is possible through its configuration panel. Advanced users can further customize the plugin and extend its functionality through filters. It is actively maintained since 2006 (historical Creative-Commons-Configurator home).

The following licenses are built-in:

  • All Creative Commons 4.0 licenses.
  • The CC0 rights waiver by Creative Commons.
  • Although not a license and not recommended, the All Rights Reserved clause.

Quick Start

Making all your content available under the terms of a single license is as easy as selecting a default global license in the plugin's configuration screen. In the same screen you can customize various details of the license text and also the looks of the displayed license block.

For those who license their content under various licenses, it is possible to customize the license on a per post basis from the License box in the post editing screen. If this is still not enough, the [license] shortcode is available, which can be used to generate quick license badges to easily add licensing information to parts of a single post.

The built-in licenses can be customized via filters and also the plugin can be extended in order to support custom licenses.

The features at a glance:

  • Configuration screen in the WordPress administration panel under the path Settings->License.
  • Custom license on a per post basis.
  • Shortcode that generates license badges. See the dedicated section below for usage information.
  • A license widget is available to add to your sidebars.
  • Licensing meta information can be added to:
    • The HTML head area (Not visible to human visitors).
    • The Atom, RSS 2.0 and RDF (RSS 1.0) feeds through the Creative Commons RSS module, which validates properly. This option is compatible only with WordPress 2 or newer due to technical reasons.
    • A block with licensing information under the published content.
  • Some template tags are provided for use in your theme templates.
  • The text generated for each of the built-in licenses can be easily customized.
  • The plugin is ready for localization.
  • The plugin can be extended to support custom licenses.

Translations

There is an ongoing effort to translate Creative-Commons-Configurator to as many languages as possible. The easiest way to contribute translations is to register to the translations project at the Transifex service.

Once registered, join the team of the language translation you wish to contribute to. If a team does not exist for your language, be the first to create a translation team by requesting the language and start translating.

Free License and Donations

Creative-Commons-Configurator is released under the terms of the Apache License version 2 and, therefore, is Free software.

However, a significant amount of time and energy has been put into developing this plugin, so, its production has not been free from cost. If you find this plugin useful and, if it has made your life easier, you can show your appreciation by making a small donation.

Thank you in advance for donating!

Code Contributions

If you are interested in contributing code to this project, please make sure you read the special section for this purpose, which contains all the details.

Support and Feedback

Please post your questions and provide general feedback and requests at the Creative-Commons-Configurator Community Support Forum.

To avoid duplicate effort, please do some research on the forum before asking a question, just in case the same or similar question has already been answered.

Also, make sure you read the FAQ.

License Shortcode

The License shortcode allows you quickly generate license badges. These can be used to indicate that parts of your post have a different license. The shortcode can be used like this:

[license]

The following parameters are supported:

  • type: (string) (required): The type of the license. This has to be one of the license types supported by the plugin. If the parameter is missing, it will print the supported types. For instance: cc__by, cc__by-nd, cc__by-sa, cc__by-nc, cc__by-nc-nd, cc__by-nc-sa, cc0. There is no default.
  • compact: (string) (0|1): Whether to use the compact license images or not. The default is "1".
  • link: (string) (0|1): Whether to create an image link to the license page or output just the <img> element. The default is "1".

Examples:

[license type="cc__by-sa"]
[license type="cc__by-sa" compact="0"]
[license type="cc__by-sa" compact="0" link="0"]

Template Tags

This plugin provides some Template Tags, which can be used in your theme templates. These are the following:

NOTE: Template tags will be revised in upcoming versions.

TODO

Advanced Customization

Creative-Commons-Configurator allows filtering of some of the generated metadata and also of some core functionality through filters. This way advanced customization of the plugin is possible.

TODO: update the filter list.

The available filters are:

  1. bccl_cc_license_text - applied to the text that is generated for the Creative Commons License. The hooked function should accept and return 1 argument: a string.
  2. bccl_cc0_license_text - applied to the text that is generated for the CC0 rights waiver. The hooked function should accept and return 1 argument: a string.
  3. bccl_arr_license_text - applied to the text that is generated for All Rights Reserved clause. The hooked function should accept and return 1 argument: a string.
  4. bccl_widget_html - applied to the HTML code that is generated for the widget. The hooked function should accept and return 1 argument: a string.
  5. widget_title - applied to the title of the license widget. The hooked function should accept and return 1 argument: a string.
  6. bccl_license_metabox_permission - applied to the metabox permission. The hooked function should accept and return 1 argument: a string. By default, the edit_posts is used.
  7. bccl_licenses - applied to the array of the supported licenses. The hooked function should accept and return 1 argument: an array of licenses (see bccl-licenses.php for details).
  8. bccl_default_license - applied to the license slug that will be used for the current post. The hooked function should accept and return 1 argument: a string (see bccl-licenses.php for details).
  9. bccl_supported_post_types - applied to the array of the supported post types. The hooked function should accept and return 1 argument: an array of post types.

Example 1: you want to append a copyright notice under any CC license text.

This can easily be done by hooking a custom function to the bccl_full_license_block_cc filter:

function append_copyright_notice_to_cc_text( $license_text ) {
    $extra_text = '<br />Copyright &copy; ' . get_the_date('Y') . ' - Some Rights Reserved';
    return $license_text . $extra_text;
}
add_filter( 'bccl_full_license_block_cc', 'append_copyright_notice_to_cc_text', 10, 1 );

This code can be placed inside your theme's functions.php file.

Example 2: You would like to add support for another license, for example the WTFPL.

This can easily be done by hooking a custom generator function to the bccl_licenses filter:

// Example WTFPL generator.
function bccl_wtfpl_generator( $license_slug, $license_data, $post, $options, $minimal=false ) {
    // Here we use exactly the same templates as the CC licenses,
    // which should be suitable for any kind of permissive copyright based license.
    $templates = bccl_default_license_templates();
    // In case we need to customize the default templates, here is how to do it:
    //$templates = array_merge( bccl_default_license_templates(), array(
    //    // Supported template tags: #work#, #creator#, #license#, #year#
    //    'license_text_long' => __('#work#, written by #creator# in #year#, has been published under the terms of the #license#.', 'cc-configurator'),
    //    // Supported template tags: #license#, #year#
    //    'license_text_short' => __('This article is published under a #license#.', 'cc-configurator'),
    //    // Supported template tags: #page#
    //    'extra_perms' => __('More information about how to reuse or republish this work may be available in our #page# section.', 'cc-configurator')
    //));
    // Finally we use the base generator to build and return the HTML content.
    // The base generator should be suitable for any type of license.
    return bccl_base_generator( $license_slug, $license_data, $post, $options, $minimal, $templates );
}
// Add the WTFPL license to the array of available licenses.
function bccl_add_wtfpl_license( $licenses ) {
    $licenses['wtfpl'] = array(         // slug (unique for each license)
        'url' => 'http://www.wtfpl.net/about/',    // URL to license page
        'name' => 'WTFPL International License',   // Name of the license
        'name_short' => 'WTFPL',
        'button_url' => 'http://www.wtfpl.net/wp-content/uploads/2012/12/wtfpl-badge-1.png', // URL to license button
        'button_compact_url' => 'http://www.wtfpl.net/wp-content/uploads/2012/12/wtfpl-badge-2.png', // URL to a small license button
        'generator_func' => 'bccl_wtfpl_generator'
    );
    return $licenses;
}
add_filter( 'bccl_licenses', 'bccl_add_wtfpl_license' );

This code can be placed inside your theme's functions.php file or in a custom plugin.

Requires: 2.7 or higher
Compatible up to: 4.2.3
Last Updated: 2015-7-8
Active Installs: 2,000+

Ratings

5 out of 5 stars

Support

1 of 1 support threads in the last two months have been resolved.

Got something to say? Need help?

Compatibility

+
=
Not enough data

0 people say it works.
0 people say it's broken.

100,1,1
100,1,1
0,2,0
100,1,1
0,1,0
0,1,0
100,1,1
100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,2,2 100,1,1 100,1,1
0,1,0
100,1,1
50,2,1
100,1,1
0,1,0
100,1,1 100,1,1 67,3,2
100,2,2
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1
100,1,1 100,1,1