Categories

Author Archive

Themes are GPL, too

If WordPress were a country, our Bill of Rights would be the GPL because it protects our core freedoms. We’ve always done our best to keep WordPress.org clean and only promote things that are completely compatible and legal with WordPress’s license. There have been some questions in the community about whether the GPL applies to themes like we’ve always assumed. To help clarify this point, I reached out to the Software Freedom Law Center, the world’s preeminent experts on the GPL, which spent time with WordPress’s code, community, and provided us with an official legal opinion. One sentence summary: PHP in WordPress themes must be GPL, artwork and CSS may be but are not required.

Matt,

You asked the Software Freedom Law Center to clarify the status of themes as derivative works of WordPress, a content management software package written in PHP and licensed under version 2 of the GNU General Public License.

We examined release candidate 1 of WordPress 2.8, which you provided to us at http://wordpress.org/wordpress-2.8-RC1.tar.gz. The “classic” and “default” themes included in that release candidate comprise various PHP and CSS files along with an optional directory of images. The PHP files contain a mix of HTML markup and PHP calls to
WordPress functions. There is some programmatic logic in the PHP code, including loops and conditionals.

When WordPress is started, it executes various routines that prepare information for use by themes. In normal use, control is then transferred via PHP’s include() function to HTML and PHP templates found in theme package files. The PHP code in those template files relies on the earlier-prepared information to fill the templates for serving to the client.

On the basis of that version of WordPress, and considering those themes as if they had been added to WordPress by a third party, it is our opinion that the themes presented, and any that are substantially similar, contain elements that are derivative works of the WordPress software as well as elements that are potentially separate works. Specifically, the CSS files and material contained in the images directory of the “default” theme are works separate from the WordPress code. On the other hand, the PHP and HTML code that is intermingled with and operated on by PHP the code derives from the WordPress code.

In the WordPress themes, CSS files and images exist purely as data to be served by a web server. WordPress itself ignores these files[1]. The CSS and image files are simply read by the server as data and delivered verbatim to the user, avoiding the WordPress instance altogether. The CSS and images could easily be used with a range of HTML documents and read and displayed by a variety of software having no relation to WordPress. As such, these files are separate works from the WordPress code itself.

The PHP elements, taken together, are clearly derivative of WordPress code. The template is loaded via the include() function. Its contents are combined with the WordPress code in memory to be processed by PHP along with (and completely indistinguishable from) the rest of WordPress. The PHP code consists largely of calls to WordPress functions and sparse, minimal logic to control which WordPress functions are accessed and how many times they will be called. They are derivative of WordPress because every part of them is determined by the content of the WordPress functions they call. As works of authorship, they are designed only to be combined with WordPress into a larger work.

HTML elements are intermingled with PHP in the two themes presented. These snippets of HTML interspersed with PHP throughout the theme PHP files together form a work whose form is highly dependent on the PHP and thus derivative of it.

In conclusion, the WordPress themes supplied contain elements that are derivative of WordPress’s copyrighted code. These themes, being collections of distinct works (images, CSS files, PHP files), need not be GPL-licensed as a whole. Rather, the PHP files are subject to the requirements of the GPL while the images and CSS are not. Third-party developers of such themes may apply restrictive copyrights to these elements if they wish.

Finally, we note that it might be possible to design a valid WordPress theme that avoids the factors that subject it to WordPress’s copyright, but such a theme would have to forgo almost all the WordPress functionality that makes the software useful.

Sincerely,
James Vasile
Software Freedom Law Center

[1] There is one exception. WordPress does reads CSS and image files to create previews of templates for the template selection portion of the administrative interface. Even in that case, though, nothing in those files calls any WordPress functions, is treated as a command by PHP, or alters any other WordPress data structure. These files are read as data and used to create an image and display a miniaturized version of a webpage to the user.

Even though graphics and CSS aren’t required to be GPL legally, the lack thereof is pretty limiting. Can you imagine WordPress without any CSS or javascript? So as before, we will only promote and host things on WordPress.org that are 100% GPL or compatible. To celebrate a few folks creating 100% GPL themes and providing support and other services around them, we have a new page listing GPL commercially supported themes.

2.8 Release Jazzes Themes and Widgets

I’m very excited to announce to everyone that the latest and greatest version of WordPress, version 2.8 “Baker,” is immediately available for download. 2.8 represents a nice fit and finish release for WordPress with improvements to themes, widgets, taxonomies, and overall speed. We also fixed over 790 bugs. This release is named in honor of noted trumpeter and vocalist Chet Baker. Here’s a quick video overview of everything in the new release:

