<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Digging into WordPress</title>
	
	<link>http://digwp.com</link>
	<description>Learn how to take your WordPress skills to the next level.</description>
	<lastBuildDate>Sun, 14 Mar 2010 06:00:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/DiggingIntoWordpress" /><feedburner:info uri="diggingintowordpress" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>DiggingIntoWordpress</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Add Classes to post_class</title>
		<link>http://feedproxy.google.com/~r/DiggingIntoWordpress/~3/mQMGcPdTMK4/</link>
		<comments>http://digwp.com/2010/03/add-classes-to-post_class/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 21:04:45 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[classes]]></category>
		<category><![CDATA[functions]]></category>
		<category><![CDATA[Theme]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=1567</guid>
		<description><![CDATA[The post_class() function in WordPress is pretty darn useful. It is used like this, in most templates, in a wrapping div of all the content you are outputting:
&#60;div &#60;?php post_class() ?&#62; id="post-&#60;?php the_ID(); ?&#62;"&#62;
   &#60;!-- Post stuff --&#62;
&#60;/div&#62;
I was in a circumstance where I wanted to add an additional class to what that [...]]]></description>
			<content:encoded><![CDATA[<p>The post_class() function in WordPress is pretty darn useful. It is used like this, in most templates, in a wrapping div of all the content you are outputting:</p>
<pre><code>&lt;div &lt;?php post_class() ?&gt; id="post-&lt;?php the_ID(); ?&gt;"&gt;
   &lt;!-- Post stuff --&gt;
&lt;/div&gt;</code></pre>
<p>I was in a circumstance where I wanted to add an additional class to what that was outputting. My thought process went like this:</p>
<ol>
<li>Arg. I guess I&#8217;m going to have to write a function to filter the output of that function. Let&#8217;s begin the research.</li>
<li>Wait. I bet that function has an alternate that returns a string rather than echos it. I&#8217;ll just use that, and echo it out along with my own custom class.</li>
<li>Double wait. I bet those smart WordPress folks have thought of this&#8230;</li>
</ol>
<p><span id="more-1567"></span></p>
<h3>1. Filtering</h3>
<p>This kind of thing is generally beyond my comfort zone, but you&#8217;d basically write your own little function which takes in what the output would have been, add you own stuff to it, then return the new value.</p>
<p>Then call the new function with a filter in your functions.php file:</p>
<pre><code>add_filter('post_class','add_my_stuff');</code></pre>
<h3>2. Output exiting classes, then add yours</h3>
<p>Like most functions that echo stuff, there is a version that doesn&#8217;t echo stuff, in which &#8220;get_&#8221; prefaces the function name. I didn&#8217;t even have to look it up I just knew there would be. Since it&#8217;s a list, this function returns an array, so to output them, you&#8217;ll need to loop through the array:</p>
<pre><code>&lt;div class="&lt;?php $allClasses = get_post_class(); foreach ($allClasses as $class) { echo $class . " "; } ?&gt; group" id="post-&lt;?php the_ID(); ?&gt;"&gt;</code></pre>
<p>The cool part here is that is doesn&#8217;t add &#8220;class=&#8221; in the output, you can do that yourself, meaning that I can add my own classes after the output is finished.</p>
<h3>3. Built in&#8230;</h3>
<p>Of course, as it turns out, this is far easier than #2 made it out to be. To add additional classes, just pass them as a parameter!</p>
<pre><code>&lt;?php post_class('special'); ?&gt;</code></pre>
<p style="border:1px solid #ccc; background: #eee; line-height: 20px; padding: 5px 10px; margin-top: 10px;">Like the article? <a href="http://digwp.com/book"><strong>Get the book!</strong></a></p>
<hr />
<p><small>© 2010 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2010/03/add-classes-to-post_class/">Permalink</a> | <a href="http://digwp.com/2010/03/add-classes-to-post_class/#comments">2 comments</a> | Add to
<a href="http://del.icio.us/post?url=http://digwp.com/2010/03/add-classes-to-post_class/&title=Add Classes to&nbsp;post_class">Delicious</a><br />
Categorized: <a href="http://digwp.com/category/php/" title="View all posts in PHP" rel="category tag">PHP</a> | Tagged: <a href="http://digwp.com/tag/classes/" rel="tag">classes</a>, <a href="http://digwp.com/tag/functions/" rel="tag">functions</a>, <a href="http://digwp.com/tag/theme/" rel="tag">Theme</a></small></p><img src="http://feeds.feedburner.com/~r/DiggingIntoWordpress/~4/mQMGcPdTMK4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2010/03/add-classes-to-post_class/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://digwp.com/2010/03/add-classes-to-post_class/</feedburner:origLink></item>
		<item>
		<title>WordPress vs. ExpressionEngine: Apples and Oranges?</title>
		<link>http://feedproxy.google.com/~r/DiggingIntoWordpress/~3/wdVvO30eo54/</link>
		<comments>http://digwp.com/2010/03/wordpress-vs-ee/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 20:38:21 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=1633</guid>
		<description><![CDATA[Marcus Neto attempts to compares the two CMSs while explaining why he likes ExpressionEngine. Are they really apples or oranges? I suppose you could say that. Apples and oranges are both popular spherical fruit. They have more in common than theyhave different. Same with the two CMSs. 
While I&#8217;m 98% a WordPress guy, there are [...]]]></description>
			<content:encoded><![CDATA[<p>Marcus Neto attempts to compares the two CMSs while explaining why he likes ExpressionEngine. Are they really apples or oranges? I suppose you could say that. Apples and oranges are both popular spherical fruit. They have more in common than theyhave different. Same with the two CMSs. </p>
<p>While I&#8217;m 98% a WordPress guy, there are a few circumstances I might take the EE route, like when:</p>
<p>1) I knew I was going to need a whole bunch of different custom data types and groups and didn&#8217;t feel like dealing with the whole Pods or Flutter setup.</p>
<p>2) I also knew no newbie client was going to need to get in there.</p>
<p><small><a href="http://www.webdesignerdepot.com/2010/03/wordpress-vs-expressionengine-apples-and-oranges/" title="Direct link to featured article">Direct Link to Article</a> &#8212; <a href="http://digwp.com/2010/03/wordpress-vs-ee/" title="Permalink to post on DiW">Permalink on DiW</a></small></p><p style="border:1px solid #ccc; background: #eee; line-height: 20px; padding: 5px 10px; margin-top: 10px;">Like the article? <a href="http://digwp.com/book"><strong>Get the book!</strong></a></p>
<hr />
<p><small>© 2010 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2010/03/wordpress-vs-ee/">Permalink</a> | <a href="http://digwp.com/2010/03/wordpress-vs-ee/#comments">Comments</a> | Add to
<a href="http://del.icio.us/post?url=http://digwp.com/2010/03/wordpress-vs-ee/&title=WordPress vs. ExpressionEngine: Apples and&nbsp;Oranges?">Delicious</a><br />
Categorized: <a href="http://digwp.com/category/links/" title="View all posts in Links" rel="category tag">Links</a> | Tagged: </small></p><img src="http://feeds.feedburner.com/~r/DiggingIntoWordpress/~4/wdVvO30eo54" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2010/03/wordpress-vs-ee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.webdesignerdepot.com/2010/03/wordpress-vs-expressionengine-apples-and-oranges/</feedburner:origLink></item>
		<item>
		<title>Shortcodes in Widgets</title>
		<link>http://feedproxy.google.com/~r/DiggingIntoWordpress/~3/QDKWdhrw1BQ/</link>
		<comments>http://digwp.com/2010/03/shortcodes-in-widgets/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 13:07:32 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[shortcode]]></category>
		<category><![CDATA[widgets]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=1560</guid>
		<description><![CDATA[I had occasion the other day to run a shortcode inside of a text widget. You know shortcodes&#8230; we talk about them all the time. They are keywords in [square brackets] that do something special. Sometimes something really simple like returning a string (so you can have a global location to change that string) or [...]]]></description>
			<content:encoded><![CDATA[<p>I had occasion the other day to run a shortcode inside of a text widget. You know shortcodes&#8230; we talk about them <a href="http://digwp.com/tag/shortcode/">all the time</a>. They are keywords in [square brackets] that do something special. Sometimes something really simple like returning a string (so you can have a global location to change that string) or something complicated like call a plugin that does something fancy like build a photo gallery.</p>
<p>But alas&#8230;</p>
<div class="image-wrap">
<img src="http://digwp.com/wp-content/blog-images/shortcodeinwidget.png" width="371" height="222" alt="" title="" /><br />
This ain&#8217;t gonna work &#8220;out-of-the-box&#8221;
</div>
<p><span id="more-1560"></span></p>
<p>After tinkering with some far-too-complicated solutions, someone on Twitter helped me with a deliciously simple solution: Just add this to your functions.php file:</p>
<pre><code>add_filter('widget_text', 'do_shortcode');</code></pre>
<p>This will ensure that the text content of widgets is parsed for shortcodes and those shortcodes are ran. Awesome.</p>
<p>Stephanie Leary wrote a great article on <a href="http://sillybean.net/wordpress/content/using-shortcodes-everywhere/">Using Shortcodes Everywhere</a>, which covers this as well as using shortcodes in a bunch of other places: Comments, templates, excerpts, etc.</p>
<p style="border:1px solid #ccc; background: #eee; line-height: 20px; padding: 5px 10px; margin-top: 10px;">Like the article? <a href="http://digwp.com/book"><strong>Get the book!</strong></a></p>
<hr />
<p><small>© 2010 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2010/03/shortcodes-in-widgets/">Permalink</a> | <a href="http://digwp.com/2010/03/shortcodes-in-widgets/#comments">4 comments</a> | Add to
<a href="http://del.icio.us/post?url=http://digwp.com/2010/03/shortcodes-in-widgets/&title=Shortcodes in&nbsp;Widgets">Delicious</a><br />
Categorized: <a href="http://digwp.com/category/php/" title="View all posts in PHP" rel="category tag">PHP</a> | Tagged: <a href="http://digwp.com/tag/shortcode/" rel="tag">shortcode</a>, <a href="http://digwp.com/tag/widgets/" rel="tag">widgets</a></small></p><img src="http://feeds.feedburner.com/~r/DiggingIntoWordpress/~4/QDKWdhrw1BQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2010/03/shortcodes-in-widgets/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://digwp.com/2010/03/shortcodes-in-widgets/</feedburner:origLink></item>
		<item>
		<title>How to Add Your Plugin to the WordPress Plugin Directory</title>
		<link>http://feedproxy.google.com/~r/DiggingIntoWordpress/~3/JUeszFJBXi8/</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>
<p style="border:1px solid #ccc; background: #eee; line-height: 20px; padding: 5px 10px; margin-top: 10px;">Like the article? <a href="http://digwp.com/book"><strong>Get the book!</strong></a></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">7 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&nbsp;Directory">Delicious</a><br />
Categorized: <a href="http://digwp.com/category/plugins/" title="View all posts in Plugins" rel="category tag">Plugins</a> | Tagged: <a href="http://digwp.com/tag/plugin/" rel="tag">plugin</a>, <a href="http://digwp.com/tag/svn/" rel="tag">svn</a></small></p><img src="http://feeds.feedburner.com/~r/DiggingIntoWordpress/~4/JUeszFJBXi8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2010/03/add-plugin-to-wordpress-plugin-repository/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://digwp.com/2010/03/add-plugin-to-wordpress-plugin-repository/</feedburner:origLink></item>
		<item>
		<title>PubSubHubbub Now On All WordPress.com sites (+ plugin for self hosted sites)</title>
		<link>http://feedproxy.google.com/~r/DiggingIntoWordpress/~3/-aQdqjPCW0E/</link>
		<comments>http://digwp.com/2010/03/pubsubhubbub-now-on-all-wordpress-com-sites-plugin-for-self-hosted-sites/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 17:54:45 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=1546</guid>
		<description><![CDATA[This is me trying to understand it:
Instead of services that read your feeds (e.g. Google Reader) having to ASK for your feed periodically, now they can instead just wait until YOUR SITE notifies THEM. Basically a &#8220;push&#8221; service. 
It seems to me this is half the equation. The other half is building services that accept [...]]]></description>
			<content:encoded><![CDATA[<p>This is me trying to understand it:</p>
<p>Instead of services that read your feeds (e.g. Google Reader) having to ASK for your feed periodically, now they can instead just wait until YOUR SITE notifies THEM. Basically a &#8220;push&#8221; service. </p>
<p>It seems to me this is half the equation. The other half is building services that accept these push notifications. I&#8217;m not sure who is already doing that, but I wouldn&#8217;t be surprised if Google is on it, since it seems like a more efficient way of doing things on both sides (less server resources on both sides).</p>
<p>Two concerns I can think of:</p>
<ol>
<li>Is this just as reliable as the &#8220;old&#8221; way? People not getting feed updates because of a hiccup in the chain sucks for everyone.</li>
<li>This makes &#8220;accidentally&#8221; hitting that publish button potentially even more embarrassing than it already can be. Like when you <a href="http://digwp.com/2010/03/change-quick-action-button/#comment-3578">accidentally publish a post instead of a page</a>.</li>
</ol>
<p>Also check the <a href="http://code.google.com/p/pubsubhubbub/">overview slideshow here</a>.</p>
<p><small><a href="http://en.blog.wordpress.com/2010/03/03/rub-a-dub-dub-in-the-pubsubhubbub/" title="Direct link to featured article">Direct Link to Article</a> &#8212; <a href="http://digwp.com/2010/03/pubsubhubbub-now-on-all-wordpress-com-sites-plugin-for-self-hosted-sites/" title="Permalink to post on DiW">Permalink on DiW</a></small></p><p style="border:1px solid #ccc; background: #eee; line-height: 20px; padding: 5px 10px; margin-top: 10px;">Like the article? <a href="http://digwp.com/book"><strong>Get the book!</strong></a></p>
<hr />
<p><small>© 2010 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2010/03/pubsubhubbub-now-on-all-wordpress-com-sites-plugin-for-self-hosted-sites/">Permalink</a> | <a href="http://digwp.com/2010/03/pubsubhubbub-now-on-all-wordpress-com-sites-plugin-for-self-hosted-sites/#comments">Comments</a> | Add to
<a href="http://del.icio.us/post?url=http://digwp.com/2010/03/pubsubhubbub-now-on-all-wordpress-com-sites-plugin-for-self-hosted-sites/&title=PubSubHubbub Now On All WordPress.com sites (+ plugin for self hosted&nbsp;sites)">Delicious</a><br />
Categorized: <a href="http://digwp.com/category/links/" title="View all posts in Links" rel="category tag">Links</a> | Tagged: </small></p><img src="http://feeds.feedburner.com/~r/DiggingIntoWordpress/~4/-aQdqjPCW0E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2010/03/pubsubhubbub-now-on-all-wordpress-com-sites-plugin-for-self-hosted-sites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://en.blog.wordpress.com/2010/03/03/rub-a-dub-dub-in-the-pubsubhubbub/</feedburner:origLink></item>
		<item>
		<title>Add Link to Favorites Dropdown</title>
		<link>http://feedproxy.google.com/~r/DiggingIntoWordpress/~3/r4E0Fcqj_CM/</link>
		<comments>http://digwp.com/2010/03/add-link-to-favorites-dropdown/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 17:36:06 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=1544</guid>
		<description><![CDATA[This is basically a smarter way to handle the situation I just posted about. Using a function to manipulate the favorites dropdown instead of a core hack.
Direct Link to Article &#8212; Permalink on DiWLike the article? Get the book!

© 2010 Digging into WordPress &#124; Permalink &#124; Comments &#124; Add to
Delicious
Categorized: Links &#124; Tagged: ]]></description>
			<content:encoded><![CDATA[<p>This is basically a smarter way to handle the situation I just posted about. Using a function to manipulate the favorites dropdown instead of a core hack.</p>
<p><small><a href="http://tipsforwordpress.com/wordpress/add-link-to-favorites-drop-down/" title="Direct link to featured article">Direct Link to Article</a> &#8212; <a href="http://digwp.com/2010/03/add-link-to-favorites-dropdown/" title="Permalink to post on DiW">Permalink on DiW</a></small></p><p style="border:1px solid #ccc; background: #eee; line-height: 20px; padding: 5px 10px; margin-top: 10px;">Like the article? <a href="http://digwp.com/book"><strong>Get the book!</strong></a></p>
<hr />
<p><small>© 2010 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2010/03/add-link-to-favorites-dropdown/">Permalink</a> | <a href="http://digwp.com/2010/03/add-link-to-favorites-dropdown/#comments">Comments</a> | Add to
<a href="http://del.icio.us/post?url=http://digwp.com/2010/03/add-link-to-favorites-dropdown/&title=Add Link to Favorites&nbsp;Dropdown">Delicious</a><br />
Categorized: <a href="http://digwp.com/category/links/" title="View all posts in Links" rel="category tag">Links</a> | Tagged: </small></p><img src="http://feeds.feedburner.com/~r/DiggingIntoWordpress/~4/r4E0Fcqj_CM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2010/03/add-link-to-favorites-dropdown/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://tipsforwordpress.com/wordpress/add-link-to-favorites-drop-down/</feedburner:origLink></item>
		<item>
		<title>Change Quick Action Button in Admin</title>
		<link>http://feedproxy.google.com/~r/DiggingIntoWordpress/~3/BzMIGCG5uis/</link>
		<comments>http://digwp.com/2010/03/change-quick-action-button/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 15:12:20 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Admin]]></category>
		<category><![CDATA[pages]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=1227</guid>
		<description><![CDATA[You know the &#8220;quick action&#8221; button in the WordPress admin? It&#8217;s a darn useful little UI touch. At the Dashboard, the default is &#8220;New Post&#8221;. But depending on where you are in the Admin, the default of it changes. In general it&#8217;s really helpful. For example when you are in the Plugins area, the default [...]]]></description>
			<content:encoded><![CDATA[<p>You know the &#8220;quick action&#8221; button in the WordPress admin? It&#8217;s a darn useful little UI touch. At the Dashboard, the default is &#8220;New Post&#8221;. But depending on where you are in the Admin, the default of it changes. In general it&#8217;s really helpful. For example when you are in the Plugins area, the default is Install Plugins:</p>
<div class="image-wrap">
<img src="http://digwp.com/wp-content/blog-images/installplugins.png" width="316" height="86" alt="" title="" /><br />
Default action being smart
</div>
<p><span id="more-1227"></span></p>
<p>A while ago I was moaning about one particular area where I didn&#8217;t find the default being so smart. When you publish a new Post, the default goes to New Post. To me it would make sense when you publish a new Page to have that button be New Page. If you have a WordPress site where you publish a lot of pages, you can feel me.</p>
<p>Reader <a href="http://ottodestruct.com">Otto</a> let me know there is a way you can change this. Here is Otto:</p>
<blockquote><p>Adding the New Page as default there is actually rather simple.</p>
<p>Look in wp-admin/includes/template.php. Down towards the bottom of the file, you&#8217;ll find the function favorite_actions().</p>
<p>In that function, it reads the wp-admin page name and sets a $default_action based on that. For example, when you&#8217;re looking at the edit-pages.php screen, the default action becomes &#8220;New Page&#8221;.</p>
<p>The Page editor screen is page.php. Note that it has no default action. To give it one, simply add a case &#8216;page.php&#8217;: in the correct place. You can add it directly before that case &#8216;edit-pages.php&#8217; if you want the default action to be the same New Page link.</p>
<p>If you want this change made to core, then I suggest making an Enhancement ticket to that effect on the WordPress trac. As always search first, somebody else might have already made that ticket request.</p></blockquote>
<p>So to fix my particular gripe, I just opened the file at the path mentioned above and found the <code>favorite_actions</code> function. It&#8217;s a pretty readable function, and adding a new bit to change the behavior is pretty easy. I just added this right above the one for <code>edit-pages.php</code></p>
<pre><code>case 'page.php':
   $default_action = array('page-new.php' =&gt; array(__('New Page'), 'edit_pages'));
   break;</code></pre>
<div class="image-wrap">
<img src="http://digwp.com/wp-content/blog-images/pagepublished.png" width="582" height="142" alt="" title="" /><br />
Fixed!
</div>
<h3>Important notes</h3>
<p>This is what you would call a &#8220;core hack&#8221;. Meaning that next time you upgrade WordPress, this code will be gone. It doesn&#8217;t mean &#8220;don&#8217;t do it&#8221; and it especially doesn&#8217;t mean &#8220;do it and don&#8217;t upgrade&#8221;. It means that you should make a note somewhere handy to yourself that when you do upgrade, you can see if it&#8217;s fixed and if it&#8217;s not, make the same alteration again. </p>
<p>Also as Otto suggested, there is an official channel for getting stuff done like this, the <a href="http://core.trac.wordpress.org/">WordPress trac</a>. I&#8217;ve never submitted anything there before, but to put my money where my mouth is I <a href="http://core.trac.wordpress.org/ticket/12430">opened a ticket</a>. </p>
<p style="border:1px solid #ccc; background: #eee; line-height: 20px; padding: 5px 10px; margin-top: 10px;">Like the article? <a href="http://digwp.com/book"><strong>Get the book!</strong></a></p>
<hr />
<p><small>© 2010 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2010/03/change-quick-action-button/">Permalink</a> | <a href="http://digwp.com/2010/03/change-quick-action-button/#comments">6 comments</a> | Add to
<a href="http://del.icio.us/post?url=http://digwp.com/2010/03/change-quick-action-button/&title=Change Quick Action Button in&nbsp;Admin">Delicious</a><br />
Categorized: <a href="http://digwp.com/category/admin/" title="View all posts in Admin" rel="category tag">Admin</a> | Tagged: <a href="http://digwp.com/tag/admin/" rel="tag">Admin</a>, <a href="http://digwp.com/tag/pages/" rel="tag">pages</a>, <a href="http://digwp.com/tag/tricks/" rel="tag">tricks</a></small></p><img src="http://feeds.feedburner.com/~r/DiggingIntoWordpress/~4/BzMIGCG5uis" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2010/03/change-quick-action-button/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://digwp.com/2010/03/change-quick-action-button/</feedburner:origLink></item>
		<item>
		<title>Digging Into WordPress v2.0 + Print is Back! (Oh, and a fresh new design!)</title>
		<link>http://feedproxy.google.com/~r/DiggingIntoWordpress/~3/X7H8OjNlntc/</link>
		<comments>http://digwp.com/2010/03/digwpv2/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 13:06:24 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Upgrade]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[Theme]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=1526</guid>
		<description><![CDATA[ Version 2.0 is here! If you have already purchased the book, you have already gotten an email with a link to download the 2.0 version of the book. If you have been waiting for the print version to come back in stock, the time is now! 
We sold out of the print version the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://digwp.com/book/" style="padding:0; border:0;"><img src="http://css-tricks.com/wp-content/csstricks-uploads/v2250promo.png" width="250" height="250" alt="" style="float: left; margin: 0 10px 2px 0;" /></a> Version 2.0 is here! If you have already purchased the book, you have already gotten an email with a link to download the 2.0 version of the book. If you have been waiting for the print version to come back in stock, the time is now! </p>
<p>We sold out of the print version the first round in a matter of weeks. Right about that time, WordPress 2.9 was coming out, so instead of just reprinting more we decided to update the book and print new copies with that fresh information. That is exactly what we have done. The all-new Chapter 11 of the book deals with new stuff in WordPress 2.9 (and how to use the new features). That chapter will also be the home for future version-specific updates to WordPress. </p>
<p>Read on to find out more about the book. Oh and by the way, <em>we&#8217;re sporting a fresh new design here on the site</em>. What do you think?</p>
<p><span id="more-1526"></span></p>
<p>There is also brand-new Chapter 10 called &#8220;Bonus Tricks!&#8221; which deals with some cool new tricks for your themes. This chapter is also where we <strong>introduce the new themes that now come bundled with the book</strong>. That&#8217;s right folks, the book now comes bundled with two major new themes, as well as some child themes for those, and a couple of other bonus themes. These themes are book-only, meaning that the only way to get them is through the book bundle, which comes with either book buying option.</p>
<p>The book is some 30+ pages longer, sporting a shinier tougher cover, thicker binding coil, and updated and improved content throughout, the price point is going to remain the same for both the PDF and Print bundle. It&#8217;s costing us a good bit more to produce, but we upped the quantity we ordered a bit to cover some of that. Still got the family working hard!</p>
<h3>Bundled Themes</h3>
<p>The best way to illustrate and explain something is often just to give someone the finished product and let them explore it. There is lots of code in the book, but it&#8217;s all removed from the context of a real design. Now you&#8217;ll get some real themes along with the book so you can see how that code is used in an actual theme. The themes do a particularly good job illustrating two big topics:</p>
<ul>
<li><strong>Theme Options Panel</strong> &#8211; Both themes have options panels for setting various theme-specific options. They are built in a &#8220;framework&#8221; style, so that adding your own or adjusting what options are there is pretty easy.</li>
<li><strong>Child Themes</strong> &#8211; Both themes come with a child theme which restyles the theme without affecting any of how it works. If you&#8217;ve always wondered how that works, you can see it with these themes.</li>
</ul>
<p><img src="http://css-tricks.com/wp-content/csstricks-uploads/bundledthemes.jpg" width="570" height="480" alt="" title="" /></p>
<h4>Plastique</h4>
<p>See theme options shine here as there is <strong>a ton</strong> of options to control your theme. Everything from how it is laid out (columns, positions) to what types of things you wish to include, to adding in markup into individual sections. <a href="http://themeclubhouse.digwp.com/index.php?wptheme=Plastique">Preview Theme</a></p>
<h4>Lines &#038; Boxes</h4>
<p>Based on the look of a wireframe, Lines &#038; Boxes could be used as-is for a minimalist look, or used as a starting point for a more fleshed out graphical theme. Some theme options including overriding the header of the site, and options on if you want the main navigation to be a category list or a page list. <a href="http://themeclubhouse.digwp.com/index.php?wptheme=Lines%20and%20Boxes">Preview Theme</a></p>
<h4>All AJAX</h4>
<p>&#8220;All Ajax&#8221;, also a bundled theme, is based off Lines &#038; Boxes but is not technically a child theme. The idea is that every internal link on the site loads without page refresh. <a href="http://themeplayground.digwp.com/index.php?wptheme=All%20AJAX">Preview Theme</a></p>
<h3>Get it</h3>
<p>Even with all the new themes and 30+ new pages, the price point for the book and PDF stay the same. $27 for the PDF and $67 + S&#038;H for the Book/PDF Combo. If you buy the print book, remember that automatically comes with the PDF which now comes as a bundle with the themes, so you don&#8217;t miss out on that action.</p>
<p><strong>What happens if you bought the PDF while the book was sold out and now want the print copy?</strong> That would be anytime between January 18th and February 28th. If that describes your situation, just forward a copy of your receipt to sales@digwp.com and ask us for a discount code. We&#8217;ll send you one you can use on the print copy good for the value of what you paid for the PDF.</p>
<p><a href="http://digwp.com/book/" class="button">Go get it!</a></p>
<h3>Regarding Shipping</h3>
<p>Books are basically being assembled at the time of this writing. It is likely that they&#8217;ll be boxed and labeled to ship to you folks a week from today. So if you order today, just note that you&#8217;ll probably get them in about 10-12 days. Later orders will arrive in typically more like 4-5 days. International orders take more time.</p>
<p style="border:1px solid #ccc; background: #eee; line-height: 20px; padding: 5px 10px; margin-top: 10px;">Like the article? <a href="http://digwp.com/book"><strong>Get the book!</strong></a></p>
<hr />
<p><small>© 2010 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2010/03/digwpv2/">Permalink</a> | <a href="http://digwp.com/2010/03/digwpv2/#comments">25 comments</a> | Add to
<a href="http://del.icio.us/post?url=http://digwp.com/2010/03/digwpv2/&title=Digging Into WordPress v2.0 + Print is Back! (Oh, and a fresh new&nbsp;design!)">Delicious</a><br />
Categorized: <a href="http://digwp.com/category/upgrade/" title="View all posts in Upgrade" rel="category tag">Upgrade</a> | Tagged: <a href="http://digwp.com/tag/book/" rel="tag">book</a>, <a href="http://digwp.com/tag/theme/" rel="tag">Theme</a></small></p><img src="http://feeds.feedburner.com/~r/DiggingIntoWordpress/~4/X7H8OjNlntc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2010/03/digwpv2/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		<feedburner:origLink>http://digwp.com/2010/03/digwpv2/</feedburner:origLink></item>
		<item>
		<title>WordPress Defender: 30 Ways to Secure Your Website</title>
		<link>http://feedproxy.google.com/~r/DiggingIntoWordpress/~3/bKrpDaoRnxg/</link>
		<comments>http://digwp.com/2010/02/wordpress-defender/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 18:20:35 +0000</pubDate>
		<dc:creator>Jeff Starr</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=1439</guid>
		<description><![CDATA[Looking for a good book on WordPress security? If so, we&#8217;ve got great news! John Hoff&#8217;s new security e-book WordPress Defender provides 30 practical ways to secure your website from the evil forces of spam, bad bots, and malicious hackers. The book is packed with practical, common-sense security techniques that virtually any WordPress user can [...]]]></description>
			<content:encoded><![CDATA[<p>Looking for a good book on WordPress security? If so, we&rsquo;ve got great news! <a href="http://wpbloghost.com/" title="WP Blog Host">John Hoff</a>&rsquo;s new security e-book <a href="http://securemyblog.com/" title="WordPress Defender">WordPress Defender</a> provides 30 practical ways to secure your website from the evil forces of spam, bad bots, and malicious hackers. The book is packed with practical, common-sense security techniques that virtually <em>any</em> WordPress user can use to protect their site from malicious threats. </p>
<p>The book begins with some general information and then immediately gets into explaining everything you need to know. Throughout the book, John covers everything from backing up and upgrading to blocking bad queries and hiding sensitive information. Along the way, you will learn many tricks and techniques for securing your WordPress-powered site, including htaccess code, WordPress plugins, and much more.</p>
<p><span id="more-1439"></span></p>
<p>Here are some of the highlights of WordPress Defender:</p>
<ul>
<li>Essential best practices</li>
<li>Kick-ass security plugins</li>
<li>Creating tripwires with htaccess</li>
<li>How to hide sensitive information</li>
<li>How to setup and connect with <acronym title="Secure Sockets Layer">SSL</acronym></li>
</ul>
<p>..and of course much more. WordPress Defender is WordPress security for the masses. Seriously, I think that just about everyone using WordPress will benefit from this book. Plus, John&rsquo;s easy-going, laid-back writing style makes you feel right at home as he walks you through the many different ways of protecting your site. If you use WordPress and need to know more about how to protect your site against villains, you need to get <a href="http://securemyblog.com/" title="WordPress Defender">WordPress Defender</a>.</p>
<p>Special 50% discount on the e-book today through March 3rd!</p>
<p style="border:1px solid #ccc; background: #eee; line-height: 20px; padding: 5px 10px; margin-top: 10px;">Like the article? <a href="http://digwp.com/book"><strong>Get the book!</strong></a></p>
<hr />
<p><small>© 2010 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2010/02/wordpress-defender/">Permalink</a> | <a href="http://digwp.com/2010/02/wordpress-defender/#comments">One comment</a> | Add to
<a href="http://del.icio.us/post?url=http://digwp.com/2010/02/wordpress-defender/&title=WordPress Defender: 30 Ways to Secure Your&nbsp;Website">Delicious</a><br />
Categorized: <a href="http://digwp.com/category/security/" title="View all posts in Security" rel="category tag">Security</a> | Tagged: <a href="http://digwp.com/tag/links/" rel="tag">Links</a>, <a href="http://digwp.com/tag/security/" rel="tag">Security</a></small></p><img src="http://feeds.feedburner.com/~r/DiggingIntoWordpress/~4/bKrpDaoRnxg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2010/02/wordpress-defender/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://digwp.com/2010/02/wordpress-defender/</feedburner:origLink></item>
		<item>
		<title>Use BuddyPress, Keep your Theme</title>
		<link>http://feedproxy.google.com/~r/DiggingIntoWordpress/~3/hqs3i7oGXJo/</link>
		<comments>http://digwp.com/2010/02/use-buddypress-keep-your-theme/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 20:32:30 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=1483</guid>
		<description><![CDATA[If you want to use BuddyPress (a massive plugin that basically adds a social networking layer to WordPress sites, think, forums, profiles, user blogs, etc) but you&#8217;ve been hesitant to try it, now is a better time than ever.
BuddyPress 1.2 now works with stand-alone WordPress installs (before you had to use MU) and you can [...]]]></description>
			<content:encoded><![CDATA[<p>If you want to use BuddyPress (a massive plugin that basically adds a social networking layer to WordPress sites, think, forums, profiles, user blogs, etc) but you&#8217;ve been hesitant to try it, now is a better time than ever.</p>
<p>BuddyPress 1.2 now works with stand-alone WordPress installs (before you had to use MU) and you can even keep your existing theme.</p>
<p><small><a href="http://wordpress.org/development/2010/02/buddypress-for-one-and-all-3/" title="Direct link to featured article">Direct Link to Article</a> &#8212; <a href="http://digwp.com/2010/02/use-buddypress-keep-your-theme/" title="Permalink to post on DiW">Permalink on DiW</a></small></p><p style="border:1px solid #ccc; background: #eee; line-height: 20px; padding: 5px 10px; margin-top: 10px;">Like the article? <a href="http://digwp.com/book"><strong>Get the book!</strong></a></p>
<hr />
<p><small>© 2010 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2010/02/use-buddypress-keep-your-theme/">Permalink</a> | <a href="http://digwp.com/2010/02/use-buddypress-keep-your-theme/#comments">Comments</a> | Add to
<a href="http://del.icio.us/post?url=http://digwp.com/2010/02/use-buddypress-keep-your-theme/&title=Use BuddyPress, Keep your&nbsp;Theme">Delicious</a><br />
Categorized: <a href="http://digwp.com/category/links/" title="View all posts in Links" rel="category tag">Links</a> | Tagged: </small></p><img src="http://feeds.feedburner.com/~r/DiggingIntoWordpress/~4/hqs3i7oGXJo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2010/02/use-buddypress-keep-your-theme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wordpress.org/development/2010/02/buddypress-for-one-and-all-3/</feedburner:origLink></item>
	</channel>
</rss>
