Extra Options v0.0.1: A plugin for WordPress

I am happy to announce the first public release of Extra Options, a simple plugin for WordPress.

Extra Options offers a collection of tweaks I have been using myself here and elsewhere, and that I decided to wrap in a easy-to-install plugin with a nice interactive UI.

Read more at the Extra Options homepage: op111.net/code/xo

Get Extra Options from WordPress Extend: wordpress.org/extend/plugins/xo

Please note that v0.0.1 is the first public release of Extra Options and is not considered stable. In other words, it is not expected to be without errors or to work well in every WordPress setup.

Your feedback is appreciated!

Comments (4)

  1. Nico says:

    Hi !

    Great plugin ! I’m about to build a similar one for my needs and common optimization practises I apply to every WP installation but some of your options inspired me for new settings to add in my own plugin :)

    Few remarks about the code (if I may :) ) :

    While your options values are only on binary mode (1 or 0), why don’t you store them in a single row as a serialized array instead of overloading the db with one row per option that only contains one single int ?

    Here’s a great tutorial about options pages :
    http://planetozh.com/blog/2009/05/handling-plugins-options-in-wordpress-28-with-register_setting/
    You could save many lines and the way you save/update your options with this.

  2. demetris says:

    Hello, Nico.

    Thanks for your comment! Really glad you liked the plugin.

    The main reason the options are stored like this is that they were few at the beginning. For example, there was one combined noindex + nofollow option (which is all I need). Then, when I decided to release the plugin, I thought it would be more useful to others to have two individual options for that. So, options started multiplying. :-)

    Now I plan to switch to one single row at some point, as you suggest.

    About Ozh’s tutorial, I agree! I actually have a link to it in the Resources page:

    http://op111.net/code/resources

    I was almost certain I also had a link to Ozh’s tutorial somewhere in the Extra Options files, but I don’t.

  3. Milan says:

    Options were first thing I saw and wanted to report. A little help with transition.

    Why you simply don’t use a class from Use Google Libraries, it covers everything while your solutions doesn’t?

    There is no consistency with textdomain: somewhere it is xo-wp, somewhere xo, while somewhere there is no textdomain at all. And you don’t load any textdomain. Plus, add_options_page also needs gettext. I recommend that you change /lang to /languages. Nickolay wrote somewhere that /languages should be standardised, I believe because of future connection between translate.wp.org and plugins repository.

  4. demetris says:

    Hi, Milan, and thanks for stopping by!

    I knew people would probably think of serialization if they looked in the Extra Options files, but I never imagined the first two comments would talk about serialization. :-D

    About the AJAX libraries, you probably saw that Use Google Libraries is among the alternative solutions I recommend. I like it and recommend it, but would it make sense to just include it in Extra Options? Why not just tell people to install that then? UGL is a more complete approach that covers more scenarios and that it also replaces lib sources for the backend, which I prefer not to do. In Extra Options I wanted to keep things as simple as possible. I can certainly add more libraries (and I mean to; the first candidate is SWFObject) but, then again, how many people really need more libraries?

    The gettext functions are like that because I have been playing with some ideas, mostly related to this proposal here: http://core.trac.wordpress.org/ticket/14972

    That does not make any difference for users of the plugin, since, in any case, I do not mean to add a translation file this early: the strings are not stable yet.

Write a comment

Your email address will not be published. Required fields are marked *