The first thing you’ll notice is that visually 2.8 feels a lot like 2.7, just with some minor tweaks here and there. However once you’ll dig in you’ll begin to appreciate the changes.

Major New Improvements

First and foremost, 2.8 is way faster to use. We’ve changed the way WordPress does style and scripting.

The core and plugin updaters in previous versions of WordPress have been such a success we decided to bring the same to themes. You can now browse the entire theme directory and install a theme with one click from the comfort of your WordPress dashboard.

If you make edits or tweaks to themes or plugins from your dashboard, you’ll appreciate the new CodePress editor which gives syntax highlighting to the previously-plain editor. Also there is now contextual documentation for the functions in the file you’re editing linked right below the editor.

If you were ever frustrated with widgets before, this release should be your savior. We’ve completely redesigned the widgets interface (which we didn’t have time to in 2.7) to allow you to do things like edit widgets on the fly, have multiple copies of the same widget, drag and drop widgets between sidebars, and save inactive widgets so you don’t lose all their settings. Developers now have access to a much cleaner and robust API for creating widgets as well.

Finally you should explore the new Screen Options on every page. It’s the tab in the top right. Now, for example, if you have a wide monitor you could set up your dashboard to have four columns of widgets instead of the two it has by default. On other pages you can change how many items show per page.

And Even More

You can read the full list of over 180 new features, changes, upgrades, and improvements on the Codex. The list is exhausting!

The Future

We’re already thinking hard about the next versions, 2.9 and 3.0. Keep an eye out for improved media handling, better dependency checking, versioning of templates and themes, and of course the fabled merging of WordPress and MU announced at WordCamp San Francisco two weeks ago.

Make Friends with BuddyPress

What if there was software with the elegance and extensibility of WordPress but all the features you’ve come to expect from social networks like Facebook? Now there is: check out BuddyPress.

BuddyPress is an official sister project of WordPress. The idea behind it was to see what would happen to the web if it was as easy for anyone to create a social network as it is to create a blog today. There’s been an explosion of social activity on the web, it’s probably the most important trend of the past few years, but there’s been a dearth of Open Source tools that enable the social web.

In WordPress we have a robust and extensible base that can scale to many millions of users, and BuddyPress is essentially a set of plugins on top of WordPress that add private messaging, profiles, friends, groups, activity streams, and everything else you’ve come to expect from your favorite social network, like a Facebook-in-a-box.

I don’t think BuddyPress will be something you use instead of your existing social networks, I mean all your friends are already on Myspace, but if you wanted to start something new maybe with more control, friendlier terms of service, or just something customized and tweaked to fit exactly into your existing site, then BuddyPress is a great framework to use. Maybe even someday you’ll be able to connect your BuddyPresses to each other and to the existing monolithic social networks.

This is just a 1.0 release and it’s not for everybody yet, for example it currently requires using MU which is a bit trickier to get set up than regular WordPress, but regardless I’d recommend diving into the community at BuddyPress.org, which is great example of the software in action.

Here’s Andy’s official announcement post.

Thank a Plugin Developer Day

WordPress by itself is very simple — what makes it compelling for most of its users is the wide array of plugins (and themes) available for WP. The average WordPress blog has about 5 plugins installed! Today we just passed 4,000 plugins available in our plugin directory. (Which is also embedded into everyone’s WordPress 2.7 or above.)

I declare January 28th our official “Thank a Plugin Developer” day. To celebrate take a look at the plugins you use and love, visit the author’s site, find their contact form, and drop them a note thanking them. (Or Paypal!) Look for the links in the plugin directory to “author homepage” and also to donate directly if they’ve specified a Paypal address.

Thank you to everyone who has ever written a plugin for WordPress, and here’s to the next four thousand. )

WordPress.tv

Today we’ve switched on WordPress.tv, your visual resource for all things WordPress.

On WordPress.tv, you’ll find tutorials for both WordPress self-installs and WordPress.com to help you get blogging fast and hassle-free. We’ve kicked things off with the basics — now you can shape what comes next. Just drop us a line and let us know what you’d like to see added.

WordPress.tv is also now the place to find all that awesome WordCamp footage that was floating around the web without a home. See the presentations you missed and get a peek at behind-the-scenes action. We call it WordCampTV.

You’ll also find slideshows of presentations made by Automattic employees and other WordPress gurus, plus interviews I’ve done with the media and fellow bloggers.

I hope you’ll consider WordPress.tv not just a support resource, but also a place to hang out and keep up with all the geeky goodness going on in the WordPress community. Tune in regularly for fresh content and updates to the WordPress.tv blog. Lots more is on the way.

WordPress 2.7 ?Coltrane?

