[wp-hackers] Improving Plugin (and Theme) metadata

Peter Westwood peter.westwood at ftwr.co.uk
Thu Jan 24 22:17:04 GMT 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi All.

Firstly apologies for starting a new thread but the old one has grown a
bit and I want to try and refocus the discussion a bit.

We have a number of issues with the theme and plugin metadata at the moment:

1. You can't localise it. (#3089)
2. It can cause fatal errors due to things like file size etc. (#5651).

Therefore I think it might be time for a step change:

Come up with a new way of storing and presenting the metadata that fixes
these issues.

We would then support both methods of providing the metadata for a few
releases and then cut over to only supporting the new version (probably
providing a plugin to provide any backwards compatibility shims to allow
old plugins to still be used if they had not been updated).

Think of this like moving from the old wp-hacks to the current plugin
system.  Its possibly a big step but it can allow us to learn from the
experience.

By making this step change we can implement strick rules to govern the
formatting and provide a more reliable and performant process.

Some goals for the implementation:

1. Provide the ability for plugin/theme meta data to be translated.
2. Seperate the meta-data from the rest of the plugin/theme.
3. Combine the parsing code used for plugins and themes.
4. Allow for extensible metadata.

Requirements:

1. Use gettext so as to integrate with the rest of a plugins translation.
2. Protect against malformed plugins breaking the admin with PHP errors.

Possible Solution:

1. Plugins have to be stored within a folder under PLUGINDIR.
2. All plugins have a metadata.php file.
3. metadata.php file is included by the admin plugin page (not in global
scope to keep it clean) as a way of discovering the available plugins.

Example metadata.php file:

<?php

load_plugin_textdomain();

register_plugin( plugin_filename.php,
~                 __('Description'),
~                 __('Plugin Name'),
~                'http://example.com',
~                'Joe Bloggs',
~                 'http://joe.bloggs.name'),);

//The End
?>

What do people think?

westi
- --
Peter Westwood
http://blog.ftwr.co.uk | http://westi.wordpress.com
~ C53C F8FC 8796 8508 88D6 C950 54F4 5DCD A834 01C5
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHmQ5gVPRdzag0AcURAk6SAKC42S1kSRsXmCVwFDa8Sr/gRKN6KwCgrHx2
48a+rY6HFLrTaBOQ9ubzsG0=
=hFCw
-----END PGP SIGNATURE-----


More information about the wp-hackers mailing list