<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Digging into WordPress &#187; Plugins</title>
	<atom:link href="http://digwp.com/category/plugins/feed/" rel="self" type="application/rss+xml" />
	<link>http://digwp.com</link>
	<description>Take your WordPress skills to the next level.</description>
	<lastBuildDate>Thu, 09 Feb 2012 19:03:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>WordPress CMS Plugins</title>
		<link>http://digwp.com/2012/01/wordpress-cms-plugins/</link>
		<comments>http://digwp.com/2012/01/wordpress-cms-plugins/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 17:59:05 +0000</pubDate>
		<dc:creator>Jeff Starr</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=5607</guid>
		<description><![CDATA[To make room for new content for the DiW 3.3 update, we&#8217;re &#8220;excerpting&#8221; this section into its own blog post. Here you&#8217;ll find an extensive round-up of CMS plugins for WordPress. Includes CMS plugins for better admin functionality, user-role management, custom content display, e-commerce &#38; shopping carts, forums, newsletters, and more. Administration Tools These plugins [...]]]></description>
			<content:encoded><![CDATA[<p>To make room for new content for the <abbr title="Digging into WordPress">DiW</abbr> 3.3 update, we&#8217;re &#8220;excerpting&#8221; this section into its own blog post. Here you&#8217;ll find an extensive round-up of CMS plugins for WordPress. Includes CMS plugins for better admin functionality, user-role management, custom content display, e-commerce &amp; shopping carts, forums, newsletters, and more.</p>
<p><span id="more-5607"></span></p>
<h3>Administration Tools</h3>
<p>These plugins provide CMS-like functionality to the WordPress Admin area.</p>
<ul>
<li><a href="http://digwp.com/u/55">WP-CMS Post Control</a> &mdash; Provides complete control over the Write-Page and Write-Post areas of the WordPress Admin. Enables you to hide unwanted items, disable the Flash uploader, kill post revisions, and even add a personal message.</li>
<li><a href="http://digwp.com/u/56">WP-CMS</a> &mdash; Transforms the Admin area to focus more on page creation and less on post creation. Designed to simplify the whole process for your newbie clients. You can even disable the blog functionality entirely.</li>
<li><a href="http://digwp.com/u/57">Flutter</a> &mdash; Enables you to edit posts without leaving the post page and also provides custom write panels that enable further publishing functionality.</li>
<li><a href="http://digwp.com/u/58">Supple Forms</a> &mdash; Enables you to create custom write panels, as well as format and insert values into posts using shortcodes and snippets of HTML.</li>
<li><a href="http://digwp.com/u/59">Custom Write Panel</a> &mdash; Enables you to create additional write panels with customized input fields. Add textboxes, checkboxes, radio-buttons, dropdown menus, and more.</li>
<li><a href="http://digwp.com/u/79">Pods </a> &mdash; Comprehensive CMS functionality, enabling you to create, manage, and display custom content types. Features automatic pagination, public-form filtering, access control, menu editing, and more.</li>
</ul>
<h3>User Role Management</h3>
<ul>
<li><a href="http://digwp.com/u/145">Members</a> &mdash; Comprehensive user-, role-, and content-management plugin that was created to make WordPress a more powerful CMS. Provides more control over your blog with an extensive collection of component-based features.</li>
<li><a href="http://digwp.com/u/567">s2Member</a> &mdash; s2Member provides robust tools for setting up a PayPal-driven membership site, including secure members-only content with custom roles and capabilities.</li>
<li><a href="http://digwp.com/u/60">Role Scoper</a> &mdash; Provides you the ability to specify different permissions levels for different WordPress roles. Also provides options for implementing user groups.</li>
<li><a href="http://digwp.com/u/61">Disclose-Secret</a> &mdash; Enables you to hide specified posts from users unless they meet certain criteria.</li>
<li><a href="http://digwp.com/u/62">Page Restrict</a> &mdash; Enables you to restrict specified pages to logged-in users.</li>
</ul>
<h3>Ordering, Filtering, Limiting and Displaying Content</h3>
<ul>
<li><a href="http://digwp.com/u/65">AStickyPostOrderER</a> &mdash; Enables you to customize post-display order for category views, archive views, and even sitewide.</li>
<li><a href="http://digwp.com/u/66">Advanced Category Excluder</a> &mdash; Provides advanced content separation and category management for WordPress. Exclude any number of categories according to your needs. Also provides control over feeds and search results.</li>
<li><a href="http://digwp.com/u/519">Custom Post Limits</a> &mdash; Provides control over the number of posts that appear on the home page, in various archive views, and in search results.</li>
<li><a href="http://digwp.com/u/495">Custom Query String Reloaded</a> &mdash; Rework of the original plugin, CQS Reloaded controls the number of posts displayed on just about any type of page view, including archives, months, categories, home page, search, and many more. For more information on CQS Reloaded, check out the popout in section 5.1.4.</li>
</ul>
<h3>eCommerce and Shopping Carts</h3>
<ul>
<li><a href="http://digwp.com/u/69">eShop</a> &mdash; Provides shopping-cart functionality that includes customizable product listings, multiple product options, advanced payment options, basic statistics, and more.</li>
<li><a href="http://digwp.com/u/70">WP e-Commerce</a> &mdash; Provides an “elegant and easy to use fully featured shopping cart” that claims to be the “most complete and powerful Shopping Plugin you will find for WordPress.”</li>
<li><a href="http://digwp.com/u/71">YAK for WordPress</a> &mdash; Provides basic shopping-cart functionality that associates products with blog posts.
<li><a href="http://digwp.com/u/72">Quick Shop</a> &mdash; Adds a sidebar widget that displays cart contents to the user and enables easy item removal. Also enables you to easily add products to your posts and pages.</li>
<li><a href="http://digwp.com/u/598">Cart66 Lite</a> &mdash; Shopping cart plugin that enables you to sell digital and/or physical products with a host of useful options. Features include advanced shipping options, custom fields for products, customizable email receipts, Amazon S3 integration, and much more.</li>
</ul>
<h3>Email Mailing List and Newsletter Plugins</h3>
<ul>
<li><a href="http://digwp.com/u/74">WP-Campaign-Monitor</a> &mdash; Email newsletter and SMS functionality enabling users to send campaigns, track results, and manage subscribers. Even includes a plug-n-play sidebar widget.</li>
<li><a href="http://digwp.com/u/75">PHPList Form Integration</a> &mdash; Enables users to easily subscribe to your newsletter or RSS feed from any page on your blog. Designed to work with PHPList, an excellent open-source newsletter manager.
<li><a href="http://digwp.com/u/76">WordPress Double Opt-In Manager Widget</a> &mdash; Enables users to subscribe to your mailing list by way of a double opt-in method that includes the email form and a confirmation email.
<li><a href="http://digwp.com/u/466">MailChimp</a> &mdash; MailChimp is a third-party email newsletter sending service. They have an official plugin to help integrate with WordPress.</li>
</ul>
<h3>Miscellaneous CMS Plugins</h3>
<ul>
<li><a href="http://digwp.com/u/80">ProjectManager</a> &mdash; Manage any number of projects with recurrent datasets. Great for portrait systems, music and DVD collections, and just about anything else imaginable.</li>
<li><a href="http://digwp.com/u/81">WP-PostRatings</a> &mdash; Enables users to rate your post content. Highly customizable. One of the best.</li>
<li><a href="http://digwp.com/u/520">User Submitted Posts</a> &mdash; Enables visitors to submit posts and images from anywhere on your site. User-submitted posts optionally include tags, categories, post title, URL and more.</li>
</ul>
<h3>Using WordPress as a Forum</h3>
<p>Although forum functionality is not (yet) built into the WordPress core, implementing a forum on your site is easily accomplished with the help of these awesome plugins.</p>
<ul>
<li><a href="http://digwp.com/u/119">bbPress Forum</a> &mdash; bbPress is simple, fast, and elegant forum software from the same people who make WordPress. bbPress is focused on web standards, ease of use, ease of integration, and speed.</li>
<li><a href="http://digwp.com/u/521">Simple:Press Forum</a>, aka <em>Simple Forum</em> &mdash; A feature-rich forum plugin for WordPress that fully integrates into your WordPress-powered site. Fully customizable and includes plenty of skins and icons to get you started.</li>
</ul>
<h3>More Forum Plugins</h3>
<p>Here are two more useful forum plugins for WordPress, both include great features and look like great forum solutions.</p>
<ul>
<li><a href="http://digwp.com/u/472">Tal.ki Embeddable Forums</a></li>
<li><a href="http://digwp.com/u/473">Zingiri Forum</a></li>
</ul>
<h3>What else?</h3>
<p>Know of a sweet CMS-related plugin that needs mentioned? Shout it out in the comments to share with the community!</p>
<hr />
<p><small>© 2012 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2012/01/wordpress-cms-plugins/">Permalink</a> | <a href="http://digwp.com/2012/01/wordpress-cms-plugins/#comments">32 comments</a> | Add to <a href="http://del.icio.us/post?url=http://digwp.com/2012/01/wordpress-cms-plugins/&title=WordPress CMS Plugins">del.icio.us</a> | Post tags: <a href="http://digwp.com/tag/cms/" rel="tag">CMS</a>, <a href="http://digwp.com/tag/plugin/" rel="tag">plugin</a>, <a href="http://digwp.com/tag/tips/" rel="tag">tips</a>, <a href="http://digwp.com/tag/tools/" rel="tag">tools</a><br/></small></p>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2012/01/wordpress-cms-plugins/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>Plugins for SOPA/PIPA Blackout</title>
		<link>http://digwp.com/2012/01/plugins-for-sopa-pipa-blackout/</link>
		<comments>http://digwp.com/2012/01/plugins-for-sopa-pipa-blackout/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 20:53:25 +0000</pubDate>
		<dc:creator>Jeff Starr</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=5625</guid>
		<description><![CDATA[Get involved! Here is a list of stop-SOPA/PIPA plugins to help blackout your WordPress-powered site: SOPA Blackout Plugin &#8220;This plugin allows you to set SOPA blackout dates for your WordPress website, as well as a variety of options on who the anti-SOPA is shown too. You can have it shown instead of your site for [...]]]></description>
			<content:encoded><![CDATA[<p>Get involved! Here is a list of stop-SOPA/PIPA plugins to help blackout your WordPress-powered site:</p>
<p><span id="more-5625"></span></p>
<h3><a href="http://wordpress.org/extend/plugins/sopa-blackout-plugin/">SOPA Blackout Plugin</a></h3>
<p>&#8220;This plugin allows you to set SOPA blackout dates for your WordPress website, as well as a variety of options on who the anti-SOPA is shown too. You can have it shown instead of your site for any visitor, you can only show it the first time then let your visitors continue to the site, plus a lot more. This plugin is SEO friendly with temporary redirects being used.&#8221;</p>
<p><small>@ 8,516 downloads</small></p>
<h3><a href="http://wordpress.org/extend/plugins/sopa-strike/">SOPA Strike</a></h3>
<p>&#8220;SOPA Strike will automatically redirect all users of your blog to the http://sopastrike.com homepage on Wednesday, January 18th. It automatically adds your blog name and URL to a list of protestors which will be featured on the website.&#8221;</p>
<p><small>@ 7,425 downloads</small></p>
<h3><a href="http://wordpress.org/extend/plugins/sopa-blackout/">SOPA Blackout</a></h3>
<p>&#8220;On the Tuesday 24th January 2012, the US Senate will vote on the internet censorship bill.<br />
Whilst it is an American law, it has far reaching repurcusions for the web as a whole. Sites such as Reddit have said that on January 18th they are going to go dark between 8am and 8pm. This plugin will let you join the cause. On 18th January your site will display a customisable page. Search engine rankings will not be affected as the plugin sends a 503 status.&#8221;</p>
<p><small>@ 5,175 downloads</small></p>
<h3><a href="http://wordpress.org/extend/plugins/stop-sopa-ribbon/">Stop SOPA Ribbon</a></h3>
<p>&#8220;A black ribbon with the words &#8220;Stop SOPA&#8221; will be put on in the top right corner of your website, linking to the American Censorship website. Look at the screenshots to see how the ribbon looks. Check out the Help Stop SOPA/PIPA entry in the WordPress news too. Thank you for showing your support!&#8221;</p>
<p><small>@ 4,491 downloads</small></p>
<h3><a href="http://wordpress.org/extend/plugins/go-dark/">Go Dark</a></h3>
<p>&#8220;This plugin enables websites to &#8216;go dark&#8217; on January 18th with a customizable message and start/end times to protest SOPA/PIPA and Internet Censorship. It enables you to customize the message displayed on the front end, and optionally display either a stylized &#8216;Censored&#8217; sign or seal. When &#8216;dark&#8217; your website will return a 503 Service Temporarily Unavailable status code so as to not damage your search engine rankings, as well as specify the length of time for the visitor to try back after.&#8221;</p>
<p><small>@ 3,338 downloads</small></p>
<h3><a href="http://wordpress.org/extend/plugins/sopa-blackout-plugin-for-wordpress/">SOPA Blackout for WordPress</a></h3>
<p>&#8220;The SOPA Blackout for WordPress plugin allows you to easily show your support on SOPA Blackout Day on your blog. Inserts the SOPA Blackout JavaScript file to your blog on SOPA Blackout day.&#8221;</p>
<p><small>@ 2,656 downloads</small></p>
<h3><a href="http://wordpress.org/extend/plugins/simple-sopa-blackout/">Simple Stop Sopa</a></h3>
<p>&#8220;This Plugin will censor your site on January 18th between 8am and 8pm local time in protest of SOPA and PIPA. It has no admin settings and is super easy to use.&#8221;</p>
<p><small>@ 1,868 downloads</small></p>
<h3><a href="http://wordpress.org/extend/plugins/stop-sopa-widget/">Stop SOPA Widget</a></h3>
<p>&#8220;Defaults to show the Stop SOPA message on January 18th from 8am-8pm EST (1300-0100 UTC). Uses cookies so the message is only shown once Loaded asynchronously (won&#8217;t block the rendering of your page or cause another point of failure). You can manually trigger the modal before the 18th by adding the hash #stopsopa to the end of any URL on your site. Works across browsers (tested on everything from IE6 to iphone). Our hosted version is served from a CDN for speed/global delivery. Supports SSL. Hackable! Feel free to modify and update however you&#8217;d like.&#8221;</p>
<p><small>@ 1,606 downloads</small></p>
<h3><a href="http://wordpress.org/extend/plugins/stop-sopa/">Stop SOPA</a></h3>
<p>&#8220;The plugin adds small protest box to your website. By default it&#8217;s collapsed, but once clicked, the Stop SOPA box appears. On settings page you can specify the position of the protest box: either at the right bottom corner or at the middle right edge. You also can turn on/off &#8220;Blackout Day&#8221; option. In this case website will show black screen (click demo link below to view the screenshot) and return 503 status (no problems with search engines) on 18th January 2012, 8:00AM &#8211; 8:00PM (server time). By placing this box on our WordPress websites we are protesting against of SOPA.&#8221;</p>
<p><small>@ 1,321 downloads</small></p>
<h3><a href="http://wordpress.org/extend/plugins/censor-me/">CENSOR ME</a></h3>
<p>&#8220;This plugin is essentially an &#8220;off switch&#8221; for your website. When activated, the site is mostly blacked out by a banner for the americancensorship.org website. As the admin bar is left uncovered, all that is needed to reverse this is deactivating the plugin. Join many other WordPress sites in protesting censorship legislation being considered by the US Congress!&#8221;</p>
<p><small>@ 440 downloads</small></p>
<h3><a href="http://wordpress.org/extend/plugins/stop-sopa-by-zachary/">Stop SOPA by Zachary</a></h3>
<p>&#8220;The site will look dark and will have just one spot of light. This spot of light will move with the mouse cursor, and the message will revealed.&#8221;</p>
<p><small>@ 29 downloads</small></p>
<h3><a href="http://wordpress.org/extend/plugins/stop-sopa-and-pipa-plugin/">Stop SOPA and PIPA Plugin</a></h3>
<p>&#8220;an SEO Company developed this plugin which will schedule a temporary redirect for all your incoming WordPress blog traffic to the official Stop SOPA page, where people can cast their vote- Congress is about to pass internet censorship, even though the vast majority of Americans are opposed. We need to kill the bill &#8211; PIPA in the Senate and SOPA in the House &#8211; to protect our rights to free speech, privacy, and prosperity.&#8221;</p>
<p><small>@ 19 downloads</small></p>
<h3>More info..</h3>
<p>..is popping up everywhere! The Google Homepage is a great place to start, plus here are a couple of other resources:</p>
<ul>
<li><a href="http://sopablackout.org/">http://sopablackout.org/</a></li>
<li><a href="http://americancensorship.org/">http://americancensorship.org/</a></li>
<li><a href="http://wordpress.org/news/2012/01/help-stop-sopa-pipa/">http://wordpress.org/news/2012/01/help-stop-sopa-pipa/</a>
</ul>
<p>May the force be with us!</p>
<hr />
<p><small>© 2012 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2012/01/plugins-for-sopa-pipa-blackout/">Permalink</a> | <a href="http://digwp.com/2012/01/plugins-for-sopa-pipa-blackout/#comments">5 comments</a> | Add to <a href="http://del.icio.us/post?url=http://digwp.com/2012/01/plugins-for-sopa-pipa-blackout/&title=Plugins for SOPA/PIPA Blackout">del.icio.us</a> | Post tags: <a href="http://digwp.com/tag/news/" rel="tag">news</a>, <a href="http://digwp.com/tag/plugins-2/" rel="tag">plugins</a><br/></small></p>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2012/01/plugins-for-sopa-pipa-blackout/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Goodbye Admin Bar, Hello Toolbar</title>
		<link>http://digwp.com/2012/01/goodbye-admin-bar-hello-toolbar/</link>
		<comments>http://digwp.com/2012/01/goodbye-admin-bar-hello-toolbar/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 21:24:40 +0000</pubDate>
		<dc:creator>Jeff Starr</dc:creator>
				<category><![CDATA[Admin]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[admin-bar]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=5574</guid>
		<description><![CDATA[When the Admin Bar hit the streets in WordPress 3.1, people seemed to either love it or hate it. And rightly so, it was a significant change in the appearance of the WP Admin area, and if not disabled in your User Profile, the front-end of your site as well. Many tips, tricks and plugins [...]]]></description>
			<content:encoded><![CDATA[<p>When the Admin Bar hit the streets in WordPress 3.1, people seemed to <a title="Poll: Love or Hate the WordPress Admin Bar" href="http://digwp.com/2011/04/poll-love-hate-admin-bar/">either love it or hate it</a>. And rightly so, it was a significant change in the appearance of the WP Admin area, and if not disabled in your <em>User Profile</em>, the front-end of your site as well. Many <a title="Admin Bar Tricks" href="http://digwp.com/2011/04/admin-bar-tricks/">tips, tricks and plugins for customizing the Admin Bar</a> began appearing around the Web. And then just as the dust began to settle, BAM — the &#8220;Admin Bar&#8221; transforms into the &#8220;Toolbar&#8221; with the <a href="http://wordpress.org/news/2011/12/sonny/">WordPress 3.3 update</a>.</p>
<p><span id="more-5574"></span></p>
<p>The WordPress 3.3 update focused heavily on streamlining and optimizing the Admin experience. The Admin Bar of WP 3.1 was intended as the &#8220;first step toward a front-end editor&#8221;. The original Admin Bar was debated for several good reasons:</p>
<ul>
<li>It&#8217;s enabled on the front-end by default</li>
<li>Gobbles up too much vertical screen space</li>
<li>It&#8217;s redundant, all links available elsewhere</li>
<li>It&#8217;s not visually appealing in general</li>
</ul>
<p>Using the <a title="Admin Bar Tricks" href="http://digwp.com/2011/04/admin-bar-tricks/">many Admin Bar tricks</a> that became available around the Web, WordPress users dealt with the thing in their own way and moved on with their lives. Some use plugins, some custom snippets &amp; scripts, some just love it as-is. But now with the new 3.3 update, the <strong>big question</strong> is &#8220;what works and what doesn&#8217;t?&#8221; We&#8217;re glad you asked..</p>
<h3>Admin Bar is dead, long live the Toolbar</h3>
<p>If you&#8217;ve updated to <a href="http://codex.wordpress.org/Version_3.3">WP 3.3</a>, you&#8217;ve seen the smaller &#8220;Toolbar&#8221; tucked neat above the Admin area. The new <span style="text-decoration: line-through;">Admin Bar</span> Toolbar seems to address <em>some</em> of the main concerns about the old Admin Bar:</p>
<ul>
<li>No longer enabled on front-end by default</li>
<li>Uses less vertical screen space</li>
<li>Integrates the Admin header area, so no longer redundant</li>
<li>It looks a little better (in my opinion)</li>
</ul>
<p>For those who have not yet updated or have no idea what&#8217;s going on, here is a visual comparison of the old &#8220;Admin Bar&#8221; and the new &#8220;Toolbar&#8221;:</p>
<p><img src="http://digwp.com/wp-content/blog-images/wp-admin-bar-01.jpg" alt="[ The 'old' WP Admin Bar ]" /><br />
<small><em>Admin Bar: bigger, clunkier, and redundant</em></small></p>
<p><img src="http://digwp.com/wp-content/blog-images/wordpress-toolbar-01.jpg" alt="[ The 'new' WP Toolbar ]" /><br />
<small><em>Toolbar: smaller, simpler, and required</em></small></p>
<p>The new Toolbar certainly looks better, but <a title="WP Forum &gt; Hiding admin bar in WordPress 3.3" href="http://wordpress.org/support/topic/hiding-admin-bar-in-wordpress-33">concerns remain</a>. From what I&#8217;ve gathered, the main gripe is that the Toolbar is <em>mandatory</em>, and possibly still redundant, depending on site setup and configuration (plugins, networks, etc.). Is it really <em>mandatory</em>? That sounds silly to me, but seems to be the case:</p>
<p><img src="http://digwp.com/wp-content/blog-images/wp-admin-bar.jpg" alt="[ The 'old' WP Admin Bar ]" /><br />
<small><em>User Profile settings for the old Admin Bar: full control</em></small></p>
<p><img src="http://digwp.com/wp-content/blog-images/wordpress-toolbar.jpg" alt="[ The 'new' WP Toolbar ]" /><br />
<small><em>User Profile settings for the Toolbar: bamboozled! No option to disable for back-end</em></small></p>
<p>So yeah, <em>something changed</em>, so the question for the Admin Toolbar is “<strong>what works and what doesn&#8217;t?</strong>” Let&#8217;s dig in and see what&#8217;s up..</p>
<h3>Admin Bar changes, now WP Toolbar</h3>
<p>As <a href="http://wordpress.org/support/topic/hiding-admin-bar-in-wordpress-33#post-2495448">Ipstenu puts it</a>: &#8220;You don&#8217;t have to like it, but it&#8217;s here to stay.&#8221; So it&#8217;s time to look at things practically and get on with it. First of all, if you have a plugin or functions script that hides, removes, or customizes the Admin Bar, definitely investigate to see if everything is still working according to plan.</p>
<h4>What works..</h4>
<p>After some testing, we&#8217;ve seen the following <code>functions.php</code> snippets continue to work in WordPress version 3.3:</p>
<pre><code>// disable the admin bar (front end only) show_admin_bar(false); // disable the admin bar (front end only) add_filter('show_admin_bar', '__return_false');</code></pre>
<p>In WP 3.1, these functions hid the Admin Bar on <em>both sides</em> of the fence — front end &amp; back end. In WP 3.3+, these snippets will hide the Admin Toolbar <strong>only on the front-end</strong> of your site (the public side). Likewise, this snippet of CSS added to your theme&#8217;s <code>style.css</code> file <em>hides</em> the Toolbar on the <em>front-end</em>:</p>
<pre><code>/* hide the admin bar (front end only) */ #wpadminbar { display:none; }</code></pre>
<p>Keep in mind that, when using the CSS method, the Toolbar markup is still present in the source code, but will not be displayed in the browser.</p>
<p>Here is another useful snippet for disabling the Toolbar for lesser users:</p>
<pre><code>// show admin bar only for admins if (!current_user_can('manage_options')) { add_filter('show_admin_bar', '__return_false'); } // show admin bar only for admins and editors if (!current_user_can('edit_posts')) { add_filter('show_admin_bar', '__return_false'); }</code></pre>
<p>Note that this also only applies to Toolbar display on the front-end.</p>
<h4>What doesn&#8217;t work..</h4>
<p>Basically the <code>show_admin_bar()</code> function seems to work as it did before version 3.3, except that now the Toolbar is integral to the Admin area, so disabling it using the previous functions works only on the front-end of your site. So tricks like this stopped working:</p>
<pre></pre>
<p>If you&#8217;re running WP 3.1+ or 3.2+ (not 3.3+), then <code>show_admin_bar()</code> will continue to disable the Admin Bar on both front and back ends of WordPress.</p>
<h3>Admin Bar plugins</h3>
<p>In our <a href="http://digwp.com/">book</a>, we provide a list of plugins to help with customizing the 3.1 Admin Bar. Now working on the <a href="http://digwp.com/2011/12/poll-results-book-news-and-more/">DiW 3.3 update</a>, it&#8217;s time to check these plugins for compatibility with <strong>WordPress 3.3</strong>. Here are the results:</p>
<ul>
<li><a href="http://wordpress.org/extend/plugins/admin-bar/">Admin Bar Remover</a> — disables Toolbar on front-end only</li>
<li><a href="http://wordpress.org/extend/plugins/wp-admin-bar-removal/">Admin Bar Removal</a> — doesn&#8217;t work in WP 3.3+</li>
<li><a href="http://wordpress.org/extend/plugins/admin-bar-disabler/">Admin Bar Disabler</a> — disables Toolbar on front-end only</li>
<li><a href="http://wordpress.org/extend/plugins/admin-bar-minimiser/">Admin Bar Minimiser</a> — hides/minimizes Toolbar on both sides of WP 3.3, but looks weird because of the existing Admin design. Also, in the Admin the hover/toggle button is <a href="http://digwp.com/wp-content/blog-images/wordpress-toolbar-02.jpg">invisible</a>.</li>
<li><a href="http://wordpress.org/extend/plugins/global-admin-bar-hide-or-remove/">Global Hide/Remove Admin Bar Plugin</a> — removes the User Profile Toolbar settings and removes Toolbar on front-end only</li>
<li><a href="http://wordpress.org/extend/plugins/hide-admin-bar-search/">Hide Admin Bar Search</a> — there is no search bar in WP 3.3</li>
<li><a href="http://wordpress.org/extend/plugins/stick-admin-bar-to-bottom/">Stick Admin Bar To Bottom</a> — works great on both sides of WP 3.3</li>
<li><a href="http://wordpress.org/extend/plugins/wp-custom-admin-bar/">WP Custom Admin Bar</a> — didn&#8217;t seem to work..</li>
<li><a href="http://blog.ftwr.co.uk/archives/2011/01/05/always-show-admin-bar/">Always show admin bar</a> — works in 3.3 but applies only to front-end</li>
<li><strong>Update:</strong> <a href="http://wordpress.org/extend/plugins/ultimate-admin-bar/">Ultimate Admin Bar</a> — puts it <em>all</em> in the Toolbar to further optimize your workflow</li>
</ul>
<p>If you know of others, shout em out and I&#8217;ll update the post.</p>
<h3>To be continued..</h3>
<p>Without a doubt things will continue to change, and it&#8217;ll be fun watching as WordPress continues to evolve, Toolbar and all :)</p>
<hr />
<p><small>© 2012 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2012/01/goodbye-admin-bar-hello-toolbar/">Permalink</a> | <a href="http://digwp.com/2012/01/goodbye-admin-bar-hello-toolbar/#comments">16 comments</a> | Add to <a href="http://del.icio.us/post?url=http://digwp.com/2012/01/goodbye-admin-bar-hello-toolbar/&title=Goodbye Admin Bar, Hello Toolbar">del.icio.us</a> | Post tags: <a href="http://digwp.com/tag/admin/" rel="tag">Admin</a>, <a href="http://digwp.com/tag/admin-bar/" rel="tag">admin-bar</a>, <a href="http://digwp.com/tag/tips/" rel="tag">tips</a>, <a href="http://digwp.com/tag/tricks/" rel="tag">tricks</a><br/></small></p>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2012/01/goodbye-admin-bar-hello-toolbar/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>That&#8217;s Not Spam: False Positives and Ham</title>
		<link>http://digwp.com/2011/10/ham-hunter/</link>
		<comments>http://digwp.com/2011/10/ham-hunter/#comments</comments>
		<pubDate>Thu, 13 Oct 2011 17:14:23 +0000</pubDate>
		<dc:creator>Jeff Starr</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=5349</guid>
		<description><![CDATA[Everyone loves a good comment. Readers benefit from the shared information and authors appreciate the conversation and feedback. But you gotta keep the spam out. Akismet and other anti-spam plugins do an excellent job of automating the process, but it&#8217;s a good idea to watch out for false positives: legitimate comments marked as spam. Rescuing [...]]]></description>
			<content:encoded><![CDATA[<p>Everyone loves a good comment. Readers benefit from the shared information and authors appreciate the conversation and feedback. But <strong>you gotta keep the spam out</strong>. Akismet and other anti-spam plugins do an excellent job of automating the process, but it&#8217;s a good idea to <strong>watch out for false positives</strong>: legitimate comments marked as spam. Rescuing ham comments from the spam pile <em>promotes healthy comment threads</em> and improves the <em>quality and reputation</em> of your site. In this <abbr title="Digging into WordPress">DiW</abbr> post, we explain how WordPress &amp; Akismet deal with spam, discuss anti-spam strategy, and share some ham-saving tips and tricks.</p>
<p><span id="more-5349"></span></p>
<h3>Know thy comments</h3>
<p>In WordPress, there are three types of responses: comments, pingbacks, and trackbacks. The <strong>status</strong> of any given response is either:</p>
<ul>
<li><strong>approved</strong> &ndash; appearing on your site</li>
<li><strong>spammed</strong> &ndash; flagged as spam</li>
<li><strong>moderated</strong> &ndash; on hold for review</li>
<li><strong>in the trash</strong> &ndash; marked for deletion</li>
</ul>
<p>Theoretically, you&#8217;re going to know about <em>approved</em> comments that appear on your site. Likewise, you&#8217;ll have a chance to review any <em>moderated</em> comments, and nothing makes it to the <em>trash</em> by accident, so you know about those as well. What you don&#8217;t always know about are <em>spam</em> comments flagged as such by a plugin. Some of these are going to be ham, and they can be tricky to spot, especially as the number of spam comments begins to climb.</p>
<h3>Out of the box</h3>
<p>Out of the box, WordPress doesn&#8217;t flag any response as spam, <em>unless</em> you add some phrases to the built-in <a href="http://digwp.com/2010/02/stop-spammers-custom-blacklist/" title="Stop Spammers and Other Scumbags with a Custom Blacklist">comment blacklist</a>. Then, any comments matching any phrases in your blacklist are sent to the spam pile. So the key to preventing <em>blacklist ham</em> (<em>mmmm</em>..) is being absolutely sure that you want <em>nothing to do</em> with any comments mentioning &#8220;baby uggs&#8221; or who knows what.</p>
<h3>Akismet &amp; ham stats</h3>
<p>It&#8217;s easy to <a href="http://digwp.com/2009/11/dont-need-plugins-to-stop-comment-spam/" title="You Don't Need Any Plugins to Stop Comment Spam">stop spam without plugins</a>, but activate Akismet and suddenly you&#8217;ve got greater accuracy, better automation, and some <strong>incredible-looking statistics</strong>. Here are Akismet stats for <strong>false positives</strong> during the last few months here at <a href="http://digwp.com/">DigWP.com</a>:</p>
<p><img src="http://digwp.com/wp-content/blog-images/ham-rescue-01.gif" alt="[ Akismet false positives ]" /></p>
<p>That&#8217;s good news, but don&#8217;t be fooled &ndash; the number of false positives also depends on you, the user. Seeing few false positives is good news if you&#8217;re actively looking for them, otherwise <em>who knows</em> how many ham comments have slipped through. We check for false positives fairly regularly, so the low numbers are great, as is the decreasing number of spam comments:</p>
<p><img src="http://digwp.com/wp-content/blog-images/ham-rescue-02.gif" alt="[ WP Spam Statistics ]" /></p>
<p>This is also a good sign, but it&#8217;s still smart to keep an eye on things and rescue as much ham as possible. Back in the day, I really got into analyzing teh spam &ndash; digging through the spam bin, looking for patterns, checking sources, and rescuing ham comments from the abyss. It&#8217;s fun if you have the time, but these days it&#8217;s better to just <em>get it done</em>..</p>
<h3>Ham-rescue tips</h3>
<p>Now that we&#8217;ve seen how it works, here are some clues for cleaving through large slabs of spam quickly and effectively..</p>
<ul>
<li><strong>Comment text</strong> &ndash; legit comments tend to <em>look</em> real and stand out among the junk</li>
<li><strong>Gravatars</strong> &ndash; usually a good signal of quality, but spammers can haz gravatars too</li>
<li><strong>Link text</strong> &ndash; stupid link text is a <em>huge</em> giveaway, like &#8220;Baby Ugg Boots&#8221; or whatever</li>
<li><strong>Site URL</strong> &ndash; anything more than a domain or first-level subdirectory is probably spam</li>
<li><strong>Excessive links</strong> &ndash; legitimate comments rarely contain more than one or two links</li>
</ul>
<p>Here&#8217;s a screenshot illustrating some of these aspects of spam. Of course, there are plenty more examples waiting for you in Ye Olde Spam Bin!</p>
<p><img class="tweak-post-image" src="http://digwp.com/wp-content/blog-images/ham-rescue-03.gif" alt="[ Random spam comments ]" /><br /><small>Gravatars really stand out, but aren&#8217;t always the ham you&#8217;re looking for</small></p>
<p>Those are the big giveaways, but it&#8217;s generally easier/quicker to scan for <em>ham</em> than spam. That is, rather than looking for evidence of spam, scan for signs of <em>legitimacy</em> and <em>quality</em>. So a good example would be scanning for gravatars &ndash; you&#8217;re not trying to find the grey mystery man icon, you&#8217;re looking for something original, like the flag icon in the previous screenshot. With some repetition, the visual clues sort of gel together and the ham just sort of jumps out at you as sift through the pile.</p>
<h3>Wrapping it up..</h3>
<p>So what did we learn? Spam is the bad stuff, ham is the good stuff. WordPress doesn&#8217;t flag anything as spam by itself unless you add phrases to the comment blacklist. Add a great anti-spam plugin such as Akismet to the mix, and you&#8217;ve made your life easier by automating the process. But if you care about your readers and their feedback, you should periodically scan through your spam comments and rescue any false positives. With some repetition, checking your spam and saving ham comments takes only a few minutes, improves the quality of your site, and keeps commentators happy and ready for more.</p>
<hr />
<p><small>© 2011 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2011/10/ham-hunter/">Permalink</a> | <a href="http://digwp.com/2011/10/ham-hunter/#comments">5 comments</a> | Add to <a href="http://del.icio.us/post?url=http://digwp.com/2011/10/ham-hunter/&title=That&#8217;s Not Spam: False Positives and Ham">del.icio.us</a> | Post tags: <a href="http://digwp.com/tag/comments/" rel="tag">comments</a>, <a href="http://digwp.com/tag/spam/" rel="tag">spam</a>, <a href="http://digwp.com/tag/tips/" rel="tag">tips</a>, <a href="http://digwp.com/tag/tricks/" rel="tag">tricks</a><br/></small></p>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2011/10/ham-hunter/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>15 Anti-Spam Plugins for WordPress</title>
		<link>http://digwp.com/2011/04/anti-spam-plugins/</link>
		<comments>http://digwp.com/2011/04/anti-spam-plugins/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 18:43:01 +0000</pubDate>
		<dc:creator>Jeff Starr</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=4018</guid>
		<description><![CDATA[During the recent book update, we needed to make some room for the new WordPress-3.1 content. The book is already over 400 pages and growing. So we have to make some hard decisions about which content is useful but maybe not needed in the book. And, as useful as long lists of anti-spam plugins might [...]]]></description>
			<content:encoded><![CDATA[<p>During the <a href="http://digwp.com/2011/04/version-3-1/" title="Digging into WordPress 3.1 Update">recent book update</a>, we needed to make some room for the new WordPress-3.1 content. <a href="http://digwp.com/" title="Digging into WordPress">The book</a> is already over <em>400 pages</em> and growing. So we have to make some hard decisions about which content is useful but maybe not <em>needed</em> in the book. And, as useful as long lists of anti-spam plugins might be, moving them from the book to the blog seems like a good way to free up some room while keeping the information available. So without further ado, here is a quick list of <strong>15 anti-spam plugins</strong> to help you run a more user-friendly, hassle-free comment system.</p>
<p><span id="more-4018"></span></p>
<dl>
<dt><a href="http://digwp.com/u/95">Akismet</a></dt>
<dd>The <strong>best</strong> anti-spam plugin for WordPress. Bundled with WordPress, Akismet requires a registration key, but is easy to setup and provides excellent &#8220;set-it-and-forget-it&#8221; spam protection for WordPress.</dd>
<dt><a href="http://digwp.com/u/98">bcSpamBlock</a></dt>
<dd>JavaScript-based anti-spam plugin that uses JavaScript to filter out spam quietly and discretely. Users without JavaScript must prove their legitimacy via copy-&amp;-paste CAPTCHA exercise.</dd>
<dt><a href="http://digwp.com/u/563">Comment Spam Stopper</a></dt>
<dd>Blue Anvil&#8217;s anti-spam plugin is CAPTCHA-based and includes JavaScript validation to ensure that required fields in the comment form have been populated with data. To save time, the CAPTCHA field is not displayed when logged into Admin.</dd>
<dt><a href="http://digwp.com/u/108">Comment Spam Trap</a></dt>
<dd>Delivers a double death blow by adding a hidden spam field <em>and</em> an identical but <em>required</em> CAPTCHA field. This simple logic tricks mortal spam bots into revealing themselves and getting blocked. Also blocks trackback spam and optionally sends email notifications of anything it blocks.</dd>
<dt><a href="http://digwp.com/u/110">Cookies for Comments</a></dt>
<dd>Takes a different approach by adding a randomly generated stylesheet <abbr title="Uniform Resource Locator">URL</abbr> to your theme. When that URL is requested by the browser, a cookie is set that is required for the visitor/user to leave a comment. The plugin homepage is kinda thin, so scan the <a href="http://wordpress.org/tags/cookies-for-comments">WordPress Forum</a> to gain more insight about this remarkable plugin.</dd>
<dt><a href="http://digwp.com/u/107">Did You Pass Math?</a></dt>
<dd>Requires the user to solve a simple math problem, like &#8220;what&#8217;s 1+2?&#8221; If they can&#8217;t do it, they&#8217;re considered a bot and the comment is blocked. Simple yet effective anti-spam plugin with nothing to configure &ndash; just set and forget.</dd>
<dt><a href="http://digwp.com/u/197">JSSpamBlock</a></dt>
<dd>Uses JavaScript to filter out spam bots and their filthy comments. Legitimate users prove their identity by entering a given number. Provides fallback for non-JavaScript visitors.</dd>
<dt><a href="http://digwp.com/u/97">Peter&#8217;s Custom Anti-Spam</a></dt>
<dd>A <em>full-featured</em> CAPTCHA-based anti-spam plugin for WordPress. Requires all commentators to identify a random word before comment submission. Words are displayed as images and are completely customizable. Features: random font display, no cookies required, no JavaScript required, auto-generated audio for visually impaired users, selective blocking of trackbacks and pingbacks, and much more. First choice for full-flavored CAPTCHA plugin.</dd>
<dt><a href="http://digwp.com/u/99">reCAPTCHA Plugin</a></dt>
<dd>Displays words from old books that users must correctly interpret. Uses the popular reCAPTCHA service that is used on popular sites such as Twitter, Facebook, and StumbleUpon. Upside: use of this service helps to digitize old books. Downside: requires a key to work.</dd>
<dt><a href="http://digwp.com/u/105">Referrer Bouncer</a></dt>
<dd>Referrer Bouncer provides powerful protection against referrer spam. Easy to use and requires no configuration. As it says, &#8220;It is like the strong silent bouncer at your favorite club.&#8221; The instant cure for the referrer spam that ails you.</dd>
<dt><a href="http://digwp.com/u/104">Simple Trackback Validation</a></dt>
<dd>Solid protection against trackback spam. Trackback validation is done with an IP/referrer check and by checking the trackback page for your URL. Bottom line: an excellent solution for stopping trackback spam. Includes Settings Page for easy configuration, including the option to delete or spam blocked trackbacks.</dd>
<dt><a href="http://digwp.com/u/109">Spam Free</a></dt>
<dd>Spam Free is an &#8220;extremely powerful anti-spam plugin for WordPress that eliminates comment spam, including trackback and pingback spam.&#8221; Spam Free has many features, including no CAPTCHA required for site visitors, a spam-free contact form, and dashboard counter with blocked spam count.</dd>
<dt><a href="http://digwp.com/u/103">Word Verify</a></dt>
<dd>CAPTCHA-based anti-spam plugin that requires the user to enter a simple word in plain text (rather than an image). This makes it much easier for users to get it right the first time, while filtering out lots of automated spam. This plugin is probably best for smaller sites and blogs, as they aren&#8217;t generally targeted by the heavier OCR-capable spambots. Or so the thinking goes. Includes Settings Page for basic configuration.</dd>
<dt><a href="http://digwp.com/u/102">WP-HashCash</a></dt>
<dd>CAPTCHA-based anti-spam plugin that claims to be 100% effective at blocking all spam and no real comments. Also blocks <em>most</em> pingback &amp; trackback spam. Features Settings Page for statistics and configuration. And a huge bonus, WP-HashCash is &#8220;100% standards compliant XHTML 1.1 and works with both jQuery and Prototype.&#8221;</dd>
</dl>
<p>Note that the book now contains an abbreviated version of this list, along with sidebar mentions of some of the other plugins sprinkled throughout the various chapters. Going through this list again for the post, it was great seeing the wide variety of sites and personalities involved in keeping WordPress spam-free. If you know of any good anti-spam plugins that we missed, feel free to share them in the comments.</p>
<hr />
<p><small>© 2011 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2011/04/anti-spam-plugins/">Permalink</a> | <a href="http://digwp.com/2011/04/anti-spam-plugins/#comments">20 comments</a> | Add to <a href="http://del.icio.us/post?url=http://digwp.com/2011/04/anti-spam-plugins/&title=15 Anti-Spam Plugins for WordPress">del.icio.us</a> | Post tags: <a href="http://digwp.com/tag/comments/" rel="tag">comments</a>, <a href="http://digwp.com/tag/spam/" rel="tag">spam</a><br/></small></p>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2011/04/anti-spam-plugins/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Blogging in Markdown</title>
		<link>http://digwp.com/2010/06/blogging-in-markdown/</link>
		<comments>http://digwp.com/2010/06/blogging-in-markdown/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 14:50:58 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[markdown]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=2338</guid>
		<description><![CDATA[WordPress defaults to a WYSIWYG editor when composing a new Post. Of course WYSIWYG is a bit of a misnomer. What you &#8220;get&#8221; when you publish that post is dependent on the template and the CSS in place in the theme. In fact, WordPress doesn&#8217;t even call it WYSIWYG, they call it the &#8220;Visual&#8221; editor. [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress defaults to a WYSIWYG editor when composing a new Post. Of course WYSIWYG is a bit of a misnomer. What you &#8220;get&#8221; when you publish that post is dependent on the template and the CSS in place in the theme. In fact, WordPress doesn&#8217;t even call it WYSIWYG, they call it the &#8220;Visual&#8221; editor. In fact, most editors of this nature these days go to length in telling you <a href="http://markitup.jaysalvat.com/home/">its a markup editor</a>, not a WYSIWYG editor.</p>
<div class="image-wrap">
<img src="http://digwp.com/wp-content/blog-images/visualeditor.jpg" width="587" height="108" alt="" title="" />
</div>
<p>The point of the Visual editor is that it likely makes more sense to the &#8220;average&#8221; user. When they highlight a word and click the [b] button, the word literally turns bold, not gets wrapped in &lt;strong>&lt;/strong> tags. If they insert a picture, they see it. If they insert a link, it looks like a link. </p>
<p>The Visual editor is perfectly fine, but the nerdier among us likely prefer the HTML view so they can see exactly what is going on. After all, the Visual editor has had a history of not being super hot when it comes to leaving our nicely organized HTML alone (when switching back and forth).</p>
<div class="image-wrap">
<img src="http://digwp.com/wp-content/blog-images/disableeditor.jpg" width="495" height="149" alt="" title="" /><br />
You can turn off the visual editor from your User Preferences.
</div>
<p>Once that is off, we are free to compose posts in HTML. But that&#8217;s not our only option. We could also compose in Markdown!</p>
<p><span id="more-2338"></span></p>
<h3>What is Markdown?</h3>
<p>Markdown is a special syntax for composing. It was originally conceived by John Gruber and you can <a href="http://daringfireball.net/projects/markdown/">learn more about it here</a>. </p>
<h3>Getting it into WordPress</h3>
<p>Markdown was originally written in Perl. It was converted to PHP by Michel Fortin and comes with a WordPress plugin. You can <a href="http://michelf.com/projects/php-markdown/">get it here</a>, which also has instructions for installing and activating it.</p>
<h3>Why Markdown?</h3>
<p>The idea is that it makes looking at the writing much more readable than HTML would be. </p>
<blockquote><p>While Markdown’s syntax has been influenced by several existing text-to-HTML filters, the single biggest source of inspiration for Markdown’s syntax is the format of plain text email.</p></blockquote>
<div class="image-wrap">
<img src="http://digwp.com/wp-content/blog-images/markdownexample.png" width="549" height="323" alt="" title="" /><br />
It does look quite a bit like a text email.
</div>
<h3>Markdown Syntax</h3>
<p>There isn&#8217;t all that much to it, but you might want to check out the <a href="http://daringfireball.net/projects/markdown/syntax">actual documentation page</a> instead of me rehashing it here. </p>
<p>In a nutshell:</p>
<p>*italic*<br />
**bold**<br />
[link text](http://example.com)<br />
## header 2<br />
### header 3<br />
&nbsp;&nbsp;&nbsp;code is indented</p>
<h3>Is it for you?</h3>
<p>Whether or not this looks appealing to you is simply a matter of taste. Do keep in mind that Markdown is compatible with HTML. So if you have articles you have previously written in HTML, those will be fine with this activated. However, the opposite is not true. If you create a bunch of content in Markdown and then decide to turn it off, you will be looking at asterisks and octothorpes and such. </p>
<p>One other concern would theoretically be shortcodes. Short codes also use the [foo] syntax, so I&#8217;m actually not sure which one would take precedence. Definitely should be tested if you are a heavy shortcodes user.</p>
<hr />
<p><small>© 2010 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2010/06/blogging-in-markdown/">Permalink</a> | <a href="http://digwp.com/2010/06/blogging-in-markdown/#comments">3 comments</a> | Add to <a href="http://del.icio.us/post?url=http://digwp.com/2010/06/blogging-in-markdown/&title=Blogging in Markdown">del.icio.us</a> | Post tags: <a href="http://digwp.com/tag/editor/" rel="tag">editor</a>, <a href="http://digwp.com/tag/html/" rel="tag">HTML</a>, <a href="http://digwp.com/tag/markdown/" rel="tag">markdown</a><br/></small></p>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2010/06/blogging-in-markdown/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress JSON API Plugin</title>
		<link>http://digwp.com/2010/05/wordpress-json-api-plugin/</link>
		<comments>http://digwp.com/2010/05/wordpress-json-api-plugin/#comments</comments>
		<pubDate>Sat, 29 May 2010 19:34:51 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=2153</guid>
		<description><![CDATA[WordPress already kind of has an XML API. Basically, RSS feeds. WordPress creates feeds for all kinds of stuff: recent posts, comment threads on any Page or Post that has comments, category-specific, tag-specific, and more. The codex covers all this and we&#8217;ve also covered creating your own unique feeds that could literally be from any [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress already kind of has an XML API. Basically, RSS feeds. WordPress creates feeds for all kinds of stuff: recent posts, comment threads on any Page or Post that has comments, category-specific, tag-specific, and more. The codex <a href="http://codex.wordpress.org/WordPress_Feeds">covers all this</a> and we&#8217;ve also covered <a href="http://digwp.com/2009/09/easy-custom-feeds-in-wordpress/">creating your own unique feeds</a> that could literally be from any data in your WordPress database.</p>
<p>So RSS is pretty sweet. There are lots of feed parsers out there that can do cool stuff with feeds. XML is pretty cool. PHP5 has functions to make decently quick work of parsing XML. </p>
<p><strong>But what if you are working with JavaScript?</strong> XML + JavaScript kinda sucks. The <a href="http://www.json.org/">JSON</a> format is approximately one million times easier to work with. Fortunately there is <a href="http://wordpress.org/extend/plugins/json-api/">a kick-ass plugin</a> for us!</p>
<p><span id="more-2153"></span></p>
<h3>The Plugin&#8230;</h3>
<p>is by <a href="http://phiffer.org/">Dan Phiffer</a> who created it for for working with the MoMA (Museum of Modern Art) <a href="http://moma.org/explore/inside_out">blog</a>. Apparently it&#8217;s some Frankenstein&#8217;s monster of Ruby on Rails and WordPress. </p>
<p><a href="http://wordpress.org/extend/plugins/json-api/">WordPress JSON API Plugin</a></p>
<p>All you need to do is install and activate it, and you&#8217;ll have access to a new URL structure that servers up JSON data.</p>
<p>At its most simple:</p>
<pre><code>http://example.com/?json=1</code></pre>
<p>Which will return delicious, delicious JSON:</p>
<pre><code>{
  "status": "ok",
  "count": 1,
  "count_total": 1,
  "pages": 1,
  "posts": [
    {
      "id": 1,
      "slug": "hello-world",
      "url": "http:\/\/localhost\/wordpress\/?p=1",
      "title": "Hello world!",
      "title_plain": "Hello world!",
      "content": "&lt;p&gt;Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!&lt;\/p&gt;\n",
      "excerpt": "Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!\n",
      "date": "2009-11-11 12:50:19",
      "modified": "2009-11-11 12:50:19",
      "categories": [],
      "tags": [],
      "author": {
        "id": 1,
        "slug": "admin",
        "name": "admin",
        "first_name": "",
        "last_name": "",
        "nickname": "",
        "url": "",
        "description": ""
      },
      "comments": [
        {
          "id": 1,
          "name": "Mr WordPress",
          "url": "http:\/\/wordpress.org\/",
          "date": "2009-11-11 12:50:19",
          "content": "&lt;p&gt;Hi, this is a comment.&lt;br \/&gt;To delete a comment, just log in and view the post's comments. There you will have the option to edit or delete them.&lt;\/p&gt;\n",
          "parent": 0
        }
      ],
      "comment_count": 1,
      "comment_status": "open"
    }
  ]
}</code></pre>
<p>The plugin page has comprehensive notes on <a href="http://wordpress.org/extend/plugins/json-api/other_notes/">how you can structure the URLs</a> to get just what you need back. </p>
<p>Of course, the more that you want, the larger the size of the data is, the harder it has to work, and the slower it can be. The plugin allows you to trim down what it returns to speed things up if needed. This is how to get just 10 posts, with a specific custom field, and only a few other things:</p>
<pre><code>http://example.com/?json=1&amp;count=10&amp;custom_fields=PostThumb&amp;include=title,custom_fields,excerpt</code></pre>
<h3>What might you use this for?</h3>
<p><a href="http://jqueryui.com/">jQuery UI</a> has recently released a new feature: <a href="http://docs.jquery.com/UI/Autocomplete">Autocomplete</a>. I learned that it basically consumes JSON data to populate what it autocompletes with. So I decided to try and connect the two and make an autocomplete search box for this site. </p>
<div class="image-wrap">
<img src="http://digwp.com/wp-content/blog-images/autocompletesearch.jpg" width="581" height="331" alt="" title="" />
</div>
<p>Try typing in like &#8220;CSS&#8221; or something and you can see some articles autocomplete below the input. You can select one and press return to go to that post. It&#8217;s kinda cheezy, probably not something I would roll out live, but it was a fun demo to work on. If you want to see the JavaScript that powers it, <a href="http://digwp.com/wp-content/themes/DiggingIntoWordPress-2/js/autocomplete.js">check it out</a>. </p>
<p>To be fair, I had to hack the plugin just slightly to get it to work. The autocomplete plugin wants a &#8220;value&#8221; and &#8220;label&#8221; data in the JSON, so I added them. It&#8217;s a pretty trivial adjustment so if anyone wants that code, let me know.</p>
<p><strong>UPDATE:</strong> Demo temporarily removed for security.</p>
<hr />
<p><small>© 2010 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2010/05/wordpress-json-api-plugin/">Permalink</a> | <a href="http://digwp.com/2010/05/wordpress-json-api-plugin/#comments">13 comments</a> | Add to <a href="http://del.icio.us/post?url=http://digwp.com/2010/05/wordpress-json-api-plugin/&title=WordPress JSON API Plugin">del.icio.us</a> | Post tags: <a href="http://digwp.com/tag/api/" rel="tag">API</a>, <a href="http://digwp.com/tag/javascript/" rel="tag">JavaScript</a>, <a href="http://digwp.com/tag/json/" rel="tag">JSON</a>, <a href="http://digwp.com/tag/plugin/" rel="tag">plugin</a><br/></small></p>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2010/05/wordpress-json-api-plugin/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>wpSEO vs. All-In-One SEO Pack</title>
		<link>http://digwp.com/2010/04/wpseo-vs-all-in-one/</link>
		<comments>http://digwp.com/2010/04/wpseo-vs-all-in-one/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 15:58:12 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[meta]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[title]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=1628</guid>
		<description><![CDATA[The most popular SEO plugin for WordPress is certainly the All-In-One SEO Pack. It&#8217;s on just about every plugin roundup you&#8217;ll ever see. It&#8217;s free. It works well. But it&#8217;s not the only kid on the block. One of the guys from WP Engineer has a competing product: wpSEO. I&#8217;ve now used them both. I [...]]]></description>
			<content:encoded><![CDATA[<p>The most popular SEO plugin for WordPress is certainly the <a href="http://wordpress.org/extend/plugins/all-in-one-seo-pack/">All-In-One SEO Pack</a>. It&#8217;s on just about every plugin roundup you&#8217;ll ever see. It&#8217;s free. It works well. But it&#8217;s not the only kid on the block. One of the guys from <a href="http://wpengineer.com/">WP Engineer</a> has a competing product: <a href="http://wpseo.go2jump.org/SHE">wpSEO</a>. I&#8217;ve now used them both. I thought a head-to-head comparison would be useful for people to see.</p>
<p><span id="more-1628"></span></p>
<p>Let me note that this isn&#8217;t an absolutely comprehensive comparison of every single feature. For example, they both claim to be fast. I&#8217;m not techy enough to know which one is really &#8220;faster&#8221;. These are the features that are important to me.</p>
<table id="comparison">
<tr>
<th>&nbsp;</th>
<th>
All-In-One SEO Pack
</th>
<th>
wpSEO
</th>
<th>Notes</th>
</tr>
<tr>
<td class="feature">Is there a free version?</td>
<td>Yes</td>
<td>No, 10 day trial</td>
<td>I think if you like the wpSEO feature set, you should go for it right away. Configuring your SEO one way and then ditching all that 10 days later seems counter-productive to me.</td>
</tr>
<tr>
<td class="feature">Paid version?</td>
<td>$69.99<br />
(sometimes on sale)</td>
<td>$24.99<br />
(one site)<br />
$64.99<br />
(unlimited)<br />
$124.99<br />
(professional)</td>
<td>The paid version of All-In-One SEO just removes the donation links at the top of the plugin settings. The wpSEO only has a paid version.</td>
</tr>
<tr>
<td class="feature">Support</td>
<td>Various monthly plans, starting at $10/month</td>
<td>Included with paid plugin</td>
<td>If you need support, wpSEO is cheaper as it&#8217;s just included with the plugin price. I can&#8217;t vouch for either as I&#8217;ve never needed support. I gotta imagine support for both of these is unbearable. WHY AIN:T i #1 on da GOOGLe?!?!</td>
</tr>
<tr>
<td class="feature">Meta descriptions</td>
<td>Auto-create and controllable</td>
<td>Auto-create and controllable</td>
<td>This is the most valuable thing to be for both plugins. Meta descriptions are important for SEO and for quality link displays on SERPs. Both plugins will auto-generate these for you, or allow you to override them on a per-post/per-page basis.</td>
</tr>
<tr>
<td class="feature">Meta keywords</td>
<td>Auto-create and controllable</td>
<td>Auto-create and controllable</td>
<td>Keywords are far less important than descriptions, but using them doesn&#8217;t hurt. All-In-One allows you set your own or can use the posts tags and/or categories for them. wpSEO won&#8217;t automatically use tags or categories, but will intelligently use &lt;strong> and &lt;em> tags in your text content or mark them with specific short tags. I also like how you can turn off the keyword override on individual posts with wpSEO (less cruft to look at if you know you don&#8217;t use it).</td>
</tr>
<tr>
<td class="feature">Title Control</td>
<td>Sort of</td>
<td>Full</td>
<td>Title control is just as important as Meta descriptions. All-In-One SEO defaults to the best possible (in my opinion) format which is [Post Title] | [Site Title] and is totally configurable for different types of pages. What you can&#8217;t do is <strong>completely</strong> override a post title, which you can do with wpSEO. Both plugins are pretty equal in ability here.</td>
</tr>
<td class="feature">Canonical tags</td>
<td>Yes</td>
<td>Yes</td>
<td>Canonical tags tell search engines which URL the content on this page &#8220;really&#8221; belongs to. For example, if you have paginated comments, you might have several different URLs which display the same content, which can lead to duplicate content penalties. Both plugins take care of this for you.</td>
</tr>
</table>
<h3>Other little features</h3>
<ul>
<li>You can disable All-In-One SEO without deactivating or uninstalling it.</li>
<li>You can export and import settings with wpSEO. So if you have a specific setup you like to use, it&#8217;s easy to move that to other sites.</li>
</ul>
<h3>General thoughts</h3>
<ul>
<li>wpSEO definitely has more features, but of course more isn&#8217;t always better. The settings page may be overwhelming for some.</li>
<li>All-In-One SEO is free, and it does all the things I consider vital for a SEO plugin.</li>
<li>On a pure features / functions / UI standpoint, I like wpSEO better.</li>
</ul>
<hr />
<p><small>© 2010 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2010/04/wpseo-vs-all-in-one/">Permalink</a> | <a href="http://digwp.com/2010/04/wpseo-vs-all-in-one/#comments">24 comments</a> | Add to <a href="http://del.icio.us/post?url=http://digwp.com/2010/04/wpseo-vs-all-in-one/&title=wpSEO vs. All-In-One SEO Pack">del.icio.us</a> | Post tags: <a href="http://digwp.com/tag/meta/" rel="tag">meta</a>, <a href="http://digwp.com/tag/seo/" rel="tag">SEO</a>, <a href="http://digwp.com/tag/title/" rel="tag">title</a><br/></small></p>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2010/04/wpseo-vs-all-in-one/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Nice Way to Encourage Plugin Upgrading</title>
		<link>http://digwp.com/2010/03/nice-way-to-encourage-plugin-upgrading/</link>
		<comments>http://digwp.com/2010/03/nice-way-to-encourage-plugin-upgrading/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 13:26:34 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=1694</guid>
		<description><![CDATA[A while back we talked about upgrading plugins. Specifically the All-in-One SEO pack and the controversy surrounding how it turns it self off after (some) updates. This is what that plugin looks like when it needs an updating: Normal look for a plugin that needs updating But W3 Total Cache also needed an upgrading, and [...]]]></description>
			<content:encoded><![CDATA[<p>A while back we talked about upgrading plugins. Specifically the <a href="http://digwp.com/2010/01/why-all-in-one-seo-deactivates/">All-in-One SEO pack and the controversy surrounding</a> how it turns it self off after (some) updates. This is what that plugin looks like when it needs an updating:</p>
<div class="image-wrap">
<img src="http://digwp.com/wp-content/blog-images/allinoneupdate.png" width="570" height="162" alt="" title="" /><br />
Normal look for a plugin that needs updating
</div>
<p>But <a href="http://wordpress.org/extend/plugins/w3-total-cache/">W3 Total Cache</a> also needed an upgrading, and this is what <em>it</em> looked like&#8230;</p>
<p><span id="more-1694"></span></p>
<div class="image-wrap">
<img src="http://digwp.com/wp-content/blog-images/w3update.png" width="415" height="444" alt="" title="" /><br />
Now there is some info!
</div>
<p>This plugin clearly explains why upgrading would be a good idea. I like it. I think this should definitely be employed on plugins, especially on updates which may have seriously implications on your sites performance.</p>
<p>Oh and look, it doesn&#8217;t bug you with all the notes if it isn&#8217;t activated:</p>
<div class="image-wrap">
<img src="http://digwp.com/wp-content/blog-images/w3disabled.png" width="436" height="133" alt="" title="" />
</div>
<hr />
<p><small>© 2010 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2010/03/nice-way-to-encourage-plugin-upgrading/">Permalink</a> | <a href="http://digwp.com/2010/03/nice-way-to-encourage-plugin-upgrading/#comments">11 comments</a> | Add to <a href="http://del.icio.us/post?url=http://digwp.com/2010/03/nice-way-to-encourage-plugin-upgrading/&title=Nice Way to Encourage Plugin Upgrading">del.icio.us</a> | Post tags: <a href="http://digwp.com/tag/plugin/" rel="tag">plugin</a><br/></small></p>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2010/03/nice-way-to-encourage-plugin-upgrading/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>How to Add Your Plugin to the WordPress Plugin Directory</title>
		<link>http://digwp.com/2010/03/add-plugin-to-wordpress-plugin-repository/</link>
		<comments>http://digwp.com/2010/03/add-plugin-to-wordpress-plugin-repository/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 07:49:12 +0000</pubDate>
		<dc:creator>Jeff Starr</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=1548</guid>
		<description><![CDATA[Getting your plugins listed in the official WordPress Plugin Directory is considered a chore by many, but it&#8217;s nothing that should stop you from sharing your plugin with the community at large. Up until now, I haven&#8217;t really bothered with adding my plugin collection to the Directory, but after Herb Goodman helped to package my [...]]]></description>
			<content:encoded><![CDATA[<p>Getting your plugins listed in the official <a href="http://wordpress.org/extend/plugins/" title="Plugin Directory">WordPress Plugin Directory</a> is considered a chore by many, but it&rsquo;s nothing that should stop you from sharing your plugin with the community at large. Up until now, I haven&rsquo;t really bothered with adding <a href="http://perishablepress.com/press/2006/09/04/perishable-press-wordpress-plugins/" title="Perishable Press WordPress Plugins">my plugin collection</a> to the Directory, but after <a href="http://www.hsgoodman.org/" title="hsgoodman.org">Herb Goodman</a> helped to package my recent <a href="http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/" title="">Block Bad Queries plugin</a>, I figured now was a good time to dig in and learn the ropes. It turns out the process only took about an hour to complete, not including the waiting period for access to the Subversion Repository (which was about 18 hours). Definitely worth the potential exposure provided by having your plugin listed in the official directory.</p>
<blockquote><p>If you are a seasoned plugin developer, you already know how to hook it up at the WordPress Directory, but for those who don&rsquo;t, this <acronym title="Digging into WordPress">DiW</acronym> tutorial will show you everything you need to know.</p></blockquote>
<p><span id="more-1548"></span></p>
<h3>Why host your plugin at the WP Directory?</h3>
<p>Some of the benefits of hosting your plugin at the WordPress Plugin Directory:</p>
<ul>
<li>Track basic statistics regarding how many people are downloading and when</li>
<li>Provide a centralized location for users to leave comments and feedback</li>
<li>Get your plugin rated against the many other hosted WordPress plugins</li>
<li>And of course, give your plugin greater exposure to the WP community</li>
</ul>
<p>Further, it seems that plugins hosted at the official directory are perceived to be associated with a greater degree of &ldquo;trustworthiness.&rdquo; People <em>trust</em> WordPress, and they also trust the various resources (plugins, themes, etc.) made available to them through the <code>wordpress.org</code> website. Basically, if you&rsquo;re writing plugins for the WordPress community, you should be sharing them with as many people possible. The Plugin Directory does this exceedingly well.</p>
<p>&ldquo;Worth playing for?&rdquo; Let&rsquo;s look at a quick overview before digging into the specifics of getting your plugin added to the Directory..</p>
<h3>Overview</h3>
<p>To help get a sense of direction before getting started, consider this overview of events:</p>
<ul>
<li>Write and prepare your plugin</li>
<li>Prepare the readme.txt file</li>
<li>Sign up for access to the Subversion Repository</li>
<li>Wait for approval and <acronym title="Subversion (version control system)">SVN</acronym> access information</li>
<li>Use Subversion software to upload your plugin files</li>
<li>Wait a few minutes for the system to add your plugin to the Plugin Directory</li>
</ul>
<p>Of course, the big hurdle that many &ldquo;would-be&rdquo; contributors have is using the <acronym title="Subversion (version control system)">SVN</acronym>/Subversion system and software. To be honest, this was one of the reasons why I never bothered adding my other plugins, but now that I&rsquo;ve seen how easy it actually is (once you learn it), I will most likely add my other plugins as well (eventually).</p>
<h3>First steps</h3>
<p>First, get your plugin and files ready. You don&rsquo;t need to compress anything with <code>zip</code> or <code>tar</code> because the <acronym title="Subversion (version control system)">SVN</acronym> system will do that automatically for you based on the contents of your plugin. In my case, the plugin was Block Bad Queries, which contains the following two files:</p>
<ul>
<li><code>block-bad-queries.php</code></li>
<li><code>readme.txt</code></li>
</ul>
<p>The actual plugin file is the &ldquo;<code>block-bad-queries.php</code>&rdquo;. The &ldquo;<code>readme.txt</code> is the only other required file. If you have multiple plugin files, that&rsquo;s fine too, they will be uploaded and managed together during the subversion process.</p>
<p>For more information on getting things ready, check out <a href="http://codex.wordpress.org/Plugin_Submission_and_Promotion" title="Plugin Submission and Promotion">Plugin Submission and Promotion</a> at the Codex. A key factor in the process is a well-written <code>readme.txt</code> file, which we&rsquo;ll look at next..</p>
<h3>Pimp your readme.txt file</h3>
<p>I think having a well-prepared <code>readme.txt</code> file is one of the things that helped everything go smoothly for my first time out. Your plugin&rsquo;s <code>readme.txt</code> is used for the content of the various pages in a typical plugin listing:</p>
<ul>
<li>Plugin Name</li>
<li>Description</li>
<li>Installation</li>
<li>Faq</li>
<li>Screenshots</li>
<li>Other Notes</li>
<li>Changelog</li>
<li>Stats</li>
<li>Admin</li>
</ul>
<p>That&rsquo;s basically it. If your <code>readme.txt</code> contains each of these sections, you should be good to go. There are various details required for certain sections, such as the opening &ldquo;<code>Plugin</code>&nbsp;<code>Name</code>&rdquo; information, which requires the following specifics (using <acronym title="Block Bad Queries">BBQ</acronym> as an example):</p>
<pre><code>=== Plugin Name ===

Contributors: Jeff Starr
Plugin Name: Block Bad Queries
Plugin URI: http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/
Tags: wp, protect, php, eval, malicious, url
Author URI: http://perishablepress.com/
Author: Perishable Press
Requires at least: 2.3
Tested up to: 2.9
Stable tag: 1.0
Version: 1.0 </code></pre>
<p>I think we&rsquo;re all familiar with this type of information &ndash; something similar is included at the top of virtually every plugin (and theme) in existence. In any case, this is the first part of a proper <code>readme.txt</code> file, as seen in the <a href="http://wordpress.org/extend/plugins/about/readme.txt">WordPress/bbPress plugin readme file standard</a>, which also contains details and further information about the various requirements.</p>
<p>So, to put all of this together and create your own <code>readme.txt</code> file, just copy &amp; paste the following template into a blank <code>.txt</code> file and flesh it out with your own details:</p>
<pre><code>=== Plugin Name ===

Contributors:      (plugin contributors)
Plugin Name:       (name of your plugin)
Plugin URI:        (web page for plugin)
Tags:              (tags for the plugin)
Author URI:        (plugin authors site)
Author:            (the plugin's author)
Donate link:       (a link for donating)
Requires at least: (minimum required WP) 
Tested up to:      (tested WP up to ver)
Stable tag:        (plugin's stable ver)
Version:           (plugins current ver)

== Description ==

== Installation ==

== Upgrade Notice ==

== Screenshots ==

== Changelog ==

== Frequently Asked Questions ==

== Donations ==</code></pre>
<p>Aside from wanting to put the &ldquo;Plugin Name&rdquo; section at the top of the file, these different sections can be rearranged in any order, but they all need to be present in order to adhere to WordPress guidelines and pass the <a href="http://wordpress.org/extend/plugins/about/validator/" title="Readme Validator">readme validation</a>. For more information on fleshing out each of these different sections, check out the <a href="http://wordpress.org/extend/plugins/about/readme.txt">standard readme.txt example</a>. Once you get everything pimped and ready, the readme validator will display the good news:</p>
<blockquote><p>Your readme.txt rocks. Seriously. Flying colors.</p></blockquote>
<p>If you don&rsquo;t see this message, you&rsquo;ll get a list of things that need fixed in order to pass validation. The validator is a great tool that makes it easy to put together a proper <code>readme.txt</code> file.</p>
<h4>A few notes on the readme file</h4>
<p>Here are a few notes that I found helpful while creating the <code>readme.txt</code> file:</p>
<ul>
<li>The readme file uses <a href="http://daringfireball.net/projects/markdown/syntax" title="Markdown">markdown</a> for marking up your info with links, lists and so on.</li>
<li>You may use <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> in your readme content (escape with backticks: <code>`&lt;?php</code>&nbsp;<code>?&gt;`</code>)</li>
<li>Use asterisks for *emphasized text*</li>
<li>Use double asterisks for **strong text**</li>
</ul>
<p>As you can see, the <code>readme.txt</code> file is quite flexible, enabling you to customize your plugin&rsquo;s information as provided in the Plugin Repository.</p>
<h3>Prepare the plugin file</h3>
<p>After creating and testing your plugin, you need to give it a license. Here is what the WordPress Codex has to say about it:</p>
<ul>
<li>Your plugin must be <a href="http://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses">GPLv2 Compatible</a>.</li>
<li>The plugin most not do anything illegal, or be morally offensive.</li>
<li>You have to actually use the <a href="http://subversion.tigris.org/">subversion</a> repository we give you in order for your plugin to show up on this site. The WordPress Plugins Directory is a hosting site, not a listing site.</li>
<li>The plugin must not embed external links on the public site (like a &ldquo;powered by&rdquo; link) without explicitly asking the user&rsquo;s permission.</li>
<li>If you don&rsquo;t specify a v2-compatible license, what you check in is explicitly GPLv2.</li>
</ul>
<p>Once you&rsquo;ve given your plugin the required license &#8212; either <strong>explicitly</strong> by <em>including</em> the license or <strong>implicitly</strong> by not including <em>any</em> license &#8212; you&rsquo;re ready to get hosted at the Repository. Take a few deep breaths and clear your mind..</p>
<h3>Sign up for access to the Plugin Repository</h3>
<p>Now with your plugin files ready to go, visit the <a href="http://wordpress.org/extend/plugins/add/">Sign-up page</a>, login to your account, and fill out the form with the following information:</p>
<ul>
<li>Plugin Name (required)</li>
<li>Plugin Description (required)</li>
<li>Plugin URL</li>
</ul>
<p>After submitting the form, be prepared to wait awhile to be approved access to the subversion repository. For my plugin, it took around 18 hours to receive a response. Just be patient, if everything looks good, someone will approve your request within a reasonably undefined amount of time. Eventually, you should receive an email with all the information you need to access the <a id="subversion" href="http://wordpress.org/extend/plugins/about/svn/">Subversion Repository</a>. This is where you will upload and store your plugin. The system will use the files and information included in the Subversion Repository to generate the actual web pages that appear in the <a href="http://wordpress.org/extend/plugins/" title="WordPress Plugin Directory">Plugin Directory</a> with all of the other plugins. It usually takes a few minutes for the system to create your plugin&rsquo;s entry, so be patient after uploading. Just as a general reference, I think I waited something like five or ten minutes before seeing my plugin listed in the Plugin Browser.</p>
<h3>Use Subversion software to upload your plugin files</h3>
<p>At this point, you&rsquo;ve been granted access to the <acronym title="Subversion (version control system)">SVN</acronym> repository and are ready to upload your files and call it done (until the next plugin update). To begin this task, familiarize yourself (if necessary) with the basics of <a href="http://ptahdunbar.com/how-to/subversion-demystified-using-wordpress/" title="Subversion Demystified using WordPress">using Subversion with WordPress</a>. </p>
<blockquote><p>There&rsquo;s a LOT to learn about Subversion, but don&rsquo;t let that stop you from making quick use of it to get the job done.</p></blockquote>
<h4>What is Subversion?</h4>
<p>Basically, Subversion is an open-source piece of software that people use to more easily manage files and directories as they change over time. The key thing about Subversion is that it enables you to restore previous versions of your data and understand how things have changed. This &ldquo;time-machine&rdquo; functionality is especially useful for managing things like continually changing source code, and makes managing thousands of plugins <em>much</em> easier.</p>
<h4>How do I use Subversion?</h4>
<p>To use Subversion, you&rsquo;ll need some software. Mac people get it pre-installed with Leopard, and Windows peeps can download the binary installer <a href="http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91" title="Subversion Binary Downloads">here</a>. Keep in mind that, for either operating system, Subversion is something you run through either Terminal (Mac) or the Command Prompt (Win) as a series of commands. As you can imagine, there are a gazillion commands available, but we&rsquo;ll only be needing a select few for our purposes here.</p>
<h4>Please don&rsquo;t make me use the command line!</h4>
<p>If the thought of using the command line to run software makes your stomach turn, you can use Subversion through a graphical interface such as <a href="http://www.versionsapp.com/" title="Versions">Versions</a> for Mac, and/or<br />
<a href="http://tortoisesvn.tigris.org/" title="Tortoise">Tortoise</a> for Windows. I haven&rsquo;t used either of these apps, but they certainly <em>look</em> more inviting than the command prompt, which is what we&rsquo;re rolling with for this tutorial.</p>
<h4>How does it work?</h4>
<p>There are two sets of files we&rsquo;re working with: <strong>local files</strong> (on your computer) and <strong>remote files</strong> (on the server). For each set of files, we want the following directory structure (using my plugin as an example):</p>
<pre><code>root-folder/
	/trunk/
		block-bad-queries.php
		readme.txt
	/branches/
	/tags/</code></pre>
<p>To get started, we&rsquo;ll place our files into the <code>/trunk/</code> directory, and then in the future add new versions to either the <code>/branches/</code> directory (for <em>major</em> updates) or <code>/tags/</code> directory (for <em>minor</em> updates). </p>
<p>Once uploaded, your files are stored in the central plugin repository on WordPress servers. From the repository, anyone can <strong>check out</strong> a copy of your file(s), but <em>only you</em> (the plugin author) have the authority to <strong>check in</strong> new file(s). Using Subversion, any changes made to your local files are mirrored exactly on the server, and eventually reflected in your plugin pages in the WordPress.org plugin directory.</p>
<h4>Add your plugin to the Repository</h4>
<p>Now that we have our files ready and Terminal (or Command Prompt) open, let&rsquo;s wrap this up and upload our files to the Plugin Repository. Here&rsquo;s an overview of what we&rsquo;re going to do:</p>
<ol>
<li>Check out the blank repository (i.e., the empty directory structure)</li>
<li>Add your files to the local <code>/trunk/</code> directory on your computer</li>
<li>Update the repository with copies of your local files</li>
</ol>
<p>Here&rsquo;s how to do it with Mac Terminal, and it&rsquo;s very similar for Windows Command Prompt:</p>
<pre><code>$ mkdir my-local-dir
$ svn co http://svn.wp-plugins.org/your-plugin-name my-local-dir
$ cd my-local-dir/
my-local-dir/$ cp ~/my-plugin.php trunk/my-plugin.php
my-local-dir/$ cp ~/readme.txt trunk/readme.txt
my-local-dir/$ svn add trunk/*
my-local-dir/$ svn ci -m 'add some notes here'</code></pre>
<p>And here are the same commands with comments and returned messages:</p>
<pre><code># create a local folder for your copy of the repository

$ mkdir my-local-dir

# download the empty directory structure to your new folder

$ svn co http://svn.wp-plugins.org/your-plugin-name my-local-dir
&gt; A	my-local-dir/trunk
&gt; A	my-local-dir/branches
&gt; A	my-local-dir/tags
&gt; Checked out revision 11325.

# copy your plugin files to the local trunk directory

$ cd my-local-dir/
my-local-dir/$ cp ~/my-plugin.php trunk/my-plugin.php
my-local-dir/$ cp ~/readme.txt trunk/readme.txt

# register the new files with Subversion

my-local-dir/$ svn add trunk/*
&gt; A	trunk/my-plugin.php
&gt; A	trunk/readme.txt

# update the Repository with the new files

my-local-dir/$ svn ci -m 'add some notes here'
&gt; Adding	trunk/my-plugin.php
&gt; Adding	trunk/readme.txt
&gt; Transmitting file data ..
&gt; Committed revision 11326.

# All done!</code></pre>
<p>That may look like a mouthful, but it&rsquo;s actually only about seven commands, even fewer if you manually create the directory structure and add the local files yourself. You should also keep the following notes in mind if you are new to the whole &ldquo;command line&rdquo; thing:</p>
<ul>
<li>Any line prefixed with a pound sign <code>#</code> is a comment and should not be used as a command.</li>
<li>Lines beginning with a &rdquo;<code>&gt;</code>&rdquo; character indicate a response from the software and should not be used as a command.</li>
<li>All of the specific file and directory names need to be changed to match your own.</li>
<li>The &ldquo;<code>-m 'add some notes here'</code>&rdquo; in the last command is used to add notes for the event &#8212; they may be anything you wish (or none at all).</li>
<li>At the last step, you may be prompted for your username and password, which should be the same as used when logged into the WordPress.org site.</li>
</ul>
<p>After running those commands, your plugin will be in the Repository and ready for the system to automatically create your actual plugin pages as they will appear in the Plugin Directory. This usually takes some time, so grab a drink and kick back for around five to ten minutes. Eventually, you will see your plugin appear on the <a href="http://wordpress.org/extend/plugins/browse/new/" title="Newest WordPress Plugins">Newest Plugins</a> page, and then also at its dedicated page, which will be something like this:</p>
<p><code>http://wordpress.org/extend/plugins/your-new-plugin/</code></p>
<p>Once you get this far, you&rsquo;re golden. There are many other cool things you can do with Subversion to manage and update your plugin. To get started with updating and tagging, check out the <a href="http://wordpress.org/extend/plugins/about/svn/" title="How to Use Subversion">How to Use Subversion</a> in the Plugin Directory. And for even more information on the entire process of adding your plugins, check out the <a href="http://wordpress.org/extend/plugins/about/faq/" title="Developer FAQ">Plugin Developer FAQ</a>.</p>
<h3>Final thoughts..</h3>
<p>Overall, getting my first plugin hosted at the WordPress Plugin Directory was a great learning experience that will make it easy to add other plugins in the future. Hopefully the fruits of my labor will help you when adding your own plugins to the Directory. As always, feel free to chime in with suggestions, questions and concerns about any of the techniques described here. It would be great to hear more about using Subversion (tips, tricks, etc.).</p>
<p>Also, if you are interested, you can see the result of all this work by checking out the <a href="http://wordpress.org/extend/plugins/block-bad-queries/" title="WordPress Plugin: Block Bad Queries (BBQ)">Block Bad Queries (BBQ) Plugin at the Plugin Directory</a>. There&rsquo;s still a few details that need to be added/tweaked, but it&rsquo;s great just having it in there.</p>
<hr />
<p><small>© 2010 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2010/03/add-plugin-to-wordpress-plugin-repository/">Permalink</a> | <a href="http://digwp.com/2010/03/add-plugin-to-wordpress-plugin-repository/#comments">12 comments</a> | Add to <a href="http://del.icio.us/post?url=http://digwp.com/2010/03/add-plugin-to-wordpress-plugin-repository/&title=How to Add Your Plugin to the WordPress Plugin Directory">del.icio.us</a> | Post tags: <a href="http://digwp.com/tag/plugin/" rel="tag">plugin</a>, <a href="http://digwp.com/tag/svn/" rel="tag">svn</a><br/></small></p>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2010/03/add-plugin-to-wordpress-plugin-repository/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