The first thing you’ll notice about 2.7 is its new interface. From the top down, we’ve listened to your feedback and thought deeply about the design and the result is a WordPress that’s just plain faster. Nearly every task you do on your blog will take fewer clicks and be faster in 2.7 than it did in a previous version. (Download it now, or read on for more.)

Next you’ll begin to notice the new features subtly sprinkled through the new interface: the new dashboard that you can arrange with drag and drop to put the things most important to you on top, QuickPress, comment threading, paging, and the ability to reply to comments from your dashboard, the ability to install any plugin directly from WordPress.org with a single click, and sticky posts.

Digging in further you might notice that every screen is customizable. Let’s say you never care about author on your post listings — just click “Screen Options” and uncheck it and it’s instantly gone from the page. The same for any module on the dashboard or write screen. If your screen is narrow and the menu is taking up too much horizontal room, click the arrow to minimize it to be icon-only, and then go to the write page and drag and drop everything from the right column into the main one, so your posting area is full-screen. (For example I like hiding everything except categories, tags, and publish. I put categories and tags on the right, and publish under the post box.)

For a visual introduction to what 2.7 is, check out this video (available in HD, and full screen):

It’s all about you. It’s the next generation of WordPress, which is why we’ve bestowed it with the honor of being named for John Coltrane. And you can download it today.

Last, but certainly not least, this may be the last time you ever have to manually upgrade WordPress again. We heard how tired you were of doing upgrades for yourself and your friends, so now WordPress includes a built-in upgrade that will automatically notify you of new releases, and when you’re ready it will download them, install them, and upgrade your blog with a single click.

(As with any interface change it may take a little bit of time to acclimate yourself but soon you’ll find yourself whizzing through the screens. Even people who have hated it at first tell us after a few days they wonder how they got by before.)

The Story Behind 2.7

The real reason Coltrane is such a huge leap forward is because the community was so involved with every step of the process. Over 150 people contributed code directly to the release, our highest ever, with many tens of thousands more participating in the polls, surveys, tests, mailing lists, and other feedback mechanisms the WordPress dev team used in putting this release together.

For some of the back story in the development of 2.7, check out these blog posts (thanks to WeblogToolsCollection for the list):

This was interesting to us, a blogging software release we actually blogged about, but the process was hugely informative. Prior to its release today Crazyhorse and 2.7 had been tested by tens of thousands of people on their blogs, hundreds of thousands of you count .com. The volume of feedback was so high that we decided to push back the release date a month to take time to incorporate it all and do more revisions based on what you guys said.

For those of you wondering why we didn’t call this release 3.0, it’s because we abhor version number inflation. 3.0 will just be the next release after 2.9. The major features in new point releases approach also works well for products like OS X, with huge changes between a 10.3 and 10.4.

The Future

Those of you following along at home might have noticed this was our second major redesign of WordPress this year. Whoa nelly! While that wasn’t ideal, and I especially sympathize with those of you creating books or tutorials around WordPress, there’s good news. The changes to WordPress in 2.5 and 2.7 were necessary for us to break free of much of the legacy cruft and interface bloat that had built up over the years (gradually) and more importantly provide us with a UI framework and interface language we can use at the foundation to build tomorrow’s WordPress on, to express ideas we haven’t been able to before. So at the end of 2009 I expect, interface-wise, WordPress to look largely the same as it does now.

That said, we couldn’t be more excited about the future with regards to features. Now that we’ve cleared out more basic things, we are looking forward in the coming year to really tackling media handling including audio and video, better tools for plugin and theme developers, widgets, theme updates, more integrated and contextual help, and easier integration with projects like BuddyPress and bbPress.

Thank Yous

