CINXE.COM
WordPress › repository « Make WordPress Plugins
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"><head profile="http://gmpg.org/xfn/11"><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("http://make.wordpress.org/plugins/tag/repository/","20130126204257","https://web.archive.org/","web","/_static/", "1359232977"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <!-- <meta property="fb:page_id" content="6427302910" /> --> <link href="https://plus.google.com/107188080561309681193" rel="publisher"/> <meta name="google-site-verification" content="7VWES_-rcHBcmaQis9mSYamPfNwE03f4vyTj4pfuAw0"/> <title>WordPress › repository « Make WordPress Plugins</title> <link rel="stylesheet" href="https://web.archive.org/web/20130126204257cs_/http://s.wordpress.org/style/wp4.css?27"/> <link media="only screen and (max-device-width: 480px)" href="https://web.archive.org/web/20130126204257cs_/http://s.wordpress.org/style/iphone.css" type="text/css" rel="stylesheet"/> <link rel="shortcut icon" href="https://web.archive.org/web/20130126204257im_/http://s.wordpress.org/favicon.ico?3" type="image/x-icon"/> <link rel="alternate" type="application/rss+xml" title="Make WordPress Plugins" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/feed/"/> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://web.archive.org/web/20130126204257/https://ssl." : "https://web.archive.org/web/20130126204257/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> var pageTracker = _gat._getTracker("UA-52447-1"); pageTracker._initData(); pageTracker._trackPageview(); function recordOutboundLink(link, category, action) { pageTracker._trackEvent(category, action); setTimeout('document.location = "' + link.href + '"', 100); } </script> <!--[if lte IE 8]> <style type="text/css"> @import url("http://s.wordpress.org/style/ie.css?1"); </style> <![endif]--> <link rel="pingback" href="http://make.wordpress.org/plugins/xmlrpc.php"/><link rel="stylesheet" href="https://web.archive.org/web/20130126204257cs_/http://make.wordpress.org/plugins/wp-content/themes/make-p2/style.css?v=2" type="text/css" media="screen"/> <script type="text/javascript"> // <![CDATA[ // P2 Configuration var ajaxUrl = "https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/wp-admin/admin-ajax.php?p2ajax=true"; var updateRate = "30000"; // 30 seconds var nonce = "4e8542ecc6"; var login_url = "https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/wp-login.php?redirect_to=http%3A%2F%2Fmake.wordpress.org%2Fplugins%2Ftag%2Frepository%2F"; var templateDir = "https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/wp-content/themes/p2"; var isFirstFrontPage = 0; var isFrontPage = 0; var isSingle = 0; var isPage = 0; var isUserLoggedIn = 0; var prologueTagsuggest = 1; var prologuePostsUpdates = 1; var prologueCommentsUpdates = 1; var getPostsUpdate = 0; var getCommentsUpdate = 0; var inlineEditPosts = 1; var inlineEditComments = 1; var wpUrl = "https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins"; var rssUrl = ""; var pageLoadTime = "2013-01-26 20:42:57"; var original_title = document.title; var commentsOnPost = new Array; var postsOnPage = new Array; var postsOnPageQS = ''; var currPost = -1; var currComment = -1; var commentLoop = false; var lcwidget = false; var hidecomments = false; var commentsLists = ''; var newUnseenUpdates = 0; var mentionData = null; // ]]> </script> <link rel="alternate" type="application/rss+xml" title="Make WordPress Plugins » Feed" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/feed/"/> <link rel="alternate" type="application/rss+xml" title="Make WordPress Plugins » Comments Feed" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/comments/feed/"/> <script type="text/javascript"> //<![CDATA[ var wpLocale = {"month":["January","February","March","April","May","June","July","August","September","October","November","December"],"monthabbrev":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"weekday":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"weekdayabbrev":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}; //]]> </script> <link rel="alternate" type="application/rss+xml" title="Make WordPress Plugins » repository Tag Feed" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/tag/repository/feed/"/> <link rel="stylesheet" id="admin-bar-css" href="https://web.archive.org/web/20130126204257cs_/http://make.wordpress.org/plugins/wp-includes/css/admin-bar.min.css?ver=3.6-alpha-23334" type="text/css" media="all"/> <link rel="stylesheet" id="jetpack-widgets-css" href="https://web.archive.org/web/20130126204257cs_/http://make.wordpress.org/plugins/wp-content/plugins/jetpack/modules/widgets/widgets.css?ver=20121003" type="text/css" media="all"/> <link rel="stylesheet" id="p2-print-style-css" href="https://web.archive.org/web/20130126204257cs_/http://make.wordpress.org/plugins/wp-content/themes/p2/style-print.css?ver=20120807" type="text/css" media="print"/> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://make.wordpress.org/plugins/wp-includes/js/jquery/jquery.js?ver=1.9.0"></script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://make.wordpress.org/plugins/wp-includes/js/jquery/jquery-migrate.js?ver=1.0.0"></script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://make.wordpress.org/plugins/wp-includes/js/jquery/jquery.color.min.js?ver=2.1.0"></script> <script type="text/javascript"> /* <![CDATA[ */ var userSettings = {"url":"\/","uid":"0","time":"1359232977"}; /* ]]> */ </script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://make.wordpress.org/plugins/wp-includes/js/utils.min.js?ver=3.6-alpha-23334"></script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://make.wordpress.org/plugins/wp-includes/js/comment-reply.min.js?ver=3.6-alpha-23334"></script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://make.wordpress.org/plugins/wp-content/themes/p2/js/jquery.scrollTo-min.js?ver=20120402"></script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://make.wordpress.org/plugins/wp-content/themes/p2/js/wp-locale.js?ver=20110415"></script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://make.wordpress.org/plugins/wp-content/themes/p2/js/spin.js?ver=20120704"></script> <script type="text/javascript"> /* <![CDATA[ */ var p2txt = {"tags":"<br \/>Tags:","tagit":"Tag it","citation":"Citation","title":"Post Title","goto_homepage":"Go to homepage","n_new_updates":"%d new update(s)","n_new_comments":"%d new comment(s)","jump_to_top":"Jump to top","not_posted_error":"An error has occurred, your post was not posted","update_posted":"Your update has been posted","loading":"Loading...","cancel":"Cancel","save":"Save","hide_threads":"Hide threads","show_threads":"Show threads","unsaved_changes":"Your comments or posts will be lost if you continue.","date_time_format":"%1$s <em>on<\/em> %2$s","date_format":"F j, Y","time_format":"g:i a","autocomplete_prompt":"After typing @, type a name or username to find a member of this site","no_matches":"No matches.","comment_cancel_ays":"Are you sure you would like to clear this comment? Its contents will be deleted.","oops_not_logged_in":"Oops! Looks like you are not logged in.","please_log_in":"Please log in again","whoops_maybe_offline":"Whoops! Looks like you are not connected to the server. P2 could not connect with WordPress."}; try{convertEntities(p2txt);}catch(e){};; /* ]]> */ </script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://make.wordpress.org/plugins/wp-content/themes/p2/js/p2.js?ver=20121128"></script> <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://make.wordpress.org/plugins/xmlrpc.php?rsd"/> <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://make.wordpress.org/plugins/wp-includes/wlwmanifest.xml"/> <meta name="generator" content="WordPress 3.6-alpha-23334"/> <style type="text/css"> .is-js .hide-if-js { display: none; } .p2-task-list ul { margin-left: 0 !important; } .p2-task-list ul ul { margin-left: 20px !important; } .p2-task-list li { list-style: none; } </style> <script type="text/javascript"> jQuery( function( $ ) { $( 'body' ) .addClass( 'is-js' ) .delegate( '.p2-task-list :checkbox', 'click', function() { var $this = $( this ), $li = $this.parents( 'li:first' ), $form = $this.parents( 'form:first' ), data = $li.find( ':input' ).serialize(), colorEl = $li, origColor = $li.css( 'background-color' ), color; while ( colorEl.get(0).tagName && colorEl.css( 'background-color' ).match( /^\s*(rgba\s*\(\s*0+\s*,\s*0+\s*,\s*0+\s*,\s*0+\s*\)|transparent)\s*$/ ) ) { colorEl = colorEl.parent(); } color = colorEl.get(0).tagName ? colorEl.css( 'background-color' ) : '#ffffff'; data += '&ajax=1&' + $form.find( '.submit :input' ).serialize(); $.post( $form.attr( 'action' ), data, function( response ) { if ( '1' === response ) $li.css( 'background-color', '#F6F3D1' ).animate( { backgroundColor: color }, 'slow', function() { $li.css( 'background-color', origColor ); } ); } ); } ); } ); </script> <style type="text/css" media="print">#wpadminbar { display:none; }</style> <style type="text/css" media="screen"> html { margin-top: 28px !important; } * html body { margin-top: 28px !important; } </style> <style id="p2-header-style" type="text/css"> </style> <meta id="syntaxhighlighteranchor" name="syntaxhighlighter-version" content="3.1.3"/> <script type="text/javascript"> /* <![CDATA[ */ var wpNotesIsJetpackClient = true; /* ]]> */ </script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://s.wordpress.org/wp-includes/js/jquery/jquery.js"></script> <script>document.cookie='devicePixelRatio='+((window.devicePixelRatio === undefined) ? 1 : window.devicePixelRatio)+'; path=/';</script> </head> <body id="wordpress-org" class="archive tag tag-repository tag-13 admin-bar no-customize-support"> <div id="header"> <div class="wrapper"> <h1><a href="https://web.archive.org/web/20130126204257/http://s.wordpress.org/">WordPress.org</a></h1> <form action="https://web.archive.org/web/20130126204257/http://wordpress.org/search/do-search.php" method="get" id="head-search"> <input class="text" name="search" type="text" value="Search WordPress.org" maxlength="150" onfocus="this.value=(this.value=='Search WordPress.org') ? '' : this.value;" onblur="this.value=(this.value=='') ? 'Search WordPress.org' : this.value;"/> <input type="submit" class="button" value="Go"/> </form> <ul> <li><a href="https://web.archive.org/web/20130126204257/http://wordpress.org/showcase/" title="See some of the sites built on WordPress.">Showcase</a></li> <li><a href="https://web.archive.org/web/20130126204257/http://wordpress.org/extend/themes/" title="Find just the right look for your website.">Themes</a></li> <li><a href="https://web.archive.org/web/20130126204257/http://wordpress.org/extend/plugins/" title="Plugins can extend WordPress to do almost anything you can imagine.">Plugins</a></li> <li><a href="https://web.archive.org/web/20130126204257/http://wordpress.org/extend/mobile/" title="Take your website on the go!">Mobile</a></li> <li><a href="https://web.archive.org/web/20130126204257/http://wordpress.org/support/" title="Forums, documentation, help.">Support</a><ul class="nav-submenu"><li><a href="https://web.archive.org/web/20130126204257/http://wordpress.org/support/" title="Support and discussion forums.">Forums</a></li><li><a href="https://web.archive.org/web/20130126204257/http://codex.wordpress.org/Main_Page" title="Documentation, tutorials, best practices.">Docs</a></li></ul></li> <li><a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/" title="Contribute your knowledge." class="current">Get Involved</a><ul class="nav-submenu"><li><a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/core/" title="Write the code.">Core</a></li><li><a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/ui/" title="Improve the interface.">UI</a></li><li><a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/accessibility/" title="Create a better experience.">Accessibility</a></li><li><a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/" title="Extend the system.">Plugins</a></li><li><a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/themes/" title="Beautify the web.">Themes</a></li><li><a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/support/" title="Help the users.">Support</a></li><li><a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/polyglots/" title="Translate for the world.">Polyglots</a></li><li><a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/mobile/" title="On the go.">Mobile</a></li></ul></li> <li><a href="https://web.archive.org/web/20130126204257/http://wordpress.org/about/" title="About the WordPress Organization, and where we're going.">About</a></li> <li><a href="https://web.archive.org/web/20130126204257/http://wordpress.org/news/" title="Come here for the latest scoop.">Blog</a></li> <li><a href="https://web.archive.org/web/20130126204257/http://wordpress.org/hosting/" title="Find a home for your blog.">Hosting</a></li> <li id="download"><a href="https://web.archive.org/web/20130126204257/http://wordpress.org/download/" title="Get it. Got it? Good.">Download</a></li> </ul> </div> </div> <div id="headline"> <div class="wrapper"> <h2><a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/">Make WordPress Plugins</a></h2> </div> </div> <div id="header2"> <!-- <div class="sleeve"> <h1><a href="http://make.wordpress.org/plugins/">Make WordPress Plugins</a></h1> <small>Resources for WordPress.org plugin developers</small> <a class="secondary" href="http://make.wordpress.org/plugins/"></a> </div> --> </div> <div id="wrapper"> <div id="sidebar"> <ul> <li id="search-2" class="widget widget_search"><form role="search" method="get" id="searchform" action="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/"> <div><label class="screen-reader-text" for="s">Search for:</label> <input type="text" value="" name="s" id="s"/> <input type="submit" id="searchsubmit" value="Search"/> </div> </form></li> <li id="text-2" class="widget widget_text"><h2 class="widgettitle">Welcome to make/plugins</h2> <div class="textwidget"><p>Howdy! This <a href="https://web.archive.org/web/20130126204257/http://p2theme.com/">P2</a> blog is for announcements and resources for WordPress plugin developers and the Plugin Directory. If you write plugins, you should subscribe:</p> </div> </li> <li id="blog_subscription-3" class="widget jetpack_subscription_widget"><h2 class="widgettitle"><label for="subscribe-field">Subscribe to Blog via Email</label></h2> <a id="subscribe-blog"></a> <form action="" method="post" accept-charset="utf-8" id="subscribe-blog"> <p>Enter your email address to subscribe to this blog and receive notifications of new posts by email.</p><p>Join 385 other subscribers</p> <p><input type="text" name="email" style="width: 95%; padding: 1px 2px" value="Email Address" id="subscribe-field" onclick="if ( this.value == 'Email Address' ) { this.value = ''; }" onblur="if ( this.value == '' ) { this.value = 'Email Address'; }"/></p> <p> <input type="hidden" name="action" value="subscribe"/> <input type="hidden" name="source" value="http://make.wordpress.org/plugins/tag/repository/"/> <input type="hidden" name="sub-type" value="widget"/> <input type="hidden" name="redirect_fragment" value="blog_subscription-3"/> <input type="submit" value="Subscribe" name="jetpack_subscriptions_widget"/> </p> </form> </li> <li id="p2_recent_comments-2" class="widget widget_p2_recent_comments"><h2 class="widgettitle">Recent comments</h2> <table class="p2-recent-comments" cellspacing="0" cellpadding="0" border="0"> <tr><td title="Adding a Banner Imag…" class="avatar" style="height: 32px; width: 32px"><a href="https://web.archive.org/web/20130126204257/http://hardcorewp.com/2013/adding-a-banner-image-to-your-wordpress-plugin-page/" rel="nofollow"></a></td><td class="text"><a href="https://web.archive.org/web/20130126204257/http://hardcorewp.com/2013/adding-a-banner-image-to-your-wordpress-plugin-page/" rel="nofollow">Adding a Banner Imag…</a> on <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/09/13/last-december-we-added-header-images-to-the/#comment-28231" class="tooltip" title="[...] Last December, we added header images to the…">Last December we added header …</a></td></tr><tr><td title="TCR" class="avatar" style="height: 32px; width: 32px"><a href="https://web.archive.org/web/20130126204257/http://www.thecellarroom.net/" rel="nofollow"><img alt="" src="https://web.archive.org/web/20130126204257im_/http://0.gravatar.com/avatar/69b0de85716398ca88ec4c7f04bb2d29?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/></a></td><td class="text"><a href="https://web.archive.org/web/20130126204257/http://www.thecellarroom.net/" rel="nofollow">TCR</a> on <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/12/28/pluginplugin-team-stats/#comment-28134" class="tooltip" title="Agree with these. would be useful to have a filter…">Plugin/Plugin Team Stats</a></td></tr><tr><td title="Scott Reilly" class="avatar" style="height: 32px; width: 32px"><a href="https://web.archive.org/web/20130126204257/http://coffee2code.com/" rel="nofollow"><img alt="" src="https://web.archive.org/web/20130126204257im_/http://1.gravatar.com/avatar/5af525fba95b93c4e0c8a03b639c9486?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/></a></td><td class="text"><a href="https://web.archive.org/web/20130126204257/http://coffee2code.com/" rel="nofollow">Scott Reilly</a> on <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/12/28/pluginplugin-team-stats/#comment-28056" class="tooltip" title="You should email plugins@wordpress.org to rep…">Plugin/Plugin Team Stats</a></td></tr><tr><td title="rielf" class="avatar" style="height: 32px; width: 32px"><a href="https://web.archive.org/web/20130126204257/http://locosdefutbol.es/" rel="nofollow"><img alt="" src="https://web.archive.org/web/20130126204257im_/http://1.gravatar.com/avatar/b8677d2f3fe258d78962262f7a23dc0c?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/></a></td><td class="text"><a href="https://web.archive.org/web/20130126204257/http://locosdefutbol.es/" rel="nofollow">rielf</a> on <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/12/28/pluginplugin-team-stats/#comment-27985" class="tooltip" title="Where i can denounce a SCAM Pluguin? "Google adsen…">Plugin/Plugin Team Stats</a></td></tr><tr><td title="How to Create Custom…" class="avatar" style="height: 32px; width: 32px"><a href="https://web.archive.org/web/20130126204257/http://www.seosalespro.com/blog/how-to-create-custom-content-with-wordpress/" rel="nofollow"></a></td><td class="text"><a href="https://web.archive.org/web/20130126204257/http://www.seosalespro.com/blog/how-to-create-custom-content-with-wordpress/" rel="nofollow">How to Create Custom…</a> on <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/05/19/plugin-directory-refreshed-what-it-means-for-developers/#comment-27850" class="tooltip" title="[...] trying to keep this current and finally it h…">Plugin Directory Refreshed — W…</a></td></tr> </table></li> <li id="recent-posts-2" class="widget widget_recent_entries"> <h2 class="widgettitle">Recent Posts</h2> <ul> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/12/28/pluginplugin-team-stats/" title="Plugin/Plugin Team Stats">Plugin/Plugin Team Stats</a> </li> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/12/24/team-rep-results/" title="Team Rep Results">Team Rep Results</a> </li> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/12/20/gpl-and-the-repository/" title="GPL and the Repository">GPL and the Repository</a> </li> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/12/09/team-rep-voting/" title="Team Rep Voting">Team Rep Voting</a> </li> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/09/13/last-december-we-added-header-images-to-the/" title="Last December we added header images to the…">Last December we added header images to the…</a> </li> </ul> </li> <li id="p2_recent_tags-2" class="widget widget_p2_recent_tags"><h2 class="widgettitle">Recent tags</h2> <ul> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/tag/stats/">stats</a> ( 1 ) </li> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/tag/team-reps/">team reps</a> ( 2 ) </li> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/tag/licensing/">licensing</a> ( 2 ) </li> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/tag/gpl/">gpl</a> ( 1 ) </li> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/tag/assets/">assets</a> ( 1 ) </li> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/tag/screenshots/">screenshots</a> ( 1 ) </li> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/tag/svn/">svn</a> ( 1 ) </li> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/tag/repository/">repository</a> ( 1 ) </li> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/tag/plugin/">plugin</a> ( 1 ) </li> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/tag/readme/">readme</a> ( 1 ) </li> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/tag/directory/">directory</a> ( 2 ) </li> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/tag/rewrite/">rewrite</a> ( 1 ) </li> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/tag/support/">support</a> ( 1 ) </li> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/tag/favorites/">favorites</a> ( 1 ) </li> <li> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/tag/trademarks/">trademarks</a> ( 1 ) </li> </ul> </li> </ul> <div class="clear"></div> </div> <!-- // sidebar --> <div class="sleeve_main"> <div id="main"> <h2>Tagged: repository <span class="controls"> <a href="#" id="togglecomments"> Toggle Comment Threads</a> | <a href="#directions" id="directions-keyboard">Keyboard Shortcuts</a> </span> </h2> <ul id="postlist"> <li id="prologue-80" class="post-80 post type-post status-publish format-standard hentry category-tutorials tag-directory tag-plugin tag-readme tag-repository tag-svn"> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/author/otto42/" title="Posts by Samuel Wood (Otto) ( @otto42 )" class="post-avatar"> <img alt="" src="https://web.archive.org/web/20130126204257im_/http://0.gravatar.com/avatar/0994d5e2e158a24ba8017c2525d78263?s=48&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D48&r=G" class="avatar avatar-48 photo" height="48" width="48"/> </a> <h4> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/author/otto42/" title="Posts by Samuel Wood (Otto) ( @otto42 )">Samuel Wood (Otto)</a> <span class="meta"> <abbr title="2012-06-09T18:12:01Z">6:12 pm <em>on</em> June 9, 2012</abbr> <span class="actions"> <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/" class="thepermalink" title="Permalink">Permalink</a> | <a rel="nofollow" title="Reply" class="comment-reply-link" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#respond" onclick="return addComment.moveForm("comments-80", "0", "respond", "80")">Reply</a> </span> <span class="tags"> <br/>Tags: <a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/tag/directory/" rel="tag">directory ( 2 )</a>, plugin, readme, repository, svn </span> </span> </h4> <div id="content-80" class="postcontent"> <h2><a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/">The Plugins directory and readme.txt files </a></h2><p>Every once in a while, somebody pings me to say that their plugin isn’t showing up properly in the directory. Almost always it’s a problem with the plugin itself having incorrect information somehow. So I thought I’d do a quick post to explain some aspects of the plugin directory, and explain some of the more obvious stuff which a lot of people miss.</p> <h3>Layout</h3> <p>First, let’s briefly go over the layout of your plugin in the SVN repository. There’s three directories created by default, and an optional fourth one that you can create yourself.</p> <p><strong>Trunk</strong>: The /trunk directory is where your plugin code should live. The trunk can be considered to be the latest and greatest code. It’s the development version. Hopefully, the code in trunk should always be working code, but it may be buggy from time to time because it’s not necessarily the “stable” version. For simple plugins, the trunk may be the only version of the code that exists, and that’s fine as well.</p> <p><strong>Tags</strong>: The /tags directory is where you can put versions of the plugin at some specific point in time. Usually, you’ll use version numbers for the subdirectories here. So version 1.0 of the plugin would be in /tags/1.0, version 1.1 would be in /tags/1.1, and so forth. Again, not every plugin uses tags for versioning.</p> <p><strong>Branches</strong>: The /branches directory is a place that you can use to store branches of the plugin. Perhaps versions that are in development, or test code, etc. The WordPress.org system does not use the branches directory for anything at all, it’s considered to be strictly for developers to use as they need it.</p> <p><strong>Assets</strong>: The last optional directory doesn’t exist by default. You can create it yourself though. Just make a directory called “assets” next to those other three directories. Assets currently only has one use, which is to store the banner image to be displayed on your plugin page. We may use it for more things in the future. For now, you can just make an image, name it banner-772×250.png or jpg, and put it in there. Easy.</p> <h3>Parsing the plugin information</h3> <p>All plugins contain a main PHP file, and almost all plugins have a readme.txt file as well. The readme.txt file is intended to be written using a subset of markdown. The <a href="https://web.archive.org/web/20130126204257/http://wordpress.org/extend/plugins/about/readme.txt">example readme.txt</a> explains most everything pretty well, but there’s a few little tidbits that are worth pointing out.</p> <p>First is the concept of the “Stable Tag”. When WordPress.org parses the readme.txt, the very first thing it does is to look at the readme.txt in the /trunk directory, and then read that “Stable Tag” line. If the Stable Tag is missing, or is set to “trunk”, then the version of the plugin in /trunk is considered to be the stable version. If the Stable Tag is set to anything else, then it will go and look in /tags/ for the referenced version. So a Stable Tag of “1.2.3″ will make it look for /tags/1.2.3/.</p> <p><strong>Important bit</strong>: <em>Everything else is read from this new location</em>. If the Stable Tag is 1.2.3 and /tags/1.2.3/ exists, then nothing in trunk will be read any further for parsing by any part of the system. If you try to change the description of the plugin in /trunk/readme.txt, and Stable Tag isn’t trunk, then your changes won’t do anything on your plugin page. Everything comes from the readme.txt in the file being pointed to by the Stable Tag.</p> <p>Now let’s get to the plugin information itself. The WordPress.org directory reads the main plugin PHP file to get things like the Name of the plugin, the Plugin URI, and most importantly, the version number. On the plugin page, you’ll see the download button which reads “Download Version 1.2.3″ or similar. That version number comes from the plugin’s main PHP file.</p> <p>Some people get this versoning confused due to the tags system. The Stable Tag points to a subdirectory in the /tags directory. But the version of the plugin is not actually that, it’s the version that is listed in the plugin’s PHP file itself. If you have changed Stable Tag to 1.4 and the plugin still says 1.3 in the PHP file, then the version listed will be 1.3.</p> <h3>Readme.txt pieces that everybody gets wrong</h3> <p>Back to the readme.txt. There’s a line called “Contributors”. This line has always been expected to be WordPress.org usernames only. WordPress reads those, gets information about that user, gets their gravatar, name, etc, and makes the authors listing. If you put anything here that’s not a WordPress.org username, then it doesn’t look nearly as good. No picture, no link, just text.</p> <p>Other information in the readme.txt is read and used at various points on the Plugin listing. The Donate link makes a “Donate to this plugin” link in the sidebar. The “Requires at least” and “Tested up to” fields are used for compatibility checking, even on the WordPress installation itself. Few people get these wrong.</p> <p>One thing a lot of people get wrong is this line:<br/> “Here is a short description of the plugin. This should be no more than 150 characters. No markup here.”</p> <p>That bit is serious, and you should read it again. That one line people get wrong more often than anything else. That line of text is the single line description of the plugin which shows up in big letters right under the plugin name, and if it’s longer than 150 characters, it gets cutoff and makes your plugin page look silly.</p> <p>Markdown allows for easy linking in your readme.txt as well. Just write like this to link a word to a URL: </p> <pre>[WordPress](<a href="https://web.archive.org/web/20130126204257/http://wordpress.org/" rel="nofollow">http://wordpress.org</a>)</pre> <p>Videos can be put into your readme.txt too. A YouTube or Vimeo link on a line by itself will be auto-embedded. It’s also possible to embed videos hosted on VideoPress using the wpvideo shortcode. More on that topic here: <a href="https://web.archive.org/web/20130126204257/http://wpdevel.wordpress.com/2010/02/20/plugins-can-now-include-videos-in-their-readme-txt-files/" rel="nofollow">http://wpdevel.wordpress.com/2010/02/20/plugins-can-now-include-videos-in-their-readme-txt-files/</a></p> <h3>Summary</h3> <p>I don’t think I covered everything, but hopefully that will explain some of the more obscure features of the directory and how it works. If it reduces the number of times people send me the question “why didn’t my version change show up in the directory”, then I think this post was time well spent. <img src="https://web.archive.org/web/20130126204257im_/http://make.wordpress.org/plugins/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley"/> </p> </div> <div class="discussion" style="display: none"> <p> <a href="https://web.archive.org/web/20130126204257/http://www.wordpressfamily.com/wordpress-plugins-development/" rel="external nofollow" class="url">WORDPRESS PLUGINS DEVELOPMENT | WordPress Family</a>, <img alt="" src="https://web.archive.org/web/20130126204257im_/http://0.gravatar.com/avatar/c04243faa017bacc715ff4d22fad280c?s=16&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D16&r=G" class="avatar avatar-16 photo" height="16" width="16"/> <a href="https://web.archive.org/web/20130126204257/http://rodbuaiz.com/" rel="external nofollow" class="url">brasofilo</a>, <img alt="" src="https://web.archive.org/web/20130126204257im_/http://0.gravatar.com/avatar/0994d5e2e158a24ba8017c2525d78263?s=16&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D16&r=G" class="avatar avatar-16 photo" height="16" width="16"/> <a href="https://web.archive.org/web/20130126204257/http://profiles.wordpress.org/otto42/" rel="external nofollow" class="url">Otto</a>, and 5 others are discussing. <a href="#" class="show-comments">Toggle Comments</a> </p> </div> <div class="bottom-of-entry"> </div> <ul id="comments-80" class="commentlist inlinecomments"> <li id="comment-375" class="comment byuser comment-author-netweblogic even thread-even depth-1"> <img alt="" src="https://web.archive.org/web/20130126204257im_/http://1.gravatar.com/avatar/32b1b817990a4fe40d4d1561517d095a?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/> <h4> <a href="https://web.archive.org/web/20130126204257/http://profiles.wordpress.org/users/netweblogic/" rel="external nofollow" class="url">Marcus</a> <span class="meta"> <abbr title="2012-06-10T07:32:15Z">7:32 am <em>on</em> June 10, 2012</abbr> <span class="actions"> <a class="thepermalink" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#comment-375" title="Permalink">Permalink</a> | <a rel="nofollow" class="comment-reply-link" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#respond" title="Reply" onclick="return addComment.moveForm("commentcontent-375", "375", "respond", "80")">Reply</a> </span> </span> </h4> <div id="commentcontent-375" class="commentcontent"><p>I must admit, I’ve made one or two of these mistakes starting off <img src="https://web.archive.org/web/20130126204257im_/http://make.wordpress.org/plugins/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley"/> </p> <p>Useful article, it would go great linked somewhere in the developer center, as I’m sure that’s where people starting would look first.</p> </div> </li> <li id="comment-1712" class="comment odd alt thread-odd thread-alt depth-1"> <img alt="" src="https://web.archive.org/web/20130126204257im_/http://1.gravatar.com/avatar/90d92d1eebb65d4ab94a290d43bdc84c?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/> <h4> <a href="https://web.archive.org/web/20130126204257/http://www.cybersprocket.com/" rel="external nofollow" class="url">Lance Cleveland</a> <span class="meta"> <abbr title="2012-07-12T14:37:47Z">2:37 pm <em>on</em> July 12, 2012</abbr> <span class="actions"> <a class="thepermalink" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#comment-1712" title="Permalink">Permalink</a> | <a rel="nofollow" class="comment-reply-link" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#respond" title="Reply" onclick="return addComment.moveForm("commentcontent-1712", "1712", "respond", "80")">Reply</a> </span> </span> </h4> <div id="commentcontent-1712" class="commentcontent"><p>Don’t forget about the new “high definition” banners for the header image. If memory serves this is twice the resolution of the standard banner in the assets directory at 1444×500.</p> </div> <ul class="children"> <li id="comment-1713" class="comment byuser comment-author-otto42 bypostauthor even depth-2"> <img alt="" src="https://web.archive.org/web/20130126204257im_/http://0.gravatar.com/avatar/0994d5e2e158a24ba8017c2525d78263?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/> <h4> <a href="https://web.archive.org/web/20130126204257/http://profiles.wordpress.org/otto42/" rel="external nofollow" class="url">Otto</a> <span class="meta"> <abbr title="2012-07-12T14:39:05Z">2:39 pm <em>on</em> July 12, 2012</abbr> <span class="actions"> <a class="thepermalink" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#comment-1713" title="Permalink">Permalink</a> | <a rel="nofollow" class="comment-reply-link" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#respond" title="Reply" onclick="return addComment.moveForm("commentcontent-1713", "1713", "respond", "80")">Reply</a> </span> </span> </h4> <div id="commentcontent-1713" class="commentcontent"><p>It’s 1544×500, and I created that post (and code) after I wrote this post.</p> <p><a href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/core/2012/07/04/fun-with-high-dpi-displays/" rel="nofollow">http://make.wordpress.org/core/2012/07/04/fun-with-high-dpi-displays/</a></p> </div> <ul class="children"> <li id="comment-1718" class="comment odd alt depth-3"> <img alt="" src="https://web.archive.org/web/20130126204257im_/http://1.gravatar.com/avatar/90d92d1eebb65d4ab94a290d43bdc84c?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/> <h4> <a href="https://web.archive.org/web/20130126204257/http://www.cybersprocket.com/" rel="external nofollow" class="url">Lance Cleveland</a> <span class="meta"> <abbr title="2012-07-12T16:02:37Z">4:02 pm <em>on</em> July 12, 2012</abbr> <span class="actions"> <a class="thepermalink" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#comment-1718" title="Permalink">Permalink</a> | <a rel="nofollow" class="comment-reply-link" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#respond" title="Reply" onclick="return addComment.moveForm("commentcontent-1718", "1718", "respond", "80")">Reply</a> </span> </span> </h4> <div id="commentcontent-1718" class="commentcontent"><p>I figured that is what happened, just thought it would be good to have a “note” (comment) so future readers would know it existed. Thanks for the clarification as well. I couldn’t find the original notification about the resolution. I thought 1444 looked odd. <img src="https://web.archive.org/web/20130126204257im_/http://make.wordpress.org/plugins/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley"/> </p> </div> </li> </ul> </li> </ul> </li> <li id="comment-2556" class="comment byuser comment-author-mikeschinkel even thread-even depth-1"> <img alt="" src="https://web.archive.org/web/20130126204257im_/http://0.gravatar.com/avatar/81df87e0d3e269d6fa6a17c6914fd656?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/> <h4> <a href="https://web.archive.org/web/20130126204257/http://profiles.wordpress.org/users/MikeSchinkel/" rel="external nofollow" class="url">Mike Schinkel</a> <span class="meta"> <abbr title="2012-08-03T19:16:00Z">7:16 pm <em>on</em> August 3, 2012</abbr> <span class="actions"> <a class="thepermalink" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#comment-2556" title="Permalink">Permalink</a> | <a rel="nofollow" class="comment-reply-link" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#respond" title="Reply" onclick="return addComment.moveForm("commentcontent-2556", "2556", "respond", "80")">Reply</a> </span> </span> </h4> <div id="commentcontent-2556" class="commentcontent"><p>Just replying so I can get subscribed to this blog (might be another way, but can’t figure out how.)</p> </div> <ul class="children"> <li id="comment-2557" class="comment byuser comment-author-otto42 bypostauthor odd alt depth-2"> <img alt="" src="https://web.archive.org/web/20130126204257im_/http://0.gravatar.com/avatar/0994d5e2e158a24ba8017c2525d78263?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/> <h4> <a href="https://web.archive.org/web/20130126204257/http://profiles.wordpress.org/otto42/" rel="external nofollow" class="url">Otto</a> <span class="meta"> <abbr title="2012-08-03T19:40:26Z">7:40 pm <em>on</em> August 3, 2012</abbr> <span class="actions"> <a class="thepermalink" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#comment-2557" title="Permalink">Permalink</a> | <a rel="nofollow" class="comment-reply-link" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#respond" title="Reply" onclick="return addComment.moveForm("commentcontent-2557", "2557", "respond", "80")">Reply</a> </span> </span> </h4> <div id="commentcontent-2557" class="commentcontent"><p>Good point. I added the subscription widget to the sidebar.</p> </div> </li> </ul> </li> <li id="comment-3426" class="comment byuser comment-author-bradt even thread-odd thread-alt depth-1"> <img alt="" src="https://web.archive.org/web/20130126204257im_/http://0.gravatar.com/avatar/e538ca4cb34839d4e5e3ccf20c37c67b?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/> <h4> <a href="https://web.archive.org/web/20130126204257/http://bradt.ca/" rel="external nofollow" class="url">Brad Touesnard</a> <span class="meta"> <abbr title="2012-08-17T15:53:30Z">3:53 pm <em>on</em> August 17, 2012</abbr> <span class="actions"> <a class="thepermalink" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#comment-3426" title="Permalink">Permalink</a> | <a rel="nofollow" class="comment-reply-link" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#respond" title="Reply" onclick="return addComment.moveForm("commentcontent-3426", "3426", "respond", "80")">Reply</a> </span> </span> </h4> <div id="commentcontent-3426" class="commentcontent"><p>@Otto Would it be possible to start supporting the filename README.md in addition to readme.txt? A lot of developers host their plugins on GitHub as well but the filename readme.txt isn’t run through the markdown parser at GitHub. It would be nice if .org supported the README.md filename as well.</p> </div> <ul class="children"> <li id="comment-3429" class="comment byuser comment-author-otto42 bypostauthor odd alt depth-2"> <img alt="" src="https://web.archive.org/web/20130126204257im_/http://0.gravatar.com/avatar/0994d5e2e158a24ba8017c2525d78263?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/> <h4> <a href="https://web.archive.org/web/20130126204257/http://profiles.wordpress.org/otto42/" rel="external nofollow" class="url">Otto</a> <span class="meta"> <abbr title="2012-08-17T16:12:14Z">4:12 pm <em>on</em> August 17, 2012</abbr> <span class="actions"> <a class="thepermalink" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#comment-3429" title="Permalink">Permalink</a> | <a rel="nofollow" class="comment-reply-link" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#respond" title="Reply" onclick="return addComment.moveForm("commentcontent-3429", "3429", "respond", "80")">Reply</a> </span> </span> </h4> <div id="commentcontent-3429" class="commentcontent"><p>The flavor of markdown we support isn’t the same as theirs (ours is very limited), so you’d need to have separate files anyway. So, using a separate readme.txt file makes more sense.</p> </div> </li> </ul> </li> </li> </li> <li id="comment-18116" class="comment byuser comment-author-gwynethllewelyn even thread-even depth-1"> <img alt="" src="https://web.archive.org/web/20130126204257im_/http://1.gravatar.com/avatar/310abc9d873d41cede1258891d6bcaf3?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/> <h4> <a href="https://web.archive.org/web/20130126204257/http://buddypress.org/developers/gwynethllewelyn/" rel="external nofollow" class="url">Gwyneth Llewelyn</a> <span class="meta"> <abbr title="2012-11-18T22:12:49Z">10:12 pm <em>on</em> November 18, 2012</abbr> <span class="actions"> <a class="thepermalink" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#comment-18116" title="Permalink">Permalink</a> | <a rel="nofollow" class="comment-reply-link" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#respond" title="Reply" onclick="return addComment.moveForm("commentcontent-18116", "18116", "respond", "80")">Reply</a> </span> </span> </h4> <div id="commentcontent-18116" class="commentcontent"><p>Ok, I’m a bit confused now.</p> <p>“If the Stable Tag is 1.2.3 and /tags/1.2.3/ exists, then nothing in trunk will be read any further for parsing by any part of the system. If you try to change the description of the plugin in /trunk/readme.txt, and Stable Tag isn’t trunk, then your changes won’t do anything on your plugin page. Everything comes from the readme.txt in the file being pointed to by the Stable Tag.”</p> <p>So if I understand this correctly, the best way to deal with this scheme is simply to have a single file under /trunk/, which is readme.txt, and that needs only to hold 9-10 lines or so with the headers — and just point to the “Stable Tag”? Then the *rest* of the readme.txt *which is under the tag, not trunk* will be read & parsed instead? I don’t need to have a full copy of readme.txt both under /trunk/ *and* /tags/X.Y.Z/ ?</p> <p>You see, I hate unnecessary file duplication <img src="https://web.archive.org/web/20130126204257im_/http://make.wordpress.org/plugins/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley"/> I love the idea of having a super-small, 9-line only, readme.txt file under /trunk/ which just points to the correct place. Also, it makes this far easier to revert to earlier versions in case something goes seriously wrong!</p> <p>Sorry if all of this sounds incredible obvious to you seasoned plugin developers <img src="https://web.archive.org/web/20130126204257im_/http://make.wordpress.org/plugins/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley"/> </p> </div> <ul class="children"> <li id="comment-18134" class="comment byuser comment-author-gwynethllewelyn odd alt depth-2"> <img alt="" src="https://web.archive.org/web/20130126204257im_/http://1.gravatar.com/avatar/310abc9d873d41cede1258891d6bcaf3?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/> <h4> <a href="https://web.archive.org/web/20130126204257/http://buddypress.org/developers/gwynethllewelyn/" rel="external nofollow" class="url">Gwyneth Llewelyn</a> <span class="meta"> <abbr title="2012-11-18T22:44:33Z">10:44 pm <em>on</em> November 18, 2012</abbr> <span class="actions"> <a class="thepermalink" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#comment-18134" title="Permalink">Permalink</a> | <a rel="nofollow" class="comment-reply-link" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#respond" title="Reply" onclick="return addComment.moveForm("commentcontent-18134", "18134", "respond", "80")">Reply</a> </span> </span> </h4> <div id="commentcontent-18134" class="commentcontent"><p>Maybe all that’s needed on trunk/readme.txt is 2 lines after all:</p> <p>=== Plugin Name ===<br/> Stable tag: X.Y.Z</p> <p>Is that right? The remaining readme.txt will come from tags/X.Y.Z instead? If so, this is just awesome!</p> </div> <ul class="children"> <li id="comment-18190" class="comment byuser comment-author-gwynethllewelyn even depth-3"> <img alt="" src="https://web.archive.org/web/20130126204257im_/http://1.gravatar.com/avatar/310abc9d873d41cede1258891d6bcaf3?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/> <h4> <a href="https://web.archive.org/web/20130126204257/http://buddypress.org/developers/gwynethllewelyn/" rel="external nofollow" class="url">Gwyneth Llewelyn</a> <span class="meta"> <abbr title="2012-11-19T01:20:24Z">1:20 am <em>on</em> November 19, 2012</abbr> <span class="actions"> <a class="thepermalink" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#comment-18190" title="Permalink">Permalink</a> | <a rel="nofollow" class="comment-reply-link" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#respond" title="Reply" onclick="return addComment.moveForm("commentcontent-18190", "18190", "respond", "80")">Reply</a> </span> </span> </h4> <div id="commentcontent-18190" class="commentcontent"><p>Seems to work exactly as I thought <img src="https://web.archive.org/web/20130126204257im_/http://make.wordpress.org/plugins/wp-includes/images/smilies/icon_smile.gif" alt=":-)" class="wp-smiley"/> </p> </div> </li> </ul> </li> <li id="comment-18256" class="comment byuser comment-author-otto42 bypostauthor odd alt depth-2"> <img alt="" src="https://web.archive.org/web/20130126204257im_/http://0.gravatar.com/avatar/0994d5e2e158a24ba8017c2525d78263?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/> <h4> <a href="https://web.archive.org/web/20130126204257/http://profiles.wordpress.org/otto42/" rel="external nofollow" class="url">Samuel Wood (Otto)</a> <span class="meta"> <abbr title="2012-11-19T04:38:53Z">4:38 am <em>on</em> November 19, 2012</abbr> <span class="actions"> <a class="thepermalink" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#comment-18256" title="Permalink">Permalink</a> | <a rel="nofollow" class="comment-reply-link" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#respond" title="Reply" onclick="return addComment.moveForm("commentcontent-18256", "18256", "respond", "80")">Reply</a> </span> </span> </h4> <div id="commentcontent-18256" class="commentcontent"><p>Yes, that works.</p> <p>No, you absolutely should not do it that way.</p> <p>There is a *convention* in place here. People expect trunk to contain the latest development code of your plugin. In other words, the latest and greatest code, unstable changes and all, belongs in trunk. The latest stable, versioned, tagged code, will be in a tags directory.</p> <p>The directory is based around this concept. There are beta-tester plugins which assume this to be true. Forget about “duplicated files”, do it the way everybody else does it so that you don’t mess up the friggin’ system. <img src="https://web.archive.org/web/20130126204257im_/http://make.wordpress.org/plugins/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley"/> </p> <p>Put your development code in trunk. Tag the ready-for-release versions of the code in the tags directory. This is the best way to manage things. Even repository systems such as git and github have the concept of a main trunk for development and tags for versioning. The goal isn’t to make things easier for you to manage, the goal is to make the code accessible to everybody else in a sane way.</p> </div> <ul class="children"> <li id="comment-18533" class="comment byuser comment-author-gwynethllewelyn even depth-3"> <img alt="" src="https://web.archive.org/web/20130126204257im_/http://1.gravatar.com/avatar/310abc9d873d41cede1258891d6bcaf3?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/> <h4> <a href="https://web.archive.org/web/20130126204257/http://buddypress.org/developers/gwynethllewelyn/" rel="external nofollow" class="url">Gwyneth Llewelyn</a> <span class="meta"> <abbr title="2012-11-19T16:42:48Z">4:42 pm <em>on</em> November 19, 2012</abbr> <span class="actions"> <a class="thepermalink" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#comment-18533" title="Permalink">Permalink</a> | <a rel="nofollow" class="comment-reply-link" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#respond" title="Reply" onclick="return addComment.moveForm("commentcontent-18533", "18533", "respond", "80")">Reply</a> </span> </span> </h4> <div id="commentcontent-18533" class="commentcontent"><p>Thanks for the clarification and I do apologise if I have understood you wrongly. Maybe you should clarify that duplication of everything continues to be mandatory, and not optional, to stick to conventions. Your article, read in a certain light, seemed to convey the idea that the convention was changed exactly for the benefit of keeping things simple.</p> <p>I’m not here to discuss what is better and what is not — I’ve just asked the question on how to do things <em>from now on</em> because the article lead to believe me that the convention had <em>changed</em>, or, if it hadn’t, that “beginners were always making mistakes and can do things in much simpler ways if they understand the directory structure better”. And I appreciate your answer: no, nothing has changed.</p> <p>“The goal isn’t to make things easier for you to manage”. Why not? <a href="https://web.archive.org/web/20130126204257/http://en.wikipedia.org/wiki/KISS_principle" rel="nofollow">KISS</a> is always a good philosophy, IMHO.</p> </div> <ul class="children"> <li id="comment-18541" class="comment byuser comment-author-otto42 bypostauthor odd alt depth-4"> <img alt="" src="https://web.archive.org/web/20130126204257im_/http://0.gravatar.com/avatar/0994d5e2e158a24ba8017c2525d78263?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/> <h4> <a href="https://web.archive.org/web/20130126204257/http://profiles.wordpress.org/otto42/" rel="external nofollow" class="url">Samuel Wood (Otto)</a> <span class="meta"> <abbr title="2012-11-19T16:59:47Z">4:59 pm <em>on</em> November 19, 2012</abbr> <span class="actions"> <a class="thepermalink" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#comment-18541" title="Permalink">Permalink</a> | <a rel="nofollow" class="comment-reply-link" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#respond" title="Reply" onclick="return addComment.moveForm("commentcontent-18541", "18541", "respond", "80")">Reply</a> </span> </span> </h4> <div id="commentcontent-18541" class="commentcontent"><p>It’s not really duplication though. SVN doesn’t store files that way, it really just stores changesets. The trunk/tags/branches convention is SVN’s, not ours. You can tag things using an svn copy operation, and that’s not making new files in svn, just marking copies of the files at a specific point in time.</p> <p>The Stable Tag and readme.txt stuff is indeed ours, simply for the purpose of keeping things in the directory sane.</p> </div> </li> </ul> </li> </ul> </li> </ul> </li> <li id="comment-25597" class="comment byuser comment-author-brasofilo even thread-odd thread-alt depth-1"> <img alt="" src="https://web.archive.org/web/20130126204257im_/http://0.gravatar.com/avatar/c04243faa017bacc715ff4d22fad280c?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/> <h4> <a href="https://web.archive.org/web/20130126204257/http://rodbuaiz.com/" rel="external nofollow" class="url">brasofilo</a> <span class="meta"> <abbr title="2012-12-18T14:08:18Z">2:08 pm <em>on</em> December 18, 2012</abbr> <span class="actions"> <a class="thepermalink" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#comment-25597" title="Permalink">Permalink</a> | <a rel="nofollow" class="comment-reply-link" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#respond" title="Reply" onclick="return addComment.moveForm("commentcontent-25597", "25597", "respond", "80")">Reply</a> </span> </span> </h4> <div id="commentcontent-25597" class="commentcontent"><p>Finally I got the /tags/ concept and am correcting a wrongful use of the “Stable Tag” (I had it declared, but the version was not present in the tags folder), although the system was kind enough to make it work.</p> <p>Now, I’m looking for articles on how to use the /trunk/ when developing a new version of the plugin.<br/> I mean, is it possible to install and update from there?</p> </div> <ul class="children"> <li id="comment-25620" class="comment byuser comment-author-otto42 bypostauthor odd alt depth-2"> <img alt="" src="https://web.archive.org/web/20130126204257im_/http://0.gravatar.com/avatar/0994d5e2e158a24ba8017c2525d78263?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/> <h4> <a href="https://web.archive.org/web/20130126204257/http://profiles.wordpress.org/otto42/" rel="external nofollow" class="url">Samuel Wood (Otto)</a> <span class="meta"> <abbr title="2012-12-18T17:56:46Z">5:56 pm <em>on</em> December 18, 2012</abbr> <span class="actions"> <a class="thepermalink" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#comment-25620" title="Permalink">Permalink</a> | <a rel="nofollow" class="comment-reply-link" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#respond" title="Reply" onclick="return addComment.moveForm("commentcontent-25620", "25620", "respond", "80")">Reply</a> </span> </span> </h4> <div id="commentcontent-25620" class="commentcontent"><p>Trunk should be the “beta” version, and have its version numbers indicating such. So if my Stable Tag was like 1.0, and I had a /tags/1.0 directory, then I could make trunk’s version into 1.1-beta or something like that, and make all the changes I liked, then when it was ready for release, change it to 1.1 and tag it and update the Stable Tag field in the readme.txt to point to the new one.</p> <p>If you use this sort of structure, with trunk containing the latest beta code, then you can easily use a plugin like <a href="https://web.archive.org/web/20130126204257/http://wordpress.org/extend/plugins/plugin-beta-tester/" rel="nofollow">http://wordpress.org/extend/plugins/plugin-beta-tester/</a> to update to that beta version on a site.</p> </div> <ul class="children"> <li id="comment-25632" class="comment byuser comment-author-brasofilo even depth-3"> <img alt="" src="https://web.archive.org/web/20130126204257im_/http://0.gravatar.com/avatar/c04243faa017bacc715ff4d22fad280c?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G" class="avatar avatar-32 photo" height="32" width="32"/> <h4> <a href="https://web.archive.org/web/20130126204257/http://rodbuaiz.com/" rel="external nofollow" class="url">brasofilo</a> <span class="meta"> <abbr title="2012-12-18T19:29:54Z">7:29 pm <em>on</em> December 18, 2012</abbr> <span class="actions"> <a class="thepermalink" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#comment-25632" title="Permalink">Permalink</a> | <a rel="nofollow" class="comment-reply-link" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/#respond" title="Reply" onclick="return addComment.moveForm("commentcontent-25632", "25632", "respond", "80")">Reply</a> </span> </span> </h4> <div id="commentcontent-25632" class="commentcontent"><p>Perfecto, Otto, gracias!</p> </div> </li> </ul> </li> </ul> </li> </li> </ul> <div class="respond-wrap" style="display: none; "> <div id="respond"> <h3 id="reply-title">Reply <small><a rel="nofollow" id="cancel-comment-reply-link" href="/web/20130126204257/http://make.wordpress.org/plugins/tag/repository/#respond" style="display:none;">Cancel reply</a></small></h3> <form action="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/wp-comments-post.php" method="post" id="commentform"> <p class="comment-notes"> Required fields are marked <span class="required">*</span></p> <p class="comment-form-author"><label for="author">Name <span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" aria-required="true"/></p> <p class="comment-form-email"><label for="email">Email <span class="required">*</span></label> <input id="email" name="email" type="text" value="" size="30" aria-required="true"/></p> <p class="comment-form-url"><label for="url">Website</label><input id="url" name="url" type="text" value="" size="30"/></p> <div class="form"><textarea id="comment" class="expand50-100" name="comment" cols="45" rows="3"></textarea></div> <label class="post-error" for="comment" id="commenttext_error"></label> <span class="progress spinner-comment-new"></span> <p class="form-submit"> <input name="submit" type="submit" id="comment-submit" value="Reply"/> <input type="hidden" name="comment_post_ID" value="80" id="comment_post_ID"/> <input type="hidden" name="comment_parent" id="comment_parent" value="0"/> </p> <p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="70709531ff"/></p><p class="comment-subscription-form"><input type="checkbox" name="subscribe_comments" id="subscribe_comments" value="subscribe" style="width: auto; -moz-appearance: checkbox; -webkit-appearance: checkbox;"/> <label class="subscribe-label" id="subscribe-label" for="subscribe_comments">Notify me of follow-up comments by email.</label></p><p class="comment-subscription-form"><input type="checkbox" name="subscribe_blog" id="subscribe_blog" value="subscribe" style="width: auto; -moz-appearance: checkbox; -webkit-appearance: checkbox;"/> <label class="subscribe-label" id="subscribe-blog-label" for="subscribe_blog">Notify me of new posts by email.</label></p> </form> </div><!-- #respond --> </div></li> </ul> <div class="navigation"> <p class="nav-older"></p> <p class="nav-newer"></p> </div> </div> <!-- main --> </div> <!-- sleeve --> <div class="clear"></div> </div> <!-- // wrapper --> <div id="notify"></div> <div id="help"> <dl class="directions"> <dt>c</dt><dd>compose new post</dd> <dt>j</dt><dd>next post/next comment</dd> <dt>k</dt> <dd>previous post/previous comment</dd> <dt>r</dt> <dd>reply</dd> <dt>e</dt> <dd>edit</dd> <dt>o</dt> <dd>show/hide comments</dd> <dt>t</dt> <dd>go to top</dd> <dt>l</dt> <dd>go to login</dd> <dt>h</dt> <dd>show/hide help</dd> <dt>shift + esc</dt> <dd>cancel</dd> </dl> </div> <div id="footer"> <div class="wrapper"> <p> <a href="https://web.archive.org/web/20130126204257/http://wordpress.org/about/privacy/">Privacy</a> | <a href="https://web.archive.org/web/20130126204257/http://wordpress.org/about/license/">License / GPLv2</a> See also: <a href="https://web.archive.org/web/20130126204257/http://wordpress.com/?ref=wporg-footer" title="Hassle-free WP hosting">Hosted WordPress.com</a> | <a href="https://web.archive.org/web/20130126204257/http://wordpress.tv/" title="Videos, tutorials, WordCamps">WordPress.TV Videos</a> | <a href="https://web.archive.org/web/20130126204257/http://central.wordcamp.org/" title="Find a WordPress event near your home">WordCamp Events</a> | <a href="https://web.archive.org/web/20130126204257/http://buddypress.org/" title="A set of plugins to transform your WordPress into a social network">BuddyPress Social Layer</a> | <a href="https://web.archive.org/web/20130126204257/http://bbpress.org/" title="Fast, slick forums built on WordPress">bbPress Forums</a> | <a href="https://web.archive.org/web/20130126204257/http://jobs.wordpress.net/" title="Find or post WordPress jobs">WP Jobs</a> | <a href="https://web.archive.org/web/20130126204257/http://ma.tt/" title="Co-founder of WordPress, an example of what WordPress can do">Matt</a> </p> <br/> <iframe src="https://web.archive.org/web/20130126204257if_/http://www.facebook.com/plugins/like.php?app_id=121415197926116&href=http%3A%2F%2Fwww.facebook.com%2Fwordpress&send=false&layout=button_count&width=150&show_faces=false&action=like&colorscheme=light&font=lucida+grande&height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:150px; height:21px;" allowtransparency="true"></iframe> <!-- <div class="g-plusone" data-size="medium" data-href="https://plus.google.com/107188080561309681193"></div> --> <iframe allowtransparency="true" frameborder="0" scrolling="no" src="https://web.archive.org/web/20130126204257if_/http://platform.twitter.com/widgets/follow_button.html?screen_name=WordPress&show_count=false" style="width:150px; height:20px;"></iframe> <h6>Code is Poetry</h6> </div> </div> <script type="text/javascript">_qoptions={qacct:"p-18-mFEk4J448M"};</script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://edge.quantserve.com/quant.js"></script> <noscript><img src="https://web.archive.org/web/20130126204257im_/http://pixel.quantserve.com/pixel/p-18-mFEk4J448M.gif" style="display: none;" border="0" height="1" width="1" alt=""/></noscript> <!-- 125 queries. 0.663 seconds. --> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://s.gravatar.com/js/gprofiles.js"></script> <script type="text/javascript"> (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://web.archive.org/web/20130126204257/https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })(); </script> <script type="text/javascript"> (function($){ $(document).ready(function() { $('#footer a').click(function() { if (this.href.indexOf('wordpress.org') == -1 && this.href.indexOf('http') == 0) { recordOutboundLink(this, 'Outbound Links', this.href); return false; } }); }); })(jQuery); </script> </body> </html> <div style="display:none"> <div class="grofile-hash-map-69b0de85716398ca88ec4c7f04bb2d29"> </div> <div class="grofile-hash-map-5af525fba95b93c4e0c8a03b639c9486"> </div> <div class="grofile-hash-map-b8677d2f3fe258d78962262f7a23dc0c"> </div> <div class="grofile-hash-map-0994d5e2e158a24ba8017c2525d78263"> </div> <div class="grofile-hash-map-c04243faa017bacc715ff4d22fad280c"> </div> <div class="grofile-hash-map-0994d5e2e158a24ba8017c2525d78263"> </div> <div class="grofile-hash-map-310abc9d873d41cede1258891d6bcaf3"> </div> <div class="grofile-hash-map-e538ca4cb34839d4e5e3ccf20c37c67b"> </div> <div class="grofile-hash-map-81df87e0d3e269d6fa6a17c6914fd656"> </div> <div class="grofile-hash-map-90d92d1eebb65d4ab94a290d43bdc84c"> </div> <div class="grofile-hash-map-32b1b817990a4fe40d4d1561517d095a"> </div> </div> <script type="text/javascript"> /* <![CDATA[ */ jQuery( document ).ready( function( $ ) { function hideComments() { $('.commentlist').hide(); $('.discussion').show(); } function showComments() { $('.commentlist').show(); $('.discussion').hide(); } $( "#togglecomments" ).click( function() { if ( $( '.commentlist' ).css( 'display' ) == 'none' ) { showComments(); } else { hideComments(); } return false; }); }); /* ]]> */ </script><link rel="stylesheet" id="notes-admin-bar-rest-css" href="https://web.archive.org/web/20130126204257cs_/http://s0.wp.com/wp-content/mu-plugins/notes/admin-bar-rest.css?ver=2.0.2-201304" type="text/css" media="all"/> <link rel="stylesheet" id="noticons-css" href="https://web.archive.org/web/20130126204257cs_/http://s0.wp.com/i/noticons/noticons.css?ver=2.0.2-201304" type="text/css" media="all"/> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://make.wordpress.org/plugins/wp-includes/js/admin-bar.min.js?ver=3.6-alpha-23334"></script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://s0.wp.com/wp-content/js/devicepx-jetpack.js?ver=201304"></script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://s.gravatar.com/js/gprofiles.js?ver=2013Janaa"></script> <script type="text/javascript"> /* <![CDATA[ */ var WPGroHo = {"my_hash":""}; /* ]]> */ </script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://make.wordpress.org/plugins/wp-content/plugins/jetpack/modules/wpgroho.js?ver=3.6-alpha-23334"></script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://s1.wp.com/wp-content/js/mustache.js?ver=2.0.2-201304"></script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://make.wordpress.org/plugins/wp-includes/js/underscore.min.js?ver=1.4.1"></script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://make.wordpress.org/plugins/wp-includes/js/backbone.min.js?ver=0.9.2"></script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://s0.wp.com/wp-content/js/postmessage.js?ver=2.0.2-201304"></script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://make.wordpress.org/plugins/wp-content/plugins/jetpack/_inc/spin.js?ver=1.2.4"></script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://make.wordpress.org/plugins/wp-content/plugins/jetpack/_inc/jquery.spin.js?ver=3.6-alpha-23334"></script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://s0.wp.com/wp-content/mu-plugins/notes/notes-rest-common.js?ver=2.0.2-201304"></script> <script type="text/javascript" src="https://web.archive.org/web/20130126204257js_/http://s0.wp.com/wp-content/mu-plugins/notes/admin-bar-rest.js?ver=2.0.2-201304"></script> <script src="https://web.archive.org/web/20130126204257js_/http://stats.wordpress.com/e-201304.js" type="text/javascript"></script> <script type="text/javascript"> st_go({v:'ext',j:'1:2.0.2',blog:'31760039',post:'0'}); var load_cmc = function(){linktracker_init(31760039,0,2);}; if ( typeof addLoadEvent != 'undefined' ) addLoadEvent(load_cmc); else load_cmc(); </script> <div id="wpadminbar" class="nojq nojs" role="navigation"> <a class="screen-reader-shortcut" href="#wp-toolbar" tabindex="1">Skip to toolbar</a> <div class="quicklinks" id="wp-toolbar" role="navigation" aria-label="Top navigation toolbar." tabindex="0"> <ul id="wp-admin-bar-root-default" class="ab-top-menu"> <li id="wp-admin-bar-wp-logo" class="menupop"><a class="ab-item" aria-haspopup="true" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/wp-admin/about.php" title="About WordPress"><span class="ab-icon"></span></a><div class="ab-sub-wrapper"><ul id="wp-admin-bar-wp-logo-external" class="ab-sub-secondary ab-submenu"> <li id="wp-admin-bar-wporg"><a class="ab-item" href="https://web.archive.org/web/20130126204257/http://wordpress.org/">WordPress.org</a> </li> <li id="wp-admin-bar-documentation"><a class="ab-item" href="https://web.archive.org/web/20130126204257/http://codex.wordpress.org/">Documentation</a> </li> <li id="wp-admin-bar-support-forums"><a class="ab-item" href="https://web.archive.org/web/20130126204257/http://wordpress.org/support/">Support Forums</a> </li> <li id="wp-admin-bar-feedback"><a class="ab-item" href="https://web.archive.org/web/20130126204257/http://wordpress.org/support/forum/requests-and-feedback">Feedback</a> </li></ul></div> </li></ul><ul id="wp-admin-bar-top-secondary" class="ab-top-secondary ab-top-menu"> <li id="wp-admin-bar-search" class="admin-bar-search"><div class="ab-item ab-empty-item" tabindex="-1"><form action="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/" method="get" id="adminbarsearch"><input class="adminbar-input" name="s" id="adminbar-search" type="text" value="" maxlength="150"/><input type="submit" class="adminbar-button" value="Search"/></form></div> </li> <li id="wp-admin-bar-log-in"><a class="ab-item" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/wp-login.php">Log In</a> </li> <li id="wp-admin-bar-notes" class="menupop"><div class="ab-item ab-empty-item"><span id="wpnt-notes-unread-count" class="wpnt-loading wpn-read"> <span class="noticon noticon-notification"/></span> </span></div><div id="wpnt-notes-panel" style="display:none"><div class="wpnt-notes-panel-header"><span class="wpnt-notes-header">Notifications</span><span class="wpnt-notes-panel-link"></span></div></div> </li></ul> </div> <a class="screen-reader-shortcut" href="https://web.archive.org/web/20130126204257/http://make.wordpress.org/plugins/wp-login.php?action=logout&_wpnonce=6b8c1aab52">Log Out</a> </div> </body> </html> <!-- FILE ARCHIVED ON 20:42:57 Jan 26, 2013 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 00:50:41 Nov 25, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.746 exclusion.robots: 0.034 exclusion.robots.policy: 0.019 esindex: 0.012 cdx.remote: 20.82 LoadShardBlock: 139.481 (3) PetaboxLoader3.datanode: 129.445 (4) PetaboxLoader3.resolve: 168.87 (2) load_resource: 201.124 -->