<?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>Denver SEO Blog &#187; WordPress</title>
	<atom:link href="http://www.seodenver.com/category/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.seodenver.com</link>
	<description>Websites designed and optimized for results.</description>
	<lastBuildDate>Fri, 10 Feb 2012 14:53:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>A WordPress Developer&#8217;s Tips for Using Panic Coda</title>
		<link>http://www.seodenver.com/wordpress-developers-tips-panic-coda/</link>
		<comments>http://www.seodenver.com/wordpress-developers-tips-panic-coda/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 17:46:36 +0000</pubDate>
		<dc:creator>Zack Katz</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Coda]]></category>
		<category><![CDATA[Panic Coda]]></category>
		<category><![CDATA[WordPress Codex]]></category>

		<guid isPermaLink="false">http://www.seodenver.com/?p=4535</guid>
		<description><![CDATA[I use Panic Coda for coding. I like its Mac-style interface and it &#8220;fits&#8221; me well. There are some items that are frustrating, including a lack of auto-complete for functions you&#8217;ve already used in your code. Here are three tips to &#8230; <a href="http://www.seodenver.com/wordpress-developers-tips-panic-coda/">Continue reading <span class="meta-nav">&#8594;</span></a>
No related posts.]]></description>
			<content:encoded><![CDATA[<p><a href="http://panic.com/coda/"><img class="alignright size-full wp-image-4540" title="Panic Coda" src="http://www.seodenver.com/wp-content/uploads/2012/02/panic-coda.png" alt="Panic Coda" width="256" height="256" /></a>I use <a href="http://www.panic.com/coda/">Panic Coda</a> for coding. I like its Mac-style interface and it &#8220;fits&#8221; me well. There are some items that are frustrating, including a lack of auto-complete for functions you&#8217;ve already used in your code. Here are three tips to improve your coding experience.<span id="more-4535"></span></p>
<h2>My Three WordPress + Coda Tips</h2>
<h3>1. Install <a href="http://hitchhackerguide.com/2011/02/18/wordpress-syntax-mode-for-panic-coda/">WordPress Syntax mode for Panic Coda</a></h3>
<p>As a WordPress developer, I use lots of WordPress functions. This will allow you to auto-complete WordPress functions. Unfortunately, it doesn&#8217;t include function parameter hints, but that&#8217;s what tip #3 is for.</p>
<h3>2. Replace your WordPress Syntax mode colors</h3>
<p>I didn&#8217;t like the color set it came with, so I exported my colors:</p>
<ol>
<li>Go to Preferences &gt; Colors</li>
<li>Select the color set you like in the &#8220;Language&#8221; window (I exported PHP-HTML)</li>
<li>Click the &#8220;Export&#8221; tab</li>
<li>Edit the <code>.seestyle</code> file in a text editor</li>
<li>Find and replace <code>PHP-HTML</code> with <code>PHP-HTML-WP</code></li>
<li>Save the file</li>
<li>In Coda, click the Import button and select the <code>.seestyle</code> file</li>
<li>Voila: your colors are now what you&#8217;re used to.</li>
</ol>
<h3>3. Configure a <strong>WordPress Codex book</strong> in Coda</h3>
<p><span style="line-height: 24px;">Coda comes built-in with six reference &#8220;books&#8221;; web-based documentation pages for HTML, Javascript, PHP, and CSS.</span></p>
<p>There was <strong>an awesome shortcut in Coda</strong> I didn&#8217;t know about: Command + Double-click on a function name to open a Coda Book describing that function.</p>
<h4>How to configure a WordPress book</h4>
<ol>
<li>Press Command-6 (or go to View &gt; Mode &gt; Books)</li>
<li>Click the + button in the bottom-left of the window</li>
<li>Use the following settings:
<ul>
<li>Book Title: WordPress</li>
<li>Book URL: <code>http://codex.wordpress.org/Function_Reference/</code></li>
<li>Cover Image: Optional. <em><a href="http://www.drastudio.com/past/2008/11/29/adding-more-coda-books/">DRÄ Studio has an article</a> with tons of more book options and a nice <a href="http://www.drastudio.com/file/coda_books/wp.png">WordPress cover image</a> to use.</em></li>
<li>Use for Mode: <code>PHP-HTML</code> or <code>PHP-HTML-WP</code>, depending on whether you installed the Syntax Mode in Step 1</li>
<li>Search URL: <code>http://codex.wordpress.org/Function_Reference/*</code></li>
</ul>
</li>
<li>Click OK</li>
</ol>
<p>Now, when you have auto-completed functions and you forget what parameters the function takes, you can Command+Double-click the function name and be taken directly to the WordPress Codex page relating to it!</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.seodenver.com/wordpress-developers-tips-panic-coda/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress Real Estate Plugin: Stay Tuned&#8230;</title>
		<link>http://www.seodenver.com/wordpress-real-estate-stay-tuned/</link>
		<comments>http://www.seodenver.com/wordpress-real-estate-stay-tuned/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 21:13:37 +0000</pubDate>
		<dc:creator>Zack Katz</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[IDX]]></category>
		<category><![CDATA[Real Estate]]></category>
		<category><![CDATA[Real Estate Plugin]]></category>
		<category><![CDATA[Wordpress Real Estate]]></category>

		<guid isPermaLink="false">http://www.seodenver.com/?p=4016</guid>
		<description><![CDATA[You may have noticed this blog has gone un-updated. That&#8217;s because I&#8217;ve been working on an awesome new plugin. WordPress + Real Estate + User Data + SEO In the past, I&#8217;ve written posts about how to optimize your WordPress &#8230; <a href="http://www.seodenver.com/wordpress-real-estate-stay-tuned/">Continue reading <span class="meta-nav">&#8594;</span></a>
Related posts:<ol>
<li><a href='http://www.seodenver.com/introducing-idx-plus/' rel='bookmark' title='Introducing IDX+,  WordPress Real Estate &amp; IDX Done Right'>Introducing IDX+,  WordPress Real Estate &#038; IDX Done Right</a></li>
<li><a href='http://www.seodenver.com/building-a-real-estate-website-in-wordpress-part-1/' rel='bookmark' title='Building a Real Estate Website in WordPress &#8211; Part 1'>Building a Real Estate Website in WordPress &#8211; Part 1</a></li>
<li><a href='http://www.seodenver.com/creating-a-real-estate-website-in-wordpress-part-2/' rel='bookmark' title='Creating a Real Estate Website in WordPress &#8212; Part 2'>Creating a Real Estate Website in WordPress &#8212; Part 2</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>You may have noticed this blog has gone un-updated. That&#8217;s because I&#8217;ve been working on an awesome new plugin.</p>
<h3>WordPress + Real Estate + User Data + SEO</h3>
<p>In the past, I&#8217;ve written posts about <a title="Building a Real Estate Website in WordPress – Part 1" href="http://www.seodenver.com/building-a-real-estate-website-in-wordpress-part-1/">how to optimize your WordPress real estate website for SEO</a> and I&#8217;ve created a <a title="Trulia Plugin for WordPress" href="http://www.seodenver.com/trulia/">Trulia plugin</a> for WordPress.</p>
<p><strong>This WordPress real estate plugin</strong> changes the game of what you can do with your WordPress website &#8212; and for how much money. No longer do you need to pay tens of thousands of dollars for an indexed IDX solution.</p>
<p><strong>Next week I will release a beta version</strong>, so stay tuned for the formal announcement.</p>
<p>Related posts:<ol>
<li><a href='http://www.seodenver.com/introducing-idx-plus/' rel='bookmark' title='Introducing IDX+,  WordPress Real Estate &amp; IDX Done Right'>Introducing IDX+,  WordPress Real Estate &#038; IDX Done Right</a></li>
<li><a href='http://www.seodenver.com/building-a-real-estate-website-in-wordpress-part-1/' rel='bookmark' title='Building a Real Estate Website in WordPress &#8211; Part 1'>Building a Real Estate Website in WordPress &#8211; Part 1</a></li>
<li><a href='http://www.seodenver.com/creating-a-real-estate-website-in-wordpress-part-2/' rel='bookmark' title='Creating a Real Estate Website in WordPress &#8212; Part 2'>Creating a Real Estate Website in WordPress &#8212; Part 2</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.seodenver.com/wordpress-real-estate-stay-tuned/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easy Content Deployment for WordPress: RAMP</title>
		<link>http://www.seodenver.com/easy-content-deployment-for-wordpress-ramp/</link>
		<comments>http://www.seodenver.com/easy-content-deployment-for-wordpress-ramp/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 17:02:25 +0000</pubDate>
		<dc:creator>Zack Katz</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Publishing]]></category>
		<category><![CDATA[Updates]]></category>
		<category><![CDATA[Updating]]></category>

		<guid isPermaLink="false">http://www.seodenver.com/?p=2325</guid>
		<description><![CDATA[RAMP allows you to make all the changes you need in your staging environment, then selectively push these changes to your production site. You can set up a new section of your site, upload some images to fill out a &#8230; <a href="http://www.seodenver.com/easy-content-deployment-for-wordpress-ramp/">Continue reading <span class="meta-nav">&#8594;</span></a>
No related posts.]]></description>
			<content:encoded><![CDATA[<blockquote><p>RAMP allows you to make all the changes you need in your staging environment, then selectively push these changes to your production site. You can set up a new section of your site, upload some images to fill out a nice carousel for it, and add a link to it on your home page. Once this content has been reviewed and approved, you can go to your RAMP page, select these content changes, and push them to your production site.</p>
<p>via <a href="http://crowdfavorite.com/wordpress/ramp/">Easy Content Deployment for WordPress: RAMP</a>.</p></blockquote>
<p>This would be really handy for larger WordPress sites.</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.seodenver.com/easy-content-deployment-for-wordpress-ramp/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Paginate Links in WordPress Link Manager</title>
		<link>http://www.seodenver.com/paginate-links-wordpress-link-manager/</link>
		<comments>http://www.seodenver.com/paginate-links-wordpress-link-manager/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 17:50:14 +0000</pubDate>
		<dc:creator>Zack Katz</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Link Categories]]></category>
		<category><![CDATA[Link Manager]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Pagination]]></category>
		<category><![CDATA[Wordpress Customization]]></category>

		<guid isPermaLink="false">http://www.seodenver.com/?p=2213</guid>
		<description><![CDATA[Links are not a first-class citizens in WordPress In developing the a website for professional genealogists, I was tasked with creating link directory functionality in WordPress. I didn&#8217;t want to install some big plugins; I wanted to use the Links Manager &#8230; <a href="http://www.seodenver.com/paginate-links-wordpress-link-manager/">Continue reading <span class="meta-nav">&#8594;</span></a>
Related posts:<ol>
<li><a href='http://www.seodenver.com/hierarchical-link-categories-wordpress/' rel='bookmark' title='Hierarchical Link Categories for WordPress'>Hierarchical Link Categories for WordPress</a></li>
<li><a href='http://www.seodenver.com/valuable-gov-links-fda-warning-letter/' rel='bookmark' title='Want some valuable .gov links? Get a FDA warning letter!'>Want some valuable .gov links? Get a FDA warning letter!</a></li>
<li><a href='http://www.seodenver.com/democratic-convention-08-denver/' rel='bookmark' title='Denver Democratic Convention Vendor List &amp; Link Exchange'>Denver Democratic Convention Vendor List &amp; Link Exchange</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<h2>Links are not a first-class citizens in WordPress</h2>
<p>In developing the a website for <a title="Professional Genealogy" href="http://www.melickprofessionalgenealogists.com/">professional genealogists</a>, I was tasked with creating link directory functionality in WordPress. I didn&#8217;t want to install some big plugins; I wanted to use the Links Manager that&#8217;s built in to every WP install out of the box. There were two problems, however:</p>
<ol>
<li>Link categories are not hierarchical, and;</li>
<li>There is no pagination in the <a href="http://codex.wordpress.org/Links_Manager">Links Manager</a>: all links are displayed on one page by default.</li>
</ol>
<p><span style="font-family: Georgia, 'Bitstream Charter', serif; line-height: 24px; font-size: 16px;"><strong>My client&#8217;s website will have over 20,000 links</strong>; having them all on one page was simply not an option. </span></p>
<p><span style="font-family: Georgia, 'Bitstream Charter', serif; line-height: 24px; font-size: 16px;"> </span>I didn&#8217;t want to create a new Post Type or Taxonomy; Links are already the right tool for the job. I moved forward creating the custom solution, and am sharing the results of that development here. The result of the project was a successful deployment of a crazy amount of links (see an example on their <a href="http://www.melickprofessionalgenealogists.com/regions/united-states/iowa/">Iowa genealogy resources</a> page).<span id="more-2213"></span></p>
<h3>Hierarchical link categories</h3>
<div id="attachment_2216" class="wp-caption alignright" style="width: 166px"><a href="http://www.seodenver.com/wp-content/uploads/2011/03/Screen-shot-2011-03-16-at-11.40.01-AM.jpg"><img class="size-medium wp-image-2216" title="Hierarchical Link Categories" src="http://www.seodenver.com/wp-content/uploads/2011/03/Screen-shot-2011-03-16-at-11.40.01-AM-156x300.jpg" alt="Hierarchical Link Categories" width="156" height="300" /></a><p class="wp-caption-text">Hierarchical Link Categories</p></div>
<p>To solve the hierarchical link category issue, <a href="http://wordpress.org/extend/plugins/hierarchical-link-categories/">I created a plugin</a> that defined the link taxonomy before WordPress, allowing link categories to be hierarchical. A few changes to the backend, and it worked properly.</p>
<h3>Paginated link pages</h3>
<p>For some reason, WordPress has treated links as an illegitimate child for years. They impose limits on the functionality (such as non-hierarchical categories) for no reason. A perfect example is that every other taxonomy (posts, pages, media, users, plugins, and even <em>themes</em>) has pagination functionality out of the box.</p>
<p>WordPress 3.1 completely revamped the link manager and most of the taxonomy functionality. This made implementing paginated links as simple as modifying one file. I hoped that I would be able to code this as a plugin, but <strong>achieving link manager pagination functionality without modifying core files was impossible</strong>. I went to work hacking the file responsible for the backend links manager display: <code>/wp-admin/includes/class-wp-links-list-table.php</code>.</p>
<div id="attachment_2215" class="wp-caption aligncenter" style="width: 335px"><img class="size-full wp-image-2215" title="Link Pagination Works!" src="http://www.seodenver.com/wp-content/uploads/2011/03/Screen-shot-2011-03-16-at-11.40.06-AM.jpg" alt="WordPress Link Pagination" width="325" height="29" /><p class="wp-caption-text">292 pages of links, with 800 more to come!</p></div>
<p>I ended up with a solution that works, but lacks some of the basic functionality that other taxonomies have: there is no box in the Screen Options tab that allows you to change how many links per page are displayed. There is, however, a filter (<code>edit_links_per_page</code>) that allows you to modify this number yourself.</p>
<p>It&#8217;s a huge improvement and makes managing large numbers of links possible. Before, the database load itself was ridiculous, let alone the MB&#8217;s of HTML that had to load. Now, managing large numbers of links is as painless as it should have been from the start.</p>
<h3>Download the modified file</h3>
<p>To install:</p>
<ol>
<li>Download and extract this file</li>
<li>Replace your <code>/wp-admin/includes/class-wp-links-list-table.php</code> file with this one</li>
</ol>
Note: There is a file embedded within this post, please visit this post to download the file.
<p>Please leave feedback and improvements, bugs, etc. below in the comments.</p>
<p>Related posts:<ol>
<li><a href='http://www.seodenver.com/hierarchical-link-categories-wordpress/' rel='bookmark' title='Hierarchical Link Categories for WordPress'>Hierarchical Link Categories for WordPress</a></li>
<li><a href='http://www.seodenver.com/valuable-gov-links-fda-warning-letter/' rel='bookmark' title='Want some valuable .gov links? Get a FDA warning letter!'>Want some valuable .gov links? Get a FDA warning letter!</a></li>
<li><a href='http://www.seodenver.com/democratic-convention-08-denver/' rel='bookmark' title='Denver Democratic Convention Vendor List &amp; Link Exchange'>Denver Democratic Convention Vendor List &amp; Link Exchange</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.seodenver.com/paginate-links-wordpress-link-manager/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>SEO WordSpinner Removed from the WordPress Plugins Directory</title>
		<link>http://www.seodenver.com/seo-wordspinner-wordpress-plugins-directory/</link>
		<comments>http://www.seodenver.com/seo-wordspinner-wordpress-plugins-directory/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 21:20:05 +0000</pubDate>
		<dc:creator>Zack Katz</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Censorship]]></category>
		<category><![CDATA[Content Spinner]]></category>
		<category><![CDATA[SEO WordSpinner]]></category>
		<category><![CDATA[WordPress Article Spinner]]></category>
		<category><![CDATA[WordPress Content Spinner]]></category>
		<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[WordPress SEO Plugin]]></category>
		<category><![CDATA[WordPress SEO Plugins]]></category>

		<guid isPermaLink="false">http://www.seodenver.com/?p=2167</guid>
		<description><![CDATA[Today I found out that the SEO WordSpinner plugin is no longer available via its WordPress Directory page. I emailed WordPress plugin-master Mark Riley asking what was up, and he just emailed me back: Hi, There were some complaints about &#8230; <a href="http://www.seodenver.com/seo-wordspinner-wordpress-plugins-directory/">Continue reading <span class="meta-nav">&#8594;</span></a>
Related posts:<ol>
<li><a href='http://www.seodenver.com/seo-wordspinner/' rel='bookmark' title='WordPress Content Spinner Plugin &#8211; SEO WordSpinner'>WordPress Content Spinner Plugin &#8211; SEO WordSpinner</a></li>
<li><a href='http://www.seodenver.com/how-to-tell-if-your-wordpress-widget-is-activated/' rel='bookmark' title='How to tell if your WordPress Plugin or Widget is Activated in WordPress'>How to tell if your WordPress Plugin or Widget is Activated in WordPress</a></li>
<li><a href='http://www.seodenver.com/seo-keyword-list-creator/' rel='bookmark' title='A Great SEO Tool For Geo-Targeted Keyword Combinations'>A Great SEO Tool For Geo-Targeted Keyword Combinations</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Today I found out that the SEO WordSpinner plugin is no longer available via <a rel="nofollow" href="http://wordpress.org/extend/plugins/seo-wordspinner/">its WordPress Directory page</a>. I emailed WordPress plugin-master <a rel="nofollow" href="http://automattic.com/about/#geo-post-551">Mark Riley</a> asking what was up, and he just emailed me back:</p>
<blockquote><p>Hi,<br />
There were some complaints about some SEO plugins.<br />
Your plugin was among those checked and given it&#8217;s purpose is not suitable for the directory now.</p>
<p>Mark.</p></blockquote>
<h3>If you&#8217;re a fan of the SEO WordSpinner plugin, <a href="mailto:plugins@wordpress.org?subject=SEO WordSpinner plugin&amp;body=I support having the SEO WordSpinner plugin on the WordPress Plugin Directory. Please re-activate the plugin!"><strong>email WordPress now</strong></a><strong> to show your support!</strong></h3>
<p><span id="more-2167"></span><div id="attachment_2183" class="wp-caption alignright" style="width: 210px"><img class="size-full wp-image-2183" title="Protest WordPress Walled Gardens" src="http://www.seodenver.com/wp-content/uploads/2011/03/1197499_68722064.jpg" alt="" width="200" height="290" /><p class="wp-caption-text">Show your support for SEO WordSpinner &amp; help prevent WordPress from becoming a walled Garden!</p></div></p>
<p>The <a rel="nofollow" href="http://wordpress.org/extend/plugins/about/">guidelines for the directory</a> state that plugins &#8220;must not do anything illegal, or be morally offensive.&#8221;</p>
<p>The SEO WordSpinner plugin does nothing illegal or immoral. The only &#8220;morality&#8221; issue may be that the plugin is at odds with Google policies&#8230;but <strong>why is WordPress equating &#8220;morality&#8221; with Google policy?</strong></p>
<p>Note: You can still download the plugin <a href="http://www.seodenver.com/seo-wordspinner/">from the SEO WordSpinner plugin page</a>.</p>
<p>Related posts:<ol>
<li><a href='http://www.seodenver.com/seo-wordspinner/' rel='bookmark' title='Kick SEO Ass with SEO WordSpinner Plugin for WordPress'>WordPress Content Spinner Plugin &#8211; SEO WordSpinner</a></li>
<li><a href='http://www.seodenver.com/how-to-tell-if-your-wordpress-widget-is-activated/' rel='bookmark' title='How to tell if your WordPress Plugin or Widget is Activated in WordPress'>How to tell if your WordPress Plugin or Widget is Activated in WordPress</a></li>
<li><a href='http://www.seodenver.com/seo-keyword-list-creator/' rel='bookmark' title='A Great SEO Tool For Geo-Targeted Keyword Combinations'>A Great SEO Tool For Geo-Targeted Keyword Combinations</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.seodenver.com/seo-wordspinner-wordpress-plugins-directory/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Hierarchical Link Categories for WordPress</title>
		<link>http://www.seodenver.com/hierarchical-link-categories-wordpress/</link>
		<comments>http://www.seodenver.com/hierarchical-link-categories-wordpress/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 16:31:12 +0000</pubDate>
		<dc:creator>Zack Katz</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[Link Categories]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[WordPress Plugins]]></category>

		<guid isPermaLink="false">http://www.seodenver.com/?p=2085</guid>
		<description><![CDATA[If you&#8217;ve ever tried to use WordPress&#8217; built-in bookmarks / links manager, you know that its limits can be frustrating. One of the biggest issues I&#8217;ve encountered is that the link categories are not hierarchical. Let&#8217;s say you have a &#8230; <a href="http://www.seodenver.com/hierarchical-link-categories-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>
Related posts:<ol>
<li><a href='http://www.seodenver.com/paginate-links-wordpress-link-manager/' rel='bookmark' title='Paginate Links in WordPress Link Manager'>Paginate Links in WordPress Link Manager</a></li>
<li><a href='http://www.seodenver.com/custom-titles-for-tag-category/' rel='bookmark' title='Add Custom Titles for Tags and Categories in WordPress'>Add Custom Titles for Tags and Categories in WordPress</a></li>
<li><a href='http://www.seodenver.com/rich-text-tags/' rel='bookmark' title='Rich Text Tag, Category, and Taxonomy Descriptions for WordPress'>Rich Text Tag, Category, and Taxonomy Descriptions for WordPress</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p class="highlight" ><a href="http://wordpress.org/extend/plugins/hierarchical-link-categories/">Download the plugin on WordPress.org</a></p>
<p>If you&#8217;ve ever tried to use WordPress&#8217; built-in bookmarks / links manager, you know that its limits can be frustrating. One of the biggest issues I&#8217;ve encountered is that the <strong>link categories are not hierarchical</strong>.</p>
<p>Let&#8217;s say you have a tech blog and you link to a lot of pages about TV&#8217;s. You may want to categorize the links under TV &gt; Plasma or TV &gt; LCD. With the existing system, you cannot.</p>
<h3>Enter the <a href="http://wordpress.org/extend/plugins/hierarchical-link-categories/">Hierarchical Link Categories</a> plugin</h3>
<p><span id="more-2085"></span>Finally, with the new plugin by yours truly, you can create link categories that have parent categories. Blogroll categories can be nested, and the world breathes a sigh of relief.</p>

<a href='http://www.seodenver.com/hierarchical-link-categories-wordpress/screenshot-2-3/' title='screenshot-2'><img width="150" height="150" src="http://www.seodenver.com/wp-content/uploads/2011/01/screenshot-2-150x150.jpg" class="attachment-thumbnail" alt="The plugin displays nested categories on Add Link page" title="screenshot-2" /></a>
<a href='http://www.seodenver.com/hierarchical-link-categories-wordpress/screenshot-3-3/' title='screenshot-3'><img width="150" height="150" src="http://www.seodenver.com/wp-content/uploads/2011/01/screenshot-3-150x150.jpg" class="attachment-thumbnail" alt="Blogroll parent categories" title="screenshot-3" /></a>
<a href='http://www.seodenver.com/hierarchical-link-categories-wordpress/screenshot-1-4/' title='You can select parent categories in Link Categories page'><img width="150" height="150" src="http://www.seodenver.com/wp-content/uploads/2011/01/screenshot-1-150x150.jpg" class="attachment-thumbnail" alt="Hierarchical Link Categories WordPress" title="You can select parent categories in Link Categories page" /></a>

<h4>What the plugin doesn&#8217;t do&#8230;yet:</h4>
<ul>
<li>When you&#8217;re in the &#8220;Add Link&#8221; page, you cannot add a child category</li>
<li>You tell me! <strong>Leave suggestions below</strong>.</li>
</ul>
<p>Related posts:<ol>
<li><a href='http://www.seodenver.com/paginate-links-wordpress-link-manager/' rel='bookmark' title='Paginate Links in WordPress Link Manager'>Paginate Links in WordPress Link Manager</a></li>
<li><a href='http://www.seodenver.com/custom-titles-for-tag-category/' rel='bookmark' title='Add Custom Titles for Tags and Categories in WordPress'>Add Custom Titles for Tags and Categories in WordPress</a></li>
<li><a href='http://www.seodenver.com/rich-text-tags/' rel='bookmark' title='Rich Text Tag, Category, and Taxonomy Descriptions for WordPress'>Rich Text Tag, Category, and Taxonomy Descriptions for WordPress</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.seodenver.com/hierarchical-link-categories-wordpress/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Gravity Forms Shortcode Explained</title>
		<link>http://www.seodenver.com/gravity-forms-shortcode/</link>
		<comments>http://www.seodenver.com/gravity-forms-shortcode/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 23:10:36 +0000</pubDate>
		<dc:creator>Zack Katz</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Gravity Forms]]></category>
		<category><![CDATA[Gravity Forms Ajax]]></category>
		<category><![CDATA[Gravity Forms Plugin]]></category>
		<category><![CDATA[shortcode]]></category>
		<category><![CDATA[WordPress Shortcode]]></category>

		<guid isPermaLink="false">http://www.seodenver.com/?p=2059</guid>
		<description><![CDATA[What are shortcodes? Think of shortcodes as a placeholder for where other content will be displayed: instead of &#8220;Insert a Gravity Forms form here,&#8221; we use the gravityform shortcode. Learn more about shortcodes on WordPress.org. The Gravity Forms shortcode has five &#8230; <a href="http://www.seodenver.com/gravity-forms-shortcode/">Continue reading <span class="meta-nav">&#8594;</span></a>
Related posts:<ol>
<li><a href='http://www.seodenver.com/gravity-forms-ajax/' rel='bookmark' title='Gravity Forms Ajax Submit &#8211; Version 1.4 Adds Ajax Support'>Gravity Forms Ajax Submit &#8211; Version 1.4 Adds Ajax Support</a></li>
<li><a href='http://www.seodenver.com/gravity-forms-addons/' rel='bookmark' title='Improve Gravity Forms &#8211; Gravity Forms Addons Plugin'>Improve Gravity Forms &#8211; Gravity Forms Addons Plugin</a></li>
<li><a href='http://www.seodenver.com/disable-gravity-forms-css-stylesheet/' rel='bookmark' title='5 Easy Ways to Disable the Gravity Forms CSS Stylesheet'>5 Easy Ways to Disable the Gravity Forms CSS Stylesheet</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p class="highlight" >This post is about <a href="http://bit.ly/dvF8BI">Gravity Forms</a>, a WordPress contact form plugin.</p>
<h4>What are shortcodes?</h4>
<p>Think of shortcodes as a placeholder for where other content will be displayed: instead of &#8220;Insert a Gravity Forms form here,&#8221; we use the <code>gravityform</code> shortcode. <a href="http://codex.wordpress.org/Shortcode_API">Learn more about shortcodes on WordPress.org</a>.</p>
<h2>The Gravity Forms <code>shortcode</code> has five pieces:</h2>
<p><strong><code>&#091;gravityform id=# name=TEXT title=boolean description=boolean ajax=boolean&#093;</code></strong></p>
<ol>
<li><code>id</code><em> (required)</em> &#8211; The ID of the form, as displayed on the Gravity Forms <em>Edit Forms</em> page in the Id column</li>
<li><code>name</code><em> (required) </em>- The name of the form.</li>
<li><code>title</code> &#8211; Show the title to users? Default is true; set to &#8220;false&#8221; to disable</li>
<li><code>description</code> &#8211; Show the form&#8217;s description to users? Default is true; set to &#8220;false&#8221; to disable.</li>
<li><code>ajax</code> &#8211; Submit the form without refreshing? Default is false; set to &#8220;true&#8221; to enable.</li>
</ol>
<h3>Gravity Forms Shortcode Examples:</h3>
<p><code>&#091;gravityform id=1 name=Example Form title=false description=false ajax=true&#093;</code><br />
Will result in Form #1 being displayed without a title or description, with no-refresh entry submission.<span id="more-2059"></span></p>
<p><strong>The shortcode above could be read as:</strong> &#8220;<em>Insert Gravity Forms Form #1 here. Do not show the title or description. The form should use Ajax to submit entries.</em>&#8221;</p>
<p><code>&#091;gravityform id=2 name=Another Form&#093;</code><br />
Will result in Form #2 being displayed. The title and description will be displayed (they are true by default), and entries will require a page-load (ajax is off by default).</p>
<p><code>&#091;gravityform id=3 name=Yet Another Form description=false ajax=true&#093;</code><br />
Will result in Form #3 being displayed. The title will be displayed, but the description will not. Entries will not require a page-load (ajax is turned on).</p>
<h3>Any questions?</h3>
<p>This post has been created to make explicitly clear how the Gravity Forms shortcode works. If you have any unanswered questions, please leave them in the comments below and they will be answered.</p>
<p>Related posts:<ol>
<li><a href='http://www.seodenver.com/gravity-forms-ajax/' rel='bookmark' title='Gravity Forms Ajax Submit &#8211; Version 1.4 Adds Ajax Support'>Gravity Forms Ajax Submit &#8211; Version 1.4 Adds Ajax Support</a></li>
<li><a href='http://www.seodenver.com/gravity-forms-addons/' rel='bookmark' title='Improve Gravity Forms &#8211; Gravity Forms Addons Plugin'>Improve Gravity Forms &#8211; Gravity Forms Addons Plugin</a></li>
<li><a href='http://www.seodenver.com/disable-gravity-forms-css-stylesheet/' rel='bookmark' title='5 Easy Ways to Disable the Gravity Forms CSS Stylesheet'>5 Easy Ways to Disable the Gravity Forms CSS Stylesheet</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.seodenver.com/gravity-forms-shortcode/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Shopify Importer &#8211; Import Shopify Products into WordPress</title>
		<link>http://www.seodenver.com/shopify-importer/</link>
		<comments>http://www.seodenver.com/shopify-importer/#comments</comments>
		<pubDate>Thu, 02 Dec 2010 17:13:45 +0000</pubDate>
		<dc:creator>Zack Katz</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Shopify]]></category>
		<category><![CDATA[Shopping Cart]]></category>
		<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[WordPress Shopping Cart]]></category>

		<guid isPermaLink="false">http://www.seodenver.com/?p=1900</guid>
		<description><![CDATA[Download the plugin from WordPress.org Shopify is a great hosted eCommerce provider. WordPress is the best blogging platform. I first learned about Shopify in 2007, and was very interested in their service: they take care of every aspect of an &#8230; <a href="http://www.seodenver.com/shopify-importer/">Continue reading <span class="meta-nav">&#8594;</span></a>
Related posts:<ol>
<li><a href='http://www.seodenver.com/interspire-bigcommerce-wordpress/' rel='bookmark' title='Interspire &amp; BigCommerce WordPress Plugin'>Interspire &#038; BigCommerce WordPress Plugin</a></li>
<li><a href='http://www.seodenver.com/seo-wordspinner/' rel='bookmark' title='WordPress Content Spinner Plugin &#8211; SEO WordSpinner'>Kick SEO Ass with SEO WordSpinner Plugin for WordPress</a></li>
<li><a href='http://www.seodenver.com/how-to-tell-if-your-wordpress-widget-is-activated/' rel='bookmark' title='How to tell if your WordPress Plugin or Widget is Activated in WordPress'>How to tell if your WordPress Plugin or Widget is Activated in WordPress</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.shopify.com/?ref=katz-web-services"><img class="size-full wp-image-1903 aligncenter" title="Shopify for WordPress" src="http://www.seodenver.com/wp-content/uploads/2010/12/shopify.jpg" alt="" width="500" height="98" /></a></p>
<p class="donatebox"><a rel="nofollow" href="http://wordpress.org/extend/plugins/shopify/">Download the plugin from WordPress.org</a></p>
<h2><a href="http://www.shopify.com/?ref=katz-web-services">Shopify</a> is a great hosted eCommerce provider. WordPress is the best blogging platform.</h2>
<p>I first learned about <a href="http://www.shopify.com/?ref=katz-web-services">Shopify</a> in 2007, and was very interested in their service: they take care of every aspect of an eCommerce shop, and you pay them monthly plus a little cut of your sales.</p>
<ul>
<li><strong>Themes</strong>: Shopify has a great <a href="http://www.shopify.com/tour/design/?ref=katz-web-services">theme generator</a> package that uses Ruby on Rails and it also has a <a href="http://themes.shopify.com?ref=katz-web-services">theme store</a> with tons of beautiful, standards-compliant themes.</li>
<li><strong>Apps</strong>: The <a href="http://www.shopify.com/tour/appstore/?ref=katz-web-services">Shopify App Store</a> features free and paid applications that integrate using the Shopify API.</li>
<li><strong>Hosting</strong>: Shopify uses Rackspace and Akamai for hosting and as a CDN, respectively. Security, hosting, etc.</li>
<li>&#8230;and <a href="http://www.shopify.com/tour/features/?ref=katz-web-services">tons of other features</a></li>
</ul>
<p><a href="http://www.seodenver.com/wp-content/uploads/2010/12/Screen-shot-2010-12-02-at-9.55.50-AM.jpg"><img class="alignright size-medium wp-image-1901" title="Shopify Blog Functionality" src="http://www.seodenver.com/wp-content/uploads/2010/12/Screen-shot-2010-12-02-at-9.55.50-AM-300x257.jpg" alt="Shopify Blog Functionality" width="300" height="257" /></a>I am still impressed with Shopify, but when I logged in recently to my Shopify account, I saw that Shopify&#8217;s &#8220;blogging&#8221; functionality is <em>weak</em>. <strong>Very weak</strong>. When I saw that there was an app to <a href="https://importer.heroku.com/">import a WordPress blog into Shopify</a>, I laughed, and went ahead creating a <strong>Shopify importer for WordPress</strong>.<span id="more-1900"></span></p>
<h2>Import Shopify Products as Blog Posts</h2>
<p>The <a href="http://wordpress.org/extend/plugins/shopify/">Shopify Importer plugin</a> is designed to make blogging about each of your products simple.</p>
<ol>
<li>Export your products from Shopify (Go to Products, click on Export Products, then Export all products). This will save a CSV file to your computer.</li>
<li>In WordPress, go to Tools &gt; Import. Click on Shopify.</li>
<li>Follow the instructions, select the CSV file from your computer</li>
<li>Click the Upload file and import button</li>
</ol>
<p>When products are imported, the tags are converted to WordPress tags, vendors are converted to categories (if selected), and all the product information is stored as a Custom Field for the post or page.</p>
<p>There are plans to expand the plugin to add additional functionality. <strong>What would you like to be added to the plugin?</strong></p>
<p>Related posts:<ol>
<li><a href='http://www.seodenver.com/interspire-bigcommerce-wordpress/' rel='bookmark' title='Interspire &amp; BigCommerce WordPress Plugin'>Interspire &#038; BigCommerce WordPress Plugin</a></li>
<li><a href='http://www.seodenver.com/seo-wordspinner/' rel='bookmark' title='SEO WordSpinner Plugin &#8211; A Killer SEO Plugin for WordPress'>WordPress Content Spinner Plugin &#8211; SEO WordSpinner</a></li>
<li><a href='http://www.seodenver.com/how-to-tell-if-your-wordpress-widget-is-activated/' rel='bookmark' title='How to tell if your WordPress Plugin or Widget is Activated in WordPress'>How to tell if your WordPress Plugin or Widget is Activated in WordPress</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.seodenver.com/shopify-importer/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Passing parameters from PHP to Javascripts in plugins » Otto on WordPress</title>
		<link>http://www.seodenver.com/passing-parameters-php-javascripts-plugins-otto-onwordpress/</link>
		<comments>http://www.seodenver.com/passing-parameters-php-javascripts-plugins-otto-onwordpress/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 10:46:33 +0000</pubDate>
		<dc:creator>Zack Katz</dc:creator>
				<category><![CDATA[QuickTip]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Plugin Development]]></category>
		<category><![CDATA[WordPress Development]]></category>
		<category><![CDATA[WordPress Plugin Development]]></category>

		<guid isPermaLink="false">http://www.seodenver.com/?p=1834</guid>
		<description><![CDATA[Much cleaner. One static and unchanging JS file to cache. Parameters get put into your HTML itself as a one-liner. You can deal with the parameters using a normal PHP array before passing them over. No need to screw around &#8230; <a href="http://www.seodenver.com/passing-parameters-php-javascripts-plugins-otto-onwordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>
Related posts:<ol>
<li><a href='http://www.seodenver.com/storing-data-wordpress/' rel='bookmark' title='Storing Data in WordPress Plugins &#8211; A Quick Rundown'>Storing Data in WordPress Plugins &#8211; A Quick Rundown</a></li>
<li><a href='http://www.seodenver.com/how-to-tell-if-your-wordpress-widget-is-activated/' rel='bookmark' title='How to tell if your WordPress Plugin or Widget is Activated in WordPress'>How to tell if your WordPress Plugin or Widget is Activated in WordPress</a></li>
<li><a href='http://www.seodenver.com/auto-optimize-wordpress-database/' rel='bookmark' title='Auto-Optimize WordPress Database without a Plugin'>Auto-Optimize WordPress Database without a Plugin</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Much cleaner. One static and unchanging JS file to cache. Parameters get put into your HTML itself as a one-liner. You can deal with the parameters using a normal PHP array before passing them over. No need to screw around with generating Javascript from PHP or looking for wp-load or even messing with tricky actions.</p>
<p>via <a href="http://ottopress.com/2010/passing-parameters-from-php-to-javascripts-in-plugins/">Passing parameters from PHP to Javascripts in plugins » Otto on WordPress</a>.</p>
<p>Related posts:<ol>
<li><a href='http://www.seodenver.com/storing-data-wordpress/' rel='bookmark' title='Storing Data in WordPress Plugins &#8211; A Quick Rundown'>Storing Data in WordPress Plugins &#8211; A Quick Rundown</a></li>
<li><a href='http://www.seodenver.com/how-to-tell-if-your-wordpress-widget-is-activated/' rel='bookmark' title='How to tell if your WordPress Plugin or Widget is Activated in WordPress'>How to tell if your WordPress Plugin or Widget is Activated in WordPress</a></li>
<li><a href='http://www.seodenver.com/auto-optimize-wordpress-database/' rel='bookmark' title='Auto-Optimize WordPress Database without a Plugin'>Auto-Optimize WordPress Database without a Plugin</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.seodenver.com/passing-parameters-php-javascripts-plugins-otto-onwordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Storing Data in WordPress Plugins &#8211; A Quick Rundown</title>
		<link>http://www.seodenver.com/storing-data-wordpress/</link>
		<comments>http://www.seodenver.com/storing-data-wordpress/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 17:42:39 +0000</pubDate>
		<dc:creator>Zack Katz</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Options]]></category>
		<category><![CDATA[Plugin Development]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Transients]]></category>
		<category><![CDATA[WordPress Development]]></category>
		<category><![CDATA[WP Cache]]></category>

		<guid isPermaLink="false">http://www.seodenver.com/?p=1849</guid>
		<description><![CDATA[Coding better WordPress plugins As I&#8217;ve worked with WordPress plugins, I&#8217;ve learned new ways of working with WordPress. WordPress has tons of built-in functionality that is very useful and easy to use once discovered. I am by no means a &#8230; <a href="http://www.seodenver.com/storing-data-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>
Related posts:<ol>
<li><a href='http://www.seodenver.com/passing-parameters-php-javascripts-plugins-otto-onwordpress/' rel='bookmark' title='Passing parameters from PHP to Javascripts in plugins » Otto on WordPress'>Passing parameters from PHP to Javascripts in plugins » Otto on WordPress</a></li>
<li><a href='http://www.seodenver.com/auto-optimize-wordpress-database/' rel='bookmark' title='Auto-Optimize WordPress Database without a Plugin'>Auto-Optimize WordPress Database without a Plugin</a></li>
<li><a href='http://www.seodenver.com/how-to-tell-if-your-wordpress-widget-is-activated/' rel='bookmark' title='How to tell if your WordPress Plugin or Widget is Activated in WordPress'>How to tell if your WordPress Plugin or Widget is Activated in WordPress</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<img class="post_image aligncenter" src="http://www.seodenver.com/wp-content/uploads/2010/11/abbey-road.jpg" width="500" height="133" alt="Beatles love WordPress" /><h2>Coding better WordPress plugins</h2>
<p>As I&#8217;ve worked with <a href="http://www.seodenver.com/tag/wordpress-plugins/">WordPress plugins</a>, I&#8217;ve learned new ways of working with WordPress. WordPress has tons of built-in functionality that is very useful and easy to use once discovered.</p>
<p>I am by no means a great PHP coder. I am still learning <a href="http://php.net/manual/en/language.oop5.php">OOP</a> principles and how to write code better. In creating new WordPress plugins (<a href="http://wordpress.org/extend/plugins/profile/katzwebdesign">see a list of my plugins</a>), I have improved how I code: writing more efficient code using WordPress functionality rather than hacks.</p>
<p>One of the methods of coding that I have discovered (thanks to <a rel="follow" href="http://simianuprising.com/">Jeremy Clarke</a>) is using the WP Cache and Transient APIs to store plugin data. It&#8217;s made a big difference in the speed of all my plugins.</p>
<p>The following is a quick review of three different ways of storing data when you code plugins or work with WordPress. This is to the best of my knowledge, and <strong>I welcome feedback/improvements in the comments</strong>.<span id="more-1849"></span></p>
<h2>There are three core ways of storing WordPress plugin data:</h2>
<h3>1. Options</h3>
<p>This is how most plugins store data, and how I always stored data until I discovered the <a href="http://codex.wordpress.org/Function_Reference/WP_Cache">WP Cache API</a>. An option is permanently stored in the database, which was at times inconvenient. At times, I wanted to refresh the cached data every 12 hours. I hacked some code together to do that, not knowing about the other caching functions available (see below).</p>
<h4>Combine options for reduced database calls:</h4>
<p>When using options, many plugins save each setting as their own option. This makes for multiple database requests for even the most simple functionality. Instead, combine the settings into one option by making all of the plugin settings a single array.</p>
<p>Let&#8217;s say we have three settings for an Example plugin: <code>username</code>, <code>password</code>, <code>URL</code>. Instead of having three options (<code>example_username</code>, <code>example_password</code>, and <code>example_url</code>), we can combine them by setting the input <code>name</code> to <code>example[username]</code>, <code>example[password]</code> and <code>example[url]</code>. Now, when we <code>get_option('example')</code>, it is an array of the three settings. One <code>get_option()</code> call replaces three.</p>
<h4>Functions used:</h4>
<ul>
<li><code>get_option()</code></li>
<li><code>set_option()</code></li>
<li><code>update_option()</code></li>
</ul>
<h3>2. Transients</h3>
<p>Transients are my new best friend.</p>
<p>For the recent <a href="http://www.seodenver.com/lottery/">Lottery Results</a> plugins, it made sense to store lottery numbers results for a few hours, then fetch new data. <strong>What I didn&#8217;t want to do was to fetch new data every page load</strong>. For lottery results, I wanted new data every 6 hours. Enter the <a href="http://codex.wordpress.org/Transients_API">WP Transients API</a>. Transients are stored in the options database, but are used, accessed and updated differently.</p>
<p>Once I retrive the lottery data, I store it using Transients:</p>
<p><code>set_transient('lottery_results_'.$state_code, $results, 60*60*6);</code></p>
<p>When the lottery widget is displayed, I try to fetch the stored data using:</p>
<p><code>get_transient('lottery_results_'.$state_code);</code></p>
<p>If the transient data is not available, that means that it has expired &#8211; and <strong>only if the data expires do I need to re-generate it</strong>. This saves tons of load time, server load, etc. It&#8217;s wonderful, and all built in to WordPress. I&#8217;ve incorporated the same transient caching in most of my plugins, including the <a href="http://wordpress.org/extend/plugins/wunderground/">Wunderground weather plugin</a>. Caching the data speeds everything up considerably.</p>
<h4>Functions used:</h4>
<ul>
<li><code>set_transient()</code></li>
<li><code>get_transient()</code></li>
<li><code>delete_transient()</code></li>
</ul>
<h3>3. Cache</h3>
<blockquote><p>WP_Object_Cache is WordPress&#8217; class for caching data which may be computationally expensive to regenerate, such as the result of complex database queries. The object cache is defined in wp-includes/cache.php&#8230;.</p>
<p>The most common use for the object cache is caching the results of expensive SQL queries so they&#8217;re not performed multiple times within a page load. In the below example, imagine the $query variable is an expensive SQL query.<br />
<cite><a href="http://codex.wordpress.org/Function_Reference/WP_Cache">WP Cache page on Codex</a></cite></p></blockquote>
<p>If your code uses the same database query results over and over, and you perform the query new each time, you are wasting resources. By using the WP Cache functionality, you can make that request once, then store the results. When you need that dataset again, get the results using <code>wp_cache_get()</code>, and you&#8217;ll save many hits on the database or calling external files multiple times.</p>
<p>To find out what data is stored in the cache (you will be surprised!), add this to your functions.php file:</p>
<pre>add_action('wp_footer', 'show_cache_data_in_footer');
function show_cache_data_in_footer() {
	global $wp_object_cache;
	$wp_object_cache-&gt;stats();
}</pre>
<h4>Functions used:</h4>
<ul>
<li><code>wp_cache_add()</code></li>
<li><code>wp_cache_set()</code></li>
<li><code>wp_cache_get()</code></li>
<li><code>wp_cache_delete()</code></li>
<li><code>wp_cache_replace()</code></li>
<li><code>wp_cache_flush()</code></li>
</ul>
<p>I hope this helps people who are wanting to code WordPress plugins or are already coding them and want to do it better!</p>
<p>Related posts:<ol>
<li><a href='http://www.seodenver.com/passing-parameters-php-javascripts-plugins-otto-onwordpress/' rel='bookmark' title='Passing parameters from PHP to Javascripts in plugins » Otto on WordPress'>Passing parameters from PHP to Javascripts in plugins » Otto on WordPress</a></li>
<li><a href='http://www.seodenver.com/auto-optimize-wordpress-database/' rel='bookmark' title='Auto-Optimize WordPress Database without a Plugin'>Auto-Optimize WordPress Database without a Plugin</a></li>
<li><a href='http://www.seodenver.com/how-to-tell-if-your-wordpress-widget-is-activated/' rel='bookmark' title='How to tell if your WordPress Plugin or Widget is Activated in WordPress'>How to tell if your WordPress Plugin or Widget is Activated in WordPress</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.seodenver.com/storing-data-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced
Object Caching 0/0 objects using disk: basic

Served from: www.seodenver.com @ 2012-02-11 11:57:41 -->