In no particular order, I wanted to take a moment to thank the following WordPress.org users for being a part of 2.7: demetris, vladimir_kolesnikov, azaozz, iammattthomas, filosofo, ryan, jacobsantos, AaronCampbell, corischlegel, noel, codestyling, janbrasna, DD32, Viper007Bond, mdawaffe, Matt, sambauers, jeremyclarke, alexrabe, nbachiyski, josephscott, FFEMTcJ, roganty, Ozh, yoavf, johnconners, thinlight, markjaquith, tott, mrmist, st_falcon, johnbillion, mattyrob, scohoust, yonosoytu, apeatling, ydekproductions, bobrik, janewells, simonwheatley, sivel, abackstrom, sekundek, hailin, strider72, byrnereese, tai, jick, kpdesign, mcs_trekkie, dtsn, g30rg3x, wfrantz, andr, Simek, johnhennmacc, fitztrev, stefano, regulatethis, jhodgdon, rboren, zedlander, tellyworth, misterbisson, Jean-LucfromBrussels, Speedboxer, kashani, Speedbozxer, aaron_guitar, Joe Taiabjee, mani_monaj, 112502, yoshi, thee17, filosoof, Malaiac, ShaneF, RanYanivHartstein, MtDewVirus, anderswc, Viper007Bind, betsyk, jamierumbelow, reinkim, jmini, MichaelH, dwc, rdworth, x11tech, bubel, caesarsgrunt, Otto42, BjornW, technosailor, capripot, rnt, raychampagne, ionfish, Sam_a, dougal, paddya, jdevalk, msw0418, Aaron Harp, rickoman, Mike Schinkel, matthewh84, andy, lloydbudd, _ck_, hansengel, donncha, mictasm, pishmishy, rmmccue, Txanny, pedrop, bendalton, Terragg, Latz, sandbox theme, takayukister, techcookies, wet, docwhat, mtekk, count_0, xorax, dsader, noael, zamoose, Po0ky, guillep2k, xknown, JohnLamansky, error, dbuser123, brianwhite, wasp, msi08, axelseaa, tschai, schiller, robertaccettura, redsweater, rm53, 082net, paul.

2.7 Release Candidate Two

There comes a time in every WordPress release when it’s ready for the world , to come out of its cocoon and feel the light of the world on its wings for the first time.

It’s not quite that time yet, but we’re as close as we’ve ever been, hence the immediate availability of 2.7 Release Candidate 2, or RC2 for short.

Of course if you were already testing 2.7, you can just use the built-in core updater (Tools > Upgrade) to download and install RC2 for you (and later upgrade you to the final release when it’s available) but if not you can use the download link above.

We feel this release is pretty much exactly what we’re going to ship as 2.7, barring any final bugs or polish tweaks that you report or we find.

WordPress 2.6

I’m happy to announce that version 2.6 of WordPress.org is now available, almost a month ahead schedule. Version 2.6 “Tyner,” named for jazz pianist McCoy Tyner, contains a number of new features that make WordPress a more powerful CMS: you can now track changes to every post and page and easily post from wherever you are on the web, plus there are dozens of incremental improvements to the features introduced in version 2.5.

We’ve prepared a brief video tour of 2.6, if you have 3 minutes and 29 seconds to spare, it’s worth a watch:

If you’d like to embed the tour video in your blog, copy and paste this code for the high quality version:

<embed src="http://v.wordpress.com/mARhRBcT/fmt_dvd" type="application/x-shockwave-flash" width="640" height="385" flashvars="blog_domain=http://wordpress.org/development/2008/07/wordpress-26/&width=640&height=385"> </embed>

And here’s a smaller version, 400 pixels wide:

<embed src="http://v.wordpress.com/mARhRBcT/fmt_std" type="application/x-shockwave-flash" width="400" height="250" flashvars="blog_domain=http://wordpress.org/development/2008/07/wordpress-26/&width=400&height=250"> </embed>

Here’s a more textual overview of what’s hawt in 2.6:

Post Revisions: Wiki-like tracking of edits

With the power of modern computers, it’s silly that we still use save and editing metaphors from the time when the most common method of storage was floppy disks. WordPress has always respected the importance of your writing with auto-save, and now we’re taking that to another level by allowing you to view who made what changes when to any post or page through a super-easy interface, much like Wikipedia or a version control system.

Differences between two versions of posts.

This is handy on any blog in case you make a mistake and want to go back to an older version of a post, and it’s super handy for multi-author blogs where you can see every change tracked by person.

Press This!: Post from wherever you are on the web

A few months ago on my blog we started a conversation about the posting bookmarklet in WordPress and which systems we should look to for inspiration, like Flock, FriendFeed, Facebook, Tumblr, and Delicious. From these suggestions and the Quick Post plugin by Josh Kenzer, we developed a Press This bookmark you can add to your toolbar that provides a fast and smart popup to do posts to your WordPress blog:

Screenshot of Press This interface.

For example, if you click “Press This” from a Youtube page it’ll magically extract the video embed code, and if you do it from a Flickr page it’ll make it easy for you to put the image in your post. On my blog I’ve been experimenting with using different categories and the in_category() function — such as video, quote, aside, et cetera — to create a more tumblelog-like format.

Shift Gears: Turbo-speed your blogging

Gears is an open source browser extension project started by Google that developers like us can use to give you features we wouldn’t normally be able to. There are a lot of things we can do with Gears in the future, but in this release we’ve stuck to using what’s called a “Local Server” to cache or keep a copy of commonly-used Javascript and CSS files on your computer, which can speed up the loading of some pages by several seconds (they just pop right up!). You can install Gears for Firefox or Internet Explorer, with support for Safari and Opera pending. WordPress works just fine without it, you just get a little extra juice when you have it installed.

