The Wayback Machine - https://web.archive.org/web/20121221070709/http://make.wordpress.org/core/

Make WordPress Core

Recent Updates Toggle Comment Threads | Keyboard Shortcuts

  • Mark Jaquith 9:02 pm on December 19, 2012 Permalink | Log in to leave a Comment
    Tags:   

    WordPress 3.6 Cycle 

    I’m going to be leading the WordPress 3.6 cycle. I’d personally like the focus of the release to be about content editing (revisions, autosave, workflow, editing modes, etc), but of couse that won’t be locked down until we have our IRC planning meeting in early January.

    What I need in the meantime is to pick a backup lead. Someone who will help me with the planning, execution, and delivery of the release, as well as be able to step in if for some reason I am unable to finish. If you think you’d be a good person for that job:

    Apply to be the WordPress 3.6 Backup Lead

     
    • Marko Heijnen 9:09 pm on December 19, 2012 Permalink | Log in to Reply

      I’m curious if there would also be a focus on bringing the open tickets down. Even this release there where more tickets opened then closed.

    • Nashwan Doaqan 8:04 pm on December 20, 2012 Permalink | Log in to Reply

      Good , Sure thing we should add more features to WordPress , I have some ideas and I will open some tickets soon , anyway I hope WordPress 3.6 be another success version :)

    • Tom Lynch 10:56 pm on December 20, 2012 Permalink | Log in to Reply

      @markjaquith is there not room to look at the Settings API which I and others have highlighted several times and keeps being passed over?

  • Andrew Nacin 4:40 am on December 19, 2012 Permalink | Log in to leave a Comment
    Tags: ,   

    For Wednesday, let’s plan on a 3.5.1 ticket triage meeting at 19:00 UTC (2 p.m. Eastern). Please be around if you can (#wordpress-dev of course), especially if you have something in progress for 3.5.1, so we can hammer things out and start thinking about timing.

    The dev chat is normally two hours later, at 2100 UTC. I won’t be available, and will leave that to @markjaquith and co. I expect it will be a light meeting again. 3.5.1 timing should be discussed, which should be easier with the triage session happening earlier.

     
    • Andrew Nacin 8:51 pm on December 19, 2012 Permalink | Log in to Reply

      I’m currently feeling January 2 for a 3.5.1, which gives us a few weeks to fix everything in the pipeline. We could offer a hotfix now for #22985 and #22944, which both screw with data.

      Specific 3.5.1 tickets to discuss:

      • Whether to remove wp-app.php on upgrade: #22855
      • How to handle recoverable data loss for image editing: #22985 (fairly serious and needs a plan of action)
      • Windows-based servers are going to experience a bit of an issue. Need a plan of action. #22900. cc @dd32, @kurtpayne
      • No idea what is going on with #22899 (load-scripts.php issues). Is this the source of mod_pagespeed woes? Any more ideas (from @ipstenu and @dh-shredder, particular)?
      • Status on the three TinyMCE tickets, @azaozz? #22941, #22766, #22888
      • #22895, a create_posts issue, needs investigating.

      Additional notes on remaining tickets:

      • Any media UI-related tickets are getting reviewed by koopersmith (who is traveling today), so feel free to skip those. None are serious.
      • #22883, #22944, #22858, and #22882 are all API-level (post/user) issues that seem good to go. They need unit tests.
      • I need to pow-wow with @dd32 on Twenty Twelve upgrade issues. If anyone has any other thoughts: #22856
      • I will handle $wpdb->prepare() this week. That’s #22873.
      • Mike Schroder 9:02 pm on December 19, 2012 Permalink | Log in to Reply

        I don’t suspect #22899 is the source of the mod_pagespeed issues, since encoding the brackets doesn’t solve the problem. We’re reaching out to the mod_pagespeed guys on this, and adding a temporary rule to avoid mod_pagespeed optimizing wp-admin’s JavaScript (which it arguably shouldn’t be doing anyway).

    • Andrew Nacin 8:55 pm on December 19, 2012 Permalink | Log in to Reply

      And as alluded to in the previous comment, is there anything we can offer a hotfix for? This should be based on both severity and impact. Is forcing out a fix for load-scripts.php (that involves either encoding [] or chunking <script> tags) enough to fix most JS issues? If not, is there anything else we can do to avoid a lot of JS conflict/error issues people are having? Is there a common pattern in the support forums that suggest there is something we can target? etc.

  • Andrew Nacin 7:17 pm on December 18, 2012 Permalink | Log in to leave a Comment  

    Commit Promotions 

    Jon Cave, who many of you know as duck_, is now a permanent committer, joining core developers @koopersmith and @dd32. He has been a guest committer for the last three WordPress cycles, and continues to grace all of us with great code and a sharp eye for both code review and security (he’s often found on Trac cleaning up my messes). He’s also a great guy and always willing to help. Twitter: @joncave.

    Helen Hou-Sandí, who now simply goes by helen on Trac (and in WordCamp San Francisco keynotes), is now a guest committer for WordPress 3.6! She’s a committer with a focus area — front-end dev. She’s made a tremendous impact to WordPress core over the last year, working hard on the user interface, CSS, and accessibility, and running weekly meetings in #wordpress-ui. And, her code is pitch-perfect. (See what I did there, I made a music joke, since she’s also a collaborative pianist who studied at the Eastman School.) Twitter: @helenhousandi.

    Congrats, both of you.

     
  • Andrew Nacin 6:58 pm on December 17, 2012 Permalink | Log in to leave a Comment
    Tags: ,   

    The release cycle for WordPress 3.6 isn’t going to start until January, but we can of course start to drop in some early things before then. (This worked out nicely before the start of 3.5.)

    With that in mind, I have added jQuery 1.9 Beta 1 to trunk. It comes with a migration plugin for deprecated/removed features, and this migration plugin issues warnings in the console so we may fix them. Yes, we are likely to ship the migration plugin in 3.6 final; that’s why it exists. But for now, we should aim to fix anything not only outright broken in core, but also any warnings. (There are a lot of them.)

    For more, see the jQuery announcement post and the WordPress core Trac ticket, #22975.

    A side note: If you are using the WordPress Beta Tester plugin and wish to go back to the 3.5 branch, you can do so by changing the update stream setting from “Bleeding edge nightlies” (which is currently 3.6-alpha) to “Point release nightlies” (which is currently 3.5.1-alpha) and then downgrade. Of course, we’re happy to have you testing the 3.6 branch, which will be kept fairly stable throughout its development.

     
    • Eric Mann 2:51 am on December 18, 2012 Permalink | Log in to Reply

      I like the idea of the migration plugin … but I’m hesitant shipping any library that includes “Beta” in its version number. What’s to say parts of the API won’t change by the time 1.9 is finalized? Not to mention the possibility of shipping bugs with our own release…

      • Japh 3:13 am on December 18, 2012 Permalink | Log in to Reply

        Most likely something that’s beta now, will be stable by the time we’re ready to ship it. It makes more sense than going with the current stable and shipping that even after it’s out of date, or switching further through the dev cycle and not taking full advantage of new features.

      • Andrew Nacin 5:06 am on December 18, 2012 Permalink | Log in to Reply

        Sorry, I should have mentioned that jQuery 1.9 is due out in January, well before 3.6 would even be in beta.

        We strive to always ship the latest of packaged external libraries. By being good citizens and dropping pre-release packages into our own trunk, we contribute greatly to the upstream project while also ensuring there *won’t* be bugs with our own release.

  • Jane Wells 11:00 pm on December 16, 2012 Permalink | Log in to leave a Comment
    Tags: , , twitter   

    Antsy for 3.6 to start and need a project? Who wants to make an official importer for the new Twitter archives? Would think we’ll want to add that into the importers list. Would suggest importer auto-assign “status” or “aside” post format (or make it an option in the plugin to choose format). Who’s in? I volunteer to ux review and test. :)

    http://thenextweb.com/twitter/2012/12/16/twitter-has-started-rolling-out-the-option-to-download-all-your-tweets/

     
    • Aaron Brazell 11:05 pm on December 16, 2012 Permalink | Log in to Reply

      I already was planning on doing this as a plugin, and I’ve been quiet for awhile. I can do this. But… I need to have the archives available to me, and my account doesn’t have it yet.

      • Jane Wells 11:26 pm on December 16, 2012 Permalink | Log in to Reply

        Mine either, but I’ll see if I can wrangle one we can use.

      • Ryan Duff 11:26 pm on December 16, 2012 Permalink | Log in to Reply

        Or as soon as someone gets and volunteers a copy of their archive. From the post it doesn’t seem there’s an api, but a set of html pages + xml, or json files (pick your poison)

        Also, from what I’ve heard they files are monthly, so if you’ve been on Twitter for 4 years you’d be looking at 48 json files to handle w/ an importer.

        Of course that’s all based off what I’ve read. I don’t have it yet. Just something to chew on.

        • Aaron Brazell 11:32 pm on December 16, 2012 Permalink | Log in to Reply

          Yeah it’ll be an interesting challenge but I wanna see what the data looks like first. If they turn it on for me, I’ve got 6 years of archives which would be a good stress test too.

          • Andrew Nacin 11:33 pm on December 16, 2012 Permalink | Log in to Reply

            Could handle the zip that they send you as-is. In fact, I imagine that would be the best approach for users.

            • Aaron Brazell 2:54 pm on December 17, 2012 Permalink

              I feel like we need to be able to parse the HTML, CSV and JSON in any zip file if we approach it that way. From the user perspective, I think you’re right but I sure hope the CSV and HTML are decent enough.

        • Samuel Wood (Otto) 11:38 pm on December 16, 2012 Permalink | Log in to Reply

          It’ll just be a matter of iterating the json. Simple stupid, for the most part.

    • Samuel Wood (Otto) 11:06 pm on December 16, 2012 Permalink | Log in to Reply

      If they actually roll it out to people unchanged, then it should be fairly trivial. When I get it on my account, I’ll let you know.

    • Phil Erb 11:25 pm on December 16, 2012 Permalink | Log in to Reply

      When archives are available to me, I’d love to help test.

    • Andrew Nacin 11:36 pm on December 16, 2012 Permalink | Log in to Reply

      We now have an API for importers, which means we can add this to wp-admin/import.php the moment it is done.

      When anyone gets access to their zip, please share it (or at least a sample so we can learn the format).

    • Aaron D. Campbell 12:29 am on December 17, 2012 Permalink | Log in to Reply

      Looks like my account has the option. I’m requesting an archive and will post it somewhere to use.

    • Myatu 6:53 am on December 17, 2012 Permalink | Log in to Reply

      Wouldn’t it be more sensible to have this as a 3rd party plugin, rather than having to maintain more bloat?

      • Peter Westwood 10:40 am on December 17, 2012 Permalink | Log in to Reply

        It will be a plugin anyway not in the core download – all the importers are plugins now.

        • Myatu 6:21 am on December 18, 2012 Permalink | Log in to Reply

          Actually forgot about that! Shows how often I’ve used that feature. I stand corrected :)

      • Jane Wells 11:39 am on December 17, 2012 Permalink | Log in to Reply

        As @westi states, all importers are plugins, not core code. I didn’t specify that in my post, since I took it as a given that core developers know that.

    • Simon Wheatley 8:34 am on December 17, 2012 Permalink | Log in to Reply

      Note that the current Twitter IDs overflow (?) and corrupt if you convert them to integers on a 32bit system. That one has got me before. (Apologies if that’s teaching everyone to suck eggs.)

      Also, would you mind putting in a filter for the post data before save… I’d prefer to store tweets in a custom post type. Ta! :)

    • Andrew Nacin 6:49 pm on December 17, 2012 Permalink | Log in to Reply

      I’ve outlined a potential plan for such an importer on a Trac ticket: http://core.trac.wordpress.org/ticket/22981. If you want to continue to discuss the idea, feel free to do so here. Implementation can occur on the ticket. (This is a plugin, but an official importer is also a core priority, hence the use of core trac.)

      I’ve also uploaded a tweet archive contributed by @chadhuber to the ticket. It does contain sane json.

    • Beau Lebens 9:23 pm on December 17, 2012 Permalink | Log in to Reply

      In case it helps, I already made one, packaged in here: http://wordpress.org/extend/plugins/keyring-social-importers/

  • Jane Wells 1:34 pm on December 16, 2012 Permalink | Log in to leave a Comment
    Tags:   

    Went to tally team rep votes and only 9 people voted, none of whom had actually contributed to core. I
    I just re-opened the voting survey. If anyone who does actually contribute to core wants to vote for team reps, please do it today. I’ll close the voting again tomorrow. Thanks!

    http://wordpressdotorg.polldaddy.com/s/team-rep-vote-core-team

     
    • Japh 2:06 pm on December 16, 2012 Permalink | Log in to Reply

      That’s odd. I voted, and I’ve actually contributed to core…

      • Jane Wells 2:38 pm on December 16, 2012 Permalink | Log in to Reply

        Can you go and vote now? If you voted before, you didn’t put your name down (which is fine, just means I can’t see which vote is yours, and none of the IP addresses are from Australia, vs being able to see your vote as from Australia for the theme team vote).

        • Japh 11:36 pm on December 16, 2012 Permalink | Log in to Reply

          Ok, I’ve voted again. But I did put my name down last time, and also included my email address in Q.4

          Hopefully this second attempt went through.

        • Japh 11:38 pm on December 16, 2012 Permalink | Log in to Reply

          Ah, reading further I see you discovered the issue :)

    • Knut Sparhell 2:33 pm on December 16, 2012 Permalink | Log in to Reply

      Q3 is a turn off. When not an “Active member of the core team”, but have contributed to the 3.5 cycle, there is no valdi alternative.

    • Marko Heijnen 2:56 pm on December 16, 2012 Permalink | Log in to Reply

      Thats weird. I also voted and filled in all my information.

    • John P. Bloch 3:05 pm on December 17, 2012 Permalink | Log in to Reply

      Since it was requested that people volunteer to be considered, I was waiting for more people to reply to the original announcement post. It would appear nobody threw their name in the hat, though.

  • Andrew Nacin 2:37 pm on December 13, 2012 Permalink | Log in to leave a Comment  

    The unit tests and design repos (http://unit-tests.svn.wordpress.org and http://design.svn.wordpress.org) are now integrated into the core WordPress Trac.

    Where to find them: You may find them on the “Browser” page. They remain separate SVN repositories. (We’re using Trac’s multiple repository support.)

    How to reference commits in tickets: Rather than [UT123] to reference a unit test changeset, you can use [123/tests]. Same goes for [D11] and [11/design]. Note though that the old ways still work (it’ll just redirect three times to get there).

    Or, even better: If a commit references a Trac ticket, it will now automatically be posted there, just like core commits.

    Commit notifications: All three repositories send their commits to the wp-svn mailing list.

    Where to post patches and create tickets: On core Trac. Items meant to be committed to the design repository were nearly always going to come from existing tickets anyway. If you happen to be proposing new unit tests for existing code, you may now just create a new ticket on core Trac. If you are proposing changes or improvements to the test framework itself, use the “Unit Tests” component. There are still some open tickets on on the old Trac, as well, but I’ve shut off ticket creation over there.

    Why? This was an action item from the community summit. A number of developers felt it did not make sense to marginalize these projects on their own Trac installs. Now, you can follow them all in one place, and it ideally raises the profile of them too.

     
  • Helen Hou-Sandi 11:55 pm on December 12, 2012 Permalink | Log in to leave a Comment
    Tags:   

    Attachment editing: now with full post edit UI! 

    While perhaps not often used, the same interface in the now-old upload/insert media modal was available as an admin screen by going to the Media Library and then clicking on Edit for an item. With the move away from that interface in the modal, we thought it’d be a good time to treat attachments as what they are: a post type. Some changes users will see are the ability to turn on discussion/comment meta boxes as well as being able to edit the slug for attached items; that is, items that have a post_parent.

    Edit Media Screen in 3.5

    What this means for developers is that you can now do familiar things like adding meta boxes or perhaps even utilize those fancy new edit screen hooks for editing media library items. There’s also the attachment_submitbox_misc_actions hook for the Publish meta box. Taxonomies will now come with their native meta box UIs if you so choose – for built-in taxonomies, it’s as easy as:

    register_taxonomy_for_object_type( 'category', 'attachment' );
    

    Seriously: that’s it. The screenshot above shows just that.

    One thing you may notice is that what’s known as the “Description”, which in reality is the post_content, uses a textarea with quicktags enabled. The decision was made to go this route in core for a couple reasons: to keep it lightweight while still making it a bit better (after all, it was just a plain textarea before), and to prevent attachment-ception as a default possibility. If you as a developer want to enable attachments in your attachments, have at it.

    attachment_fields_to_edit comes with backwards compatibility and will continue to work – fields added that way will appear below the Description field. However, you may very well find that it makes sense to change the placement of those fields on this screen for sensible editing and structure. There are JS methods for adding to the modal moving forward, but while those guides are worked on and you’ve got some already-existing things to support, the following will help you through.

    Previously, you may have done something like checking the IFRAME_REQUEST constant to determine whether or not something should show on the attachment edit screen or in the Thickbox. Since the new media modal is not an iframe, that won’t work anymore. To help with that, we’ve added some new arguments, or flags if you will, to allow you to specify whether or not an added field should appear on this edit screen or in the new media modal: #22759.

    This example shows how to add a field that appears in the modal but not in the edit screen. For the other way around, you would set show_in_modal to false. Both args default to true, and there’s no real reason to set both to false, so you’ll only use one or no flags for a given field.

    add_filter( 'attachment_fields_to_edit', 'myprefix_attachment_fields_to_edit', 10, 2 );
    function myprefix_attachment_fields_to_edit( $fields, $post ) {
            $fields['test-media-item'] = array(
                    'label' => 'More Media Management',
                    'input' => 'html',
                    'html' => '<a href="#">Link One</a>
    <a href="#">Link Two</a>',
                    'show_in_edit' => false,
            );
    
            return $fields;
    }
    

    For the low-down on how this came together over the course of 3.5, check out #21391. The possibilities are exciting! Document/asset management with taxonomies, adding that method for detaching or reassigning the post parent for a media item – what else might you come up with?

     
  • Andrew Nacin 7:01 am on December 12, 2012 Permalink | Log in to leave a Comment
    Tags: ,   

    Post-3.5 IRC meeting 

    Here’s the agenda for the December 12 developer chat in IRC. That’d be #wordpress-dev on freenode at 21:00 UTC. Should be a fairly low-key meeting:

    • Congratulations on WordPress 3.5, everyone.
    • Fallout of 3.5. How’s the support forums? Any common issues? What can we learn from plugins that broke?
    • Can we help with any common issues? Can documentation (like field guide posts) help?
    • Triage 3.5.1 tickets. What does our timeline currently look like?
    • Discuss plans for the month of December, and 3.6.
    • Stare at the download counter.

    Thank you so much for a great release. Really proud of what we accomplished. — @nacin, @koop

     
  • Andrew Nacin 6:14 am on December 12, 2012 Permalink | Log in to leave a Comment
    Tags: , , sql, wpdb   

    PHP Warning: Missing argument 2 for wpdb::prepare() 

    Hello plugin or theme author! You possibly found this post after searching the Internet for the error above: “PHP Warning: Missing argument 2 for wpdb::prepare().”

    So, this is a new warning in 3.5. No sites are broken, everything is fine as before. But, this is indeed something you need to look at, because you may be exposing your users to a possible SQL injection vulnerability. Now that’s no fun!

    First, if you’re a user and you want to get rid of these errors, you should turn off the displaying of errors in PHP. There are many ways to do this, such as in php.ini, .htaccess, etc. For this, you can just put this in wp-config.php. (Note that hiding errors on production sites is good practice anyway.)

    @ini_set('display_errors', 0);
    

    If you’re a user, you can stop here. (If you need more help, please don’t comment here, try the helpful Support Forums.) Just be sure to send a link to this post to the developer of the theme or plugin referenced in the error.

    Now, developers: Here’s how $wpdb->prepare() is supposed to work:

    $wpdb->prepare( "SELECT * FROM table WHERE ID = %d AND name = %s", $id, $name );
    

    See how $id — an integer, presumably — was passed as the second argument? That corresponds to the first placeholder, %d. Then, $name (a string) was passed as the third argument, thus the second placeholder, %s. This makes sure your query is safe, and prevents something like little bobby tables. (Note: the comic is wrong, don’t sanitize — always prepare your queries.)

    The problem is, a number of people were calling $wpdb->prepare() with only one argument, like so:

    $wpdb->prepare( "SELECT COUNT(*) FROM table" );
    

    See, there’s no parameter (%d, %s, or for floats, %f) in this query. This happens to work fine, but the prepare call isn’t doing anything. You should instead the query directly, as there are no inputs.

    But here’s where the problem lies:

    $wpdb->prepare( "SELECT * FROM table WHERE id = $id" );
    

    See the problem? That query isn’t secure! You may think you are “preparing” this query, but you’re not — you’re passing $id directly into the query, unprepared. And this, right here, is why $wpdb->prepare() now issues a warning if it isn’t called with more than one argument. Because you can’t prepare a query without more than one argument. Here’s a correct example:

    $wpdb->prepare( "SELECT * FROM table WHERE id = %d", $id );
    

    This wasn’t a decision done lightly. We don’t like shoving PHP warnings into the faces of users and developers. But given the potential security risks, we wanted everyone to immediately look at how they are running queries. And, of course, always prepare them properly.

    For more: wpdb Codex reference, #22262, and [22429].

     
    • Samuel Wood (Otto) 6:17 am on December 12, 2012 Permalink | Log in to Reply

      Dangit. Stole my ottopress post for tomorrow. Now I have to come up with fresh, original content. ;)

    • Emil Uzelac 6:23 am on December 12, 2012 Permalink | Log in to Reply

      Good one, just submitted this http://wordpress.org/support/topic/warning-missing-argument-2-for-wpdbprepare-3 15 minutes ago. Let me link to this post as well, to help author out :)

      Thanks,
      Emil

    • chacha102 6:30 am on December 12, 2012 Permalink | Log in to Reply

      Because you can’t prepare a query with more than one argument. Here’s a correct example:

      I think you mean, you can’t prepare a query without more than one argument.

    • Brian Layman 6:56 am on December 12, 2012 Permalink | Log in to Reply

      Interesting.. So the rule of “Always use prepare on queries” is simply wrong.
      It should be “Always use prepare on queries that built with variable arguments.”

      I’d always thought it did further sanitization of the query string itself, but I suppose that would be really hard to do without blocking some valid query people would inevitably want.

      • Samuel Wood (Otto) 6:58 am on December 12, 2012 Permalink | Log in to Reply

        The *vast* majority of problems with this I’ve seen today had variable arguments, but were putting them directly in the strings, like the third code example there. Which basically means that prepare did nothing to protect them.

        Previously, prepare(‘string’) returned ‘string’. Now it returns ‘string’ and a warning that you are doing-it-wrong. :)

      • chacha102 7:03 am on December 12, 2012 Permalink | Log in to Reply

        If you check out the source code for wpdb::prepare it really isn’t that interesting.

    • Vitor Carvalho 11:17 am on December 12, 2012 Permalink | Log in to Reply

      Fantastic explanation Nacin ;-)

    • Joost de Valk 2:14 pm on December 12, 2012 Permalink | Log in to Reply

      Had to chuckle a bit when I found this:

      Missing argument 2 for wpdb::prepare(), called in /home/example/public_html/wp-content/plugins/akismet/admin.php

    • rfair404 2:14 pm on December 12, 2012 Permalink | Log in to Reply

      Thanks Nacin, I started seeing these notices in the last few weeks on several plugins that I use. glad to know what’s going on here.

    • a6april 3:18 pm on December 12, 2012 Permalink | Log in to Reply

      Thanks Huge Andrew, I had no idea! I am always glad to learn something everyday! I appreciate the quick followup and all of the responses. Have a great day all!

    • Josh 4:31 pm on December 12, 2012 Permalink | Log in to Reply

      Extremely useful… and “juicy”! Thanks Andrew! Saved me tons of time. Nice to know you guys are on top of security. Thanks again!

    • nomadentech 11:29 am on December 13, 2012 Permalink | Log in to Reply

      This is works perfectly, i think similar error will found in another plugins, so we dont need to fear for updating WordPress core. :D
      Thank you,

      Teguh

    • properwp 6:01 pm on December 13, 2012 Permalink | Log in to Reply

      Thank you very much! We’re using a modified version of a clunky plugin in the repo and we keep finding new, wonderful problems. Another one of those “probably should have started from scratch” situations!

    • Mark de Scande BlogLines 8:04 pm on December 13, 2012 Permalink | Log in to Reply

      The only thing here is that it should have been noted some were or it was and i did not see it or i did not read i had the same problem on my Wife site SuperBlogs.co.za but on BlogLines.co.za it all was perfect on SB i just added some dirty code to make it go away

      http://wordpress.org/support/topic/err-after-upgrade-to-35?replies=9

      But thx for posting it here for us all to see

    • Nashwan Doaqan 5:32 pm on December 14, 2012 Permalink | Log in to Reply

      Thank You Andrew Nacin , I see many plugins have this PHP warning .
      I hope a good life for all plugins authors :D

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