Theme Previews: See it before your audience does

Now when you select a theme it pops up a window that shows the theme live with all your content, instead of immediately making it active on your site. This is great for just test driving themes before making a switch over publicly, and it is also helpful when you are developing a theme and need to test it but don’t want everybody to see your ongoing mistakes development.

Here are some of the smaller features and improvements in 2.6:

  • Word count! Never guess how many words are in your post anymore.
  • Image captions, so you can add sweet captions like Political Ticker does under your images.
  • Bulk management of plugins.
  • A completely revamped image control to allow for easier inserting, floating, and resizing. It’s now fully integrated with the WYSIWYG.
  • Drag-and-drop reordering of Galleries.
  • Plugin update notification bubble.
  • Customizable default avatars.
  • You can now upload media when in full-screen mode.
  • Remote publishing via XML-RPC and APP is now secure (off) by default, but you can turn it on easily through the options screen.
  • Full SSL support in the core, and the ability to force SSL for security.
  • You can now have many thousands of pages or categories with no interface issues.
  • Ability to move your wp-config file and wp-content directories to a custom location, for “clean” SVN checkouts.
  • Select a range of checkboxes with “shift-click.”
  • You can toggle between the Flash uploader and the classic one.
  • A number of proactive security enhancements, including cookies and database interactions.
  • Stronger better faster versions of TinyMCE, jQuery, and jQuery UI.
  • Version 2.6 fixes approximately 194 bugs.

Developer Notes

WordPress.org had over 75 people contributing code to WordPress 2.6. In addition to the core commit team we had contributions from Dion Hulse, Austin Matzko, Otto42, Benedict Eastaugh, and pishmishy. AaronCampbell and Marco Zehe provided more than a few patches. Back among the top code contributors is Jacob Santos. Alex Concha continues to have WordPress’ back. Joining bug reporting and gardening elite are hakre, Simon Wheatley, mtekk, and Matty Rob. Finally, congratulations to our Peter Westwood on your recent wedding! I’m also proud to announce we’re adding a new core committer to the team: Andrew Ozz (azaozz) has been a huge help to the core team this year, particularly around TinyMCE and making the WYSIWYG something that works for you, not against you.

Because of the new capabilities to make WordPress a clean SVN checkout, plugin and theme authors should do their best to handle forms and posts through WP rather than trying to post to their files directly, here’s a quick Codex article about how to do it using our forward-compatible APIs.

Upgrading

2.6 is pretty much identical to 2.5 from a plugin and theme compatibility point of view, so upgrades from 2.5 should be pretty painless. The 2.5 branch will no longer be maintain so everyone is encouraged to upgrade. Our standard 3-step upgrade instructions apply to this release. There were at least 1,984,047 downloads of the 2.5 series, the fastest growing release we’ve ever had, and I think all of those people will find 2.6 adds a level of polish that really makes WP a pleasure to use every day. (At least I do. :))

Easter Egg

There have been rumors and allegations that there was a so-called “easter egg” added to 2.6 early in its development. These rumors and allegations are completely false!

P.S. If you’re a fan of WordPress, consider joining our fan page on Facebook.

WordPress Birthday Party

On Tuesday, May 27th, WordPress will turn 5 years old. We’ve come a long way from that original 0.7 release.

To celebrate we’re throwing a party in San Francisco at 111 Minna, starting at 9PM. You can get the full details and RSVP on Upcoming.org or on Facebook.

I hope you see some of you there, should be a fun time.

If you host a party in your area for WordPress’ 5th, let us know and we’ll post it here.

Update: Party in Sydney! Blog post, Facebook.

Upcoming WordCamps

WordCamps are my favorite events to go to because there’s something about the core WordPress community that attracts smart folks with good philosophies that are fun to hang out with. In this post I’ve collated the upcoming WordCamps we know about, including the one in San Francisco. Hopefully there will be one nearby so you can meet other WordPressers in your area.

WordCamp San Francisco will be August 16 at the Mission Bay Conference Center.

WordCamp Paris will be on May 3rd. Here’s their official site.

WordCamp Italy in Milan will be May 10th. (And I believe I’ll be there.)

WordCamp Birmingham UK will be July 19-20.

WordCamp Toronto will be October 4th.

There are people in the planning stages in Australia, Philippines, Beijing, Utah, Hawaii, UK, NYC, and possibly others, so if you live in one of those areas and would like to help set up a WordCamp in your area Google around or connect with bloggers in your area.

You can always find out more at WordCamp Central.