<?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>alexking.org &#187; WordPress</title>
	<atom:link href="http://alexking.org/blog/topic/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://alexking.org</link>
	<description>Alex King, Denver Web Developer</description>
	<lastBuildDate>Fri, 03 Feb 2012 20:48:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>http_build_query() Separator Tip</title>
		<link>http://alexking.org/blog/2012/02/02/http_build_query-separator-tip</link>
		<comments>http://alexking.org/blog/2012/02/02/http_build_query-separator-tip#comments</comments>
		<pubDate>Thu, 02 Feb 2012 20:46:04 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://alexking.org/?p=12505</guid>
		<description><![CDATA[I ran into an interesting &#8220;bug&#8221; in Twitter Tools last night that I traced back to http_build_query(). I expected that the query strings generated by this function used &#38; as a separator for the key=value pairs, but on one of our test servers, the separator being used was &#38;amp;. This is a php.ini config setting,&#8230;]]></description>
			<content:encoded><![CDATA[<p>I ran into an interesting &#8220;bug&#8221; in Twitter Tools last night that I traced back to <a href="http://php.net/manual/en/function.http-build-query.php"><code>http_build_query()</code></a>. I expected that the query strings generated by this function used <code>&amp;</code> as a separator for the <code>key=value</code> pairs, but on one of our test servers, the separator being used was <code>&amp;amp;</code>. This is a <a href="http://www.php.net/manual/en/ini.core.php#ini.arg-separator.output">php.ini config setting</a>, so my expectation was clearly based on false assumptions. If you want to make sure that you get a <code>&amp;</code> separator, you can <a href="https://github.com/crowdfavorite/wp-twitter-tools/commit/b36a01a61fc50a61408808cfd96e4c8bbf8a5f95">pass it in as the 3rd parameter</a>.</p>
<p>You&#8217;ll find this is particularly important if you&#8217;re making requests for remote data from within WordPress via <code>wp_remote_get()</code> or similar technique. If you are working on something that is run within WordPress, you can look at using <code>add_query_arg()</code> as an alternative to this as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://alexking.org/blog/2012/02/02/http_build_query-separator-tip/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Twitter Tools 3.0 beta 2</title>
		<link>http://alexking.org/blog/2012/01/22/twitter-tools-3-0-beta-2</link>
		<comments>http://alexking.org/blog/2012/01/22/twitter-tools-3-0-beta-2#comments</comments>
		<pubDate>Sun, 22 Jan 2012 23:27:50 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://alexking.org/?p=8550</guid>
		<description><![CDATA[I&#8217;ve packaged beta 2 of the next generation version of Twitter Tools. Version 3.0 is a ground-up rewrite on top of the Social platform, with a few features included for backward compatibility. If you&#8217;d like to test the beta, grab it from GitHub. This version fixes several bugs that were found in our QA process,&#8230;]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve packaged beta 2 of the next generation version of Twitter Tools. Version 3.0 is a ground-up rewrite on top of the Social platform, with a few features included for backward compatibility. If you&#8217;d like to test the beta, <a href="https://github.com/crowdfavorite/wp-twitter-tools/tags">grab it from GitHub</a>.</p>
<p>This version fixes several bugs that were found in our QA process, as well as a few enhancements and initial integration points. The changes since <a href="http://alexking.org/blog/2011/12/14/twitter-tools-3-0-beta-1">beta 1</a>:</p>
<ul>
<li>fix several taxonomy reference bugs that were causing shortcodes and widgets to fail to show tweets</li>
<li>fix logical flaws that were causing the &#8220;include RTs/replies&#8221; settings in widgets to behave inconsistently</li>
<li>disconnect Twitter accounts when they are deleted from Social only when they are shared accounts</li>
<li>manual tweet download is now an AJAX call instead of a full page refresh</li>
<li>cleaner failures if Social plugin is not active</li>
<li>add integration points so that other plugins can extend Twitter Tools</li>
</ul>
<p>Due to some of these taxonomy issues, you may need to delete your existing Tweets and allow them to be recreated so that tweets appear in the widget and shortcodes as expected (any newly imported tweets should be fine with this version).</p>
<p>Still no README file (contributions from testers are welcome), but I expect to get started on that along with final tweaks and packaging for a full release in the near future.</p>
<p>Developers, please feel free to open issues and submit pull requests in <a href="https://github.com/crowdfavorite/wp-twitter-tools">GitHub</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://alexking.org/blog/2012/01/22/twitter-tools-3-0-beta-2/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WP_Query by &#8220;Standard&#8221; Post Format</title>
		<link>http://alexking.org/blog/2012/01/05/wp_query-by-standard-post-format</link>
		<comments>http://alexking.org/blog/2012/01/05/wp_query-by-standard-post-format#comments</comments>
		<pubDate>Fri, 06 Jan 2012 06:56:28 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://alexking.org/?p=8324</guid>
		<description><![CDATA[When using WordPress post formats, you&#8217;ll quickly start looking for a way to query WordPress content by the &#8220;standard&#8221; post format. This Trac ticket seeks to work on solving this. The implementation there handles URL-based requests: http://example.com/type/standard/ quite nicely. However the code in that patch doesn&#8217;t (yet) handle direct WP_Query calls. I was hacking on&#8230;]]></description>
			<content:encoded><![CDATA[<p>When using WordPress post formats, you&#8217;ll quickly start looking for a way to query WordPress content by the &#8220;standard&#8221; post format. <a href="http://core.trac.wordpress.org/ticket/16149">This Trac ticket</a> seeks to work on solving this. The implementation there handles URL-based requests:</p>
<p><code>http://example.com/type/standard/</code></p>
<p>quite nicely. However the code in that patch doesn&#8217;t (yet) handle direct WP_Query calls.</p>
<p>I was hacking on this a bit on my own before finding the (much more elegant and complete) code that <a href="http://nacin.com">Nacin</a> contributed. I came up with some working code that does work with WP_Query calls, which I posted in this Gist:</p>
<p><script src="https://gist.github.com/1549613.js"></script><noscript><p>View the code on <a href="https://gist.github.com/1549613">Gist</a>.</p></noscript></p>
<p>Note that this doesn&#8217;t create the taxonomy term and do some of the other nice set-up that Nacin&#8217;s code does. It could use a bit of cleanup &#8211; improvements are very welcome. This isn&#8217;t going to be at the top of my list for a while, so I wanted to make sure I published the code so anyone else who is interested can take a stab at merging the two approaches.</p>
<hr />
<p>For my own usage, I wanted to have the list of recent &#8220;standard&#8221; posts that you see in my sidebar. To create this, I enabled the code in the Gist above, then made a <a href="https://gist.github.com/1569336">slight mod to the Recent Posts widget that is included in core</a>. If you&#8217;ve wanted the same, please grab the code and enjoy.</p>
<p>Note for future visitors: this code is working as desired with WordPress 3.3.x, but will hopefully not be needed in some future version.</p>
]]></content:encoded>
			<wfw:commentRss>http://alexking.org/blog/2012/01/05/wp_query-by-standard-post-format/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WordPress Core Contributions</title>
		<link>http://alexking.org/blog/2012/01/04/wordpress-core-contributions</link>
		<comments>http://alexking.org/blog/2012/01/04/wordpress-core-contributions#comments</comments>
		<pubDate>Thu, 05 Jan 2012 05:25:50 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Crowd Favorite]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://alexking.org/?p=8380</guid>
		<description><![CDATA[At today&#8217;s team meeting, the Crowd Favorite folks who contributed to the WordPress 3.3 release (including me!) received goodies. I hope to dole out a few more for the 3.4 release. Related: If one of your 2012 resolutions is to contribute to core WordPress code development, please read this post: wp.me/pbNCB-ui &#8212; WordPress(@WordPress) January 5,&#8230;]]></description>
			<content:encoded><![CDATA[<p><img src="http://alexking.org/wp-content/uploads/2012/01/001-20120104-WPHoodie-510x382.jpg" alt="WordPress Hoodie" title="WordPress Hoodie" width="510" height="382" class="alignnone size-medium-img wp-image-8383" /></p>
<p>At today&#8217;s team meeting, the <a href="http://crowdfavorite.com">Crowd Favorite</a> folks who contributed to the WordPress 3.3 release (including me!) received goodies. I hope to dole out a few more for the 3.4 release.</p>
<p><a href="http://wpdevel.wordpress.com/2012/01/05/dev-chat-notes-01042012/">Related</a>:</p>
<blockquote class="twitter-tweet"><p>If one of your 2012 resolutions is to contribute to core WordPress code development, please read this post: <a href="http://t.co/RbxOh0Vl" title="http://wp.me/pbNCB-ui">wp.me/pbNCB-ui</a></p>
<p>&mdash; WordPress(@WordPress) <a href="https://twitter.com/WordPress/status/154744511979991040" data-datetime="2012-01-05T02:02:21+00:00">January 5, 2012</a></p></blockquote>
<p><script src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://alexking.org/blog/2012/01/04/wordpress-core-contributions/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Popularity Contest is Dead (and on GitHub)</title>
		<link>http://alexking.org/blog/2011/12/28/popularity-contest-is-dead-and-on-github</link>
		<comments>http://alexking.org/blog/2011/12/28/popularity-contest-is-dead-and-on-github#comments</comments>
		<pubDate>Wed, 28 Dec 2011 18:43:51 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://alexking.org/?p=8264</guid>
		<description><![CDATA[I wrote the Popularity Contest plugin for WordPress back in May of 2005. It had a good run, but that run is over. We are no longer developing or supporting Popularity Contest, and I recommend letting it rest peacefully. Why? It does too much, and too little at the same time. It does too much.&#8230;]]></description>
			<content:encoded><![CDATA[<p>I wrote the Popularity Contest plugin for WordPress back in <a href="http://alexking.org/blog/2005/05/23/popularity-contest">May of 2005</a>. It had a good run, but that run is over. We are no longer developing or supporting Popularity Contest, and I recommend letting it rest peacefully.</p>
<p>Why? It does too much, and too little at the same time.</p>
<p><strong>It does too much.</strong> Popularity Contest tracks each page load. In order to make this compatible with caching plugins, this functionality was abstracted to be done via a second AJAX call (or tracker image in feeds) that bypasses your site&#8217;s caching system.</p>
<p>In other words, with Popularity Contest enabled and a caching plugin installed, each visit to one of your pages still generates an additional dynamic page load request to your server. This is how it has to work, but it&#8217;s too much for most commodity hosting environments.</p>
<p><strong>It does too little.</strong> While Popularity Contest is tracking each page load and updating aggregate numbers relating to your site&#8217;s activity, there is a significant diminishing of returns as you use the plugin over time.</p>
<p>There is no granular data tracked, meaning you cannot plot trends or view popularity in specific time slices. In fact, what I saw on this site was that the most popular posts became simply a list of what ranks highest for popular searches in Google.</p>
<hr />
<p>With all of the free and low-cost analytics solutions out there, you&#8217;re better off using a service to get this sort of information rather than doing it yourself. I&#8217;d recommend <a href="http://google.com/analytics">Google Analytics</a>, <a href="http://wordpress.org/extend/plugins/stats/">WP.com stats</a> or more advanced solutions like <a href="http://www.kissmetrics.com/">KISSmetrics</a>, <a href="https://www.reinvigorate.net/">Reinvigorate</a>, etc.</p>
<p>While I don&#8217;t recommend reviving Popularity Contest for the reasons listed above, but if you&#8217;re interested in forking or looking at the code you are welcome to do so. I pulled a copy of the code from the WP.og SVN repository and put it up on <a href="https://github.com/crowdfavorite/wp-popularity-contest">GitHub</a>. The wp30 branch probably works with the latest version of WordPress with few needed revisions.</p>
]]></content:encoded>
			<wfw:commentRss>http://alexking.org/blog/2011/12/28/popularity-contest-is-dead-and-on-github/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>A Couple of Core Submissions</title>
		<link>http://alexking.org/blog/2011/12/15/a-couple-of-core-submissions</link>
		<comments>http://alexking.org/blog/2011/12/15/a-couple-of-core-submissions#comments</comments>
		<pubDate>Thu, 15 Dec 2011 22:26:20 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://alexking.org/?p=8201</guid>
		<description><![CDATA[Just created tickets in Trac for 2 potential core features: Improved admin UI for Post Formats, with fallbacks (as previously discussed) A post stack switch/restore implementation (useful for developers) Already some good feedback on the latter.]]></description>
			<content:encoded><![CDATA[<p>Just created tickets in Trac for 2 potential core features:</p>
<ol>
<li><a href="http://core.trac.wordpress.org/ticket/19570">Improved admin UI for Post Formats, with fallbacks</a> (as <a href="http://alexking.org/blog/2011/10/25/wordpress-post-formats-admin-ui">previously</a> <a href="http://alexking.org/blog/2011/11/02/wordpress-post-format-fallbacks">discussed</a>)</li>
<li><a href="http://core.trac.wordpress.org/ticket/19572">A post stack switch/restore implementation (useful for developers)</a></li>
</ol>
<p>Already some good feedback on the latter.</p>
]]></content:encoded>
			<wfw:commentRss>http://alexking.org/blog/2011/12/15/a-couple-of-core-submissions/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress Plugins and Symlinks</title>
		<link>http://alexking.org/blog/2011/12/15/wordpress-plugins-and-symlinks</link>
		<comments>http://alexking.org/blog/2011/12/15/wordpress-plugins-and-symlinks#comments</comments>
		<pubDate>Thu, 15 Dec 2011 19:45:15 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://alexking.org/?p=8196</guid>
		<description><![CDATA[If you&#8217;re doing serious development for WordPress you will quickly find yourself in a situation where you need to test a plugin in multiple installations. Using symlinks is a great way to make sure that you don&#8217;t end up editing in multiple locations, perhaps forgetting to commit a change, etc. However, there are some headaches&#8230;]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re doing serious development for WordPress you will quickly find yourself in a situation where you need to test a plugin in multiple installations. Using symlinks is a great way to make sure that you don&#8217;t end up editing in multiple locations, perhaps forgetting to commit a change, etc.</p>
<p>However, there are some headaches with symlinks &#8211; particularly with common methods of including files:</p>
<p><code>include(dirname(__FILE__).'/my-include-file.php');</code></p>
<p>and related permissions issues if the files live outside the web root, etc.</p>
<p>Trying to figure out the symlink path to the file from within PHP is decidedly non-trivial, so a different approach may work best:</p>
<p><script src="https://gist.github.com/1482350.js"></script><noscript><p>View the code on <a href="https://gist.github.com/1482350">Gist</a>.</p></noscript></p>
<p>Here you can see we are maintaining the location of the file and path that WordPress used to include the file. This has worked well in my experience, perhaps it will be a good solution for you as well.</p>
<p>As always, improvements or suggestions are welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://alexking.org/blog/2011/12/15/wordpress-plugins-and-symlinks/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Twitter Tools 3.0 beta 1</title>
		<link>http://alexking.org/blog/2011/12/14/twitter-tools-3-0-beta-1</link>
		<comments>http://alexking.org/blog/2011/12/14/twitter-tools-3-0-beta-1#comments</comments>
		<pubDate>Wed, 14 Dec 2011 21:59:31 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Crowd Favorite]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://alexking.org/?p=8173</guid>
		<description><![CDATA[I&#8217;ve been working for a while on a version of Twitter Tools that extends Social. Version 3.0 is a ground-up rewrite, with a few features included for backward compatibility. If you&#8217;d like to test the beta, grab it from GitHub. Note that this is lightly tested and there is absolutely no information in the README&#8230;]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working for a while on a version of Twitter Tools that extends Social. Version 3.0 is a ground-up rewrite, with a few features included for backward compatibility. If you&#8217;d like to test the beta, <a href="https://github.com/crowdfavorite/wp-twitter-tools">grab it from GitHub</a>.</p>
<p>Note that this is lightly tested and there is absolutely no information in the README yet. Please contribute via pull requests in GitHub to help write the README with the information you would find useful.</p>
<p>I&#8217;m excited about the move to using Social as the platform for Twitter Tools because it fixes the user experience issues that have plagued Twitter Tools since Twitter&#8217;s move to OAuth. Read more of my bitching about this here:</p>
<ul>
<li><a href="http://alexking.org/blog/2010/06/10/twitter-tools-oauth-update">Twitter Tools OAuth Update</a> &#8211; June 10, 2010</li>
<li><a href="http://alexking.org/blog/2010/06/13/twitter-tools-and-oauth-continued">Twitter Tools and OAuth Continued</a> &#8211; June 13, 2010</li>
<li><a href="http://alexking.org/blog/2010/08/13/twitter-tools-oauth-update">Twitter Tools OAuth Update</a> &#8211; August 13, 2010</li>
<li><a href="http://alexking.org/blog/2010/08/15/twitter-tools-2-4">Twitter Tools 2.4 (OAuth Support)</a> &#8211; August 15, 2010</li>
</ul>
<p>Please open issues on GitHub for any bugs you find.</p>
]]></content:encoded>
			<wfw:commentRss>http://alexking.org/blog/2011/12/14/twitter-tools-3-0-beta-1/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>WordPress 3.3 &#8211; Time to Upgrade</title>
		<link>http://alexking.org/blog/2011/12/14/wordpress-3-3-upgrade</link>
		<comments>http://alexking.org/blog/2011/12/14/wordpress-3-3-upgrade#comments</comments>
		<pubDate>Wed, 14 Dec 2011 07:55:18 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://alexking.org/?p=8166</guid>
		<description><![CDATA[My upgrade to WordPress 3.3 was a simple svn switch command &#8211; everything just worked. The level of polish in the admin has really been stepped up in the last few releases. Hats off to all the folks doing great work there. I&#8217;m probably most pleased that my media size patch was accepted; I think&#8230;]]></description>
			<content:encoded><![CDATA[<p>My upgrade to <a href="http://wordpress.org/news/2011/12/sonny/">WordPress 3.3</a> was a simple svn switch command &#8211; everything just worked. The level of polish in the admin has really been stepped up in the last few releases. Hats off to all the folks doing great work there.</p>
<p>I&#8217;m probably most pleased that <a href="http://core.trac.wordpress.org/ticket/18520">my media size patch</a> was accepted; I think that&#8217;s a great addition for those of us that love to develop on WordPress as a platform.</p>
<p>I&#8217;ve got a few things to test and update to make sure they are working on the new trunk, then submit as patches for WordPress 3.4 &#8211; our <a href="http://alexking.org/blog/2011/10/25/wordpress-post-formats-admin-ui">post formats</a> and <a href="http://alexking.org/blog/2011/11/02/wordpress-post-format-fallbacks">fallbacks</a> enhancements being the most notable. Hopefully that will see acceptance for core inclusion.</p>
<p>As far as I can tell, things are working smoothly. Of course, we&#8217;d already been testing Social and FavePersonal on pre-release versions WordPress 3.3 for a bit, so we&#8217;d already fixed up a few things. If you see anything around here that looks broken, do let me know. Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://alexking.org/blog/2011/12/14/wordpress-3-3-upgrade/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Social 2.0 for WordPress</title>
		<link>http://alexking.org/blog/2011/12/05/social-2-0-for-wordpress</link>
		<comments>http://alexking.org/blog/2011/12/05/social-2-0-for-wordpress#comments</comments>
		<pubDate>Mon, 05 Dec 2011 23:59:43 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Crowd Favorite]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://alexking.org/?p=8102</guid>
		<description><![CDATA[I&#8217;m very excited about today&#8217;s release of Social 2.0, a WordPress plugin from MailChimp. This is perhaps my favorite WordPress plugin; it is complex and ambitious, but I love the way it helps build a bridge between social networks and WordPress &#8211; a platform where we can really own our data. Social has a couple&#8230;]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m very excited about today&#8217;s release of <a href="http://wordpress.org/extend/plugins/social/">Social 2.0</a>, a WordPress plugin from <a href="http://blog.mailchimp.com/update-social-plugin-wordpress/">MailChimp</a>. This is perhaps my favorite WordPress plugin; it is complex and ambitious, but I love the way it helps build a bridge between social networks and WordPress &#8211; a platform where we can really own our data.</p>
<p><img src="http://alexking.org/wp-content/uploads/2011/12/Screen-Shot-2011-12-05-at-4.53.56-PM-510x328.png" alt="Social Comments" width="510" height="328" class="alignnone size-medium-img wp-image-8108" /></p>
<p>Social has a couple of high level features:</p>
<ol>
<li>It enables broadcasting your WordPress content to social networks.</li>
<li>It brings back reactions from those social networks to your own site.</li>
<li>It lets people log in through social networks to comment &#8211; identity generally leads to better conversations.</li>
<li>It allows the sharing of comments on your site to social networks.</li>
<li>It does all of this without requiring you to register as a developer with the social networks and create your own apps.</li>
</ol>
<p>This sort of integration is fraught with edge cases and little gotchas. For version 2.0 we looked at what we had with 1.x, looked at our road map for Social, bit down hard and decided to do a full rewrite for 2.0.</p>
<p>The downside of the rewrite was how long it took to get 2.0 released, but by doing it now we have a much more extensible platform on which to add connections to other services (Google+, for example) and we had less to refactor than we would have had we waited.</p>
<p>Along with the full rewrite, there are a bunch of new features in 2.0. Here are a few of them:</p>
<ul>
<li>Changed the way authentication works, to improve security.</li>
<li>Added support for posting to Facebook Pages as well as profiles.</li>
<li>When someone Likes one of your broadcasts on Facebook, that is pulled in to your site.</li>
<li>New visual presentation of Retweets and Likes, so that the activity is visible but the discussion is less cluttered. We also have a smart algorithm for trying to match retweets that are not marked as such by Twitter&#8217;s API.</li>
<li>If you respond to a comment imported from Twitter on your site and broadcasting that back to Twitter, the &#8220;in reply to&#8221; thread is correctly maintained.</li>
<li>Where possible, comments on your WordPress site are threaded to match discussions that happened on social sites.</li>
<li>A new queuing system for the checking of for social reactions, along with features that should reduce (hopefully eliminate) reactions from creating duplicate comments. </li>
<li>Delayed broadcasting for future posts and comments that are held for moderation.</li>
<li>The ability to enable broadcasting by default on new posts (please use this judiciously) to selected globally authenticated accounts as well as selected personal accounts.</li>
<li>Convenience links in the admin bar and on the post list page to allow you to manually check for social reactions on a post.</li>
<li>A ton of edge case handling for things like changing from bit.ly to wp.me URLs after publishing a post, respecting private tweets, etc.</li>
</ul>
<p>I have a <a href="http://alexking.org/blog/2011/11/19/7994">few</a> <a href="http://alexking.org/blog/2011/10/25/wordpress-post-formats-admin-ui">good</a> <a href="http://alexking.org/blog/2011/11/29/wordcamp-orlando-2011">examples</a> to demonstrate how Social brings in comments and displays them. Unfortunately some of these were pulled in before I started running the Social 2.0 codeline so not all of the retweets, etc. are displayed as cleanly as they will be in the future.</p>
<p>Big thanks to MailChimp for their support of Social. They are not only the primary benefactor of the plugin, but they also run the service that allows WordPress to connect to Twitter and Facebook without the pain and hassle of registering as a developer and creating apps for each platform.</p>
<p>Social&#8217;s source code is <a href="https://github.com/crowdfavorite/wp-social">hosted on GitHub</a> and built in the open in the best tradition of Open Source. Pull requests, enhancements and feedback are welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://alexking.org/blog/2011/12/05/social-2-0-for-wordpress/feed</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>WordCamp Orlando 2011</title>
		<link>http://alexking.org/blog/2011/11/29/wordcamp-orlando-2011</link>
		<comments>http://alexking.org/blog/2011/11/29/wordcamp-orlando-2011#comments</comments>
		<pubDate>Tue, 29 Nov 2011 19:53:33 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://alexking.org/?p=8079</guid>
		<description><![CDATA[I&#8217;m looking forward to attending WordCamp Orlando with Devin this weekend. Looks like there is a great schedule in place and I&#8217;m looking forward to catching up with fellow developers and hanging out with our friends at Voce. I&#8217;ll be helping out at the Happiness Bar at 9:30am if anyone wants to say hello or&#8230;]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m looking forward to attending <a href="http://2011.orlando.wordcamp.org/">WordCamp Orlando</a> with <a href="http://devin.reams.me/2011/wordcamp-orlando-2011/">Devin</a> this weekend. Looks like there is a <a href="http://2011.orlando.wordcamp.org/schedule/">great schedule</a> in place and I&#8217;m looking forward to catching up with fellow developers and hanging out with our friends at <a href="http://vocecommunications.com/blog/2011/09/announcing-wordcamp-2011/">Voce</a>.</p>
<p>I&#8217;ll be helping out at the Happiness Bar at 9:30am if anyone wants to say hello or chat about <a href="http://crowdfavorite.com/wordpress/carrington-build/">Carrington Build</a>, <a href="http://crowdfavorite.com/wordpress/ramp/">RAMP</a> or some of the techniques used in the upcoming (complete rewrite) releases of Social and Twitter Tools.</p>
]]></content:encoded>
			<wfw:commentRss>http://alexking.org/blog/2011/11/29/wordcamp-orlando-2011/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Setting Custom Taxonomies as part of wp_insert_post()</title>
		<link>http://core.trac.wordpress.org/ticket/19373</link>
		<comments>http://alexking.org/blog/2011/11/27/setting-custom-taxonomies-as-part-of-wp_insert_post#comments</comments>
		<pubDate>Sun, 27 Nov 2011 23:00:59 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://alexking.org/?p=8052</guid>
		<description><![CDATA[If you&#8217;re trying to figure out why your custom taxonomies aren&#8217;t being set when you pass them to wp_insert_post() in your custom code, you might be running into the same issue I did. Luckily, it&#8217;s easy to work around once you understand why it is happening.<p style="clear: both;"><a href="http://alexking.org/blog/2011/11/27/setting-custom-taxonomies-as-part-of-wp_insert_post">#</a></p>]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re trying to figure out why your custom taxonomies aren&#8217;t being set when you pass them to <code>wp_insert_post()</code> in your custom code, you might be running into the same issue I did. Luckily, it&#8217;s easy to work around once you understand why it is happening.</p>
<p style="clear: both;"><a href="http://alexking.org/blog/2011/11/27/setting-custom-taxonomies-as-part-of-wp_insert_post">#</a></p>]]></content:encoded>
			<wfw:commentRss>http://alexking.org/blog/2011/11/27/setting-custom-taxonomies-as-part-of-wp_insert_post/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Social 2.0 beta 3</title>
		<link>http://alexking.org/blog/2011/11/23/social-2-0-beta-3</link>
		<comments>http://alexking.org/blog/2011/11/23/social-2-0-beta-3#comments</comments>
		<pubDate>Wed, 23 Nov 2011 19:07:01 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Crowd Favorite]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://alexking.org/?p=8026</guid>
		<description><![CDATA[We have been working hard on a new version of the MailChimp&#8217;s Social plugin for WordPress. We have packaged a beta version for public testing (2.0b3, currently running on this site). Download from GitHub We are hoping for a general release of version 2.0 on Monday, so please report any issues you find in the&#8230;]]></description>
			<content:encoded><![CDATA[<p>We have been working hard on a new version of the <a href="http://wordpress.org/extend/plugins/social/">MailChimp&#8217;s Social plugin for WordPress</a>. We have packaged a beta version for public testing (2.0b3, currently running on this site).</p>
<p><strong><a href="https://github.com/crowdfavorite/wp-social/tags">Download from GitHub</a></strong></p>
<p>We are hoping for a general release of version 2.0 on Monday, so please <a href="http://wordpress.org/tags/social?forum_id=10#postform">report any issues you find in the WordPress.org support forums</a>. Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://alexking.org/blog/2011/11/23/social-2-0-beta-3/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress Post Format Fallbacks</title>
		<link>http://alexking.org/blog/2011/11/02/wordpress-post-format-fallbacks</link>
		<comments>http://alexking.org/blog/2011/11/02/wordpress-post-format-fallbacks#comments</comments>
		<pubDate>Wed, 02 Nov 2011 16:27:45 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Crowd Favorite]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://alexking.org/?p=7835</guid>
		<description><![CDATA[While our post formats admin UI is getting a nice warm reception (100+ tweets, pings and comments, wow!), there is a concern that has popped up a few times &#8211; one that I included a nod towards in my original post. What happens when publishers put important data in the post format custom fields, then&#8230;]]></description>
			<content:encoded><![CDATA[<p>While our <a href="http://alexking.org/blog/2011/10/25/wordpress-post-formats-admin-ui">post formats admin UI</a> is getting a nice warm reception (100+ tweets, pings and comments, wow!), there is a concern that has popped up a few times &#8211; one that I included a nod towards in my original post.</p>
<blockquote><p>What happens when publishers put important data in the post format custom fields, then choose to change to a theme that doesn&#8217;t support these fields?</p></blockquote>
<p>It&#8217;s a legitimate concern, and (as noted previously) one that I had an interesting discussion with <a href="http://iandanielstewart.com/">Ian</a> about at WordCamp SF this year. His idea of core functionality that could tack the data on at output seems like a great solution.</p>
<p><strong>In Open Source, code talks.</strong></p>
<p>I&#8217;ve put together a <a href="https://github.com/crowdfavorite/wp-post-formats-fallback">proof-of-concept plugin that does exactly this</a> with the data fields supported by our <a href="https://github.com/crowdfavorite/wp-post-formats">post formats UI plugin</a>.</p>
<p><img src="http://alexking.org/wp-content/uploads/2011/11/Screen-Shot-2011-11-01-at-8.04.25-PM-398x510.png" alt="Post Format Fallbacks" width="398" height="510" class="alignnone size-medium-img wp-image-7837" /></p>
<p>With this plugin enabled, the information in custom fields is automatically added to the post content. In the event the publisher switches to a theme that either doesn&#8217;t support post formats (or doesn&#8217;t support the custom fields our admin UI provides for), they could enable this plugin and their posts would have all the information displayed that they expect.</p>
<p>Once WordPress 3.3 is out the door, I&#8217;ll submit these plugins for consideration and discussion to be included in core. In the meantime, this should at least minimize data portability concerns for theme developers.</p>
<p>Fellow developers, please help this improve! <a href="https://github.com/crowdfavorite/wp-post-formats-fallback">Fork it on GitHub</a>, provide feedback and enhancements, etc. This was put together in a few hours yesterday afternoon, so it is <em>very</em> lightly tested and should be considered a starting point. There are some simple checks in place to try to avoid situations where the auto-added content would duplicate content manually inserted into the post, but I&#8217;m guessing that can be improved a bit (it&#8217;s entirely lacking for image formats, for example).</p>
]]></content:encoded>
			<wfw:commentRss>http://alexking.org/blog/2011/11/02/wordpress-post-format-fallbacks/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WordPress Post Formats Admin UI</title>
		<link>http://alexking.org/blog/2011/10/25/wordpress-post-formats-admin-ui</link>
		<comments>http://alexking.org/blog/2011/10/25/wordpress-post-formats-admin-ui#comments</comments>
		<pubDate>Tue, 25 Oct 2011 21:44:02 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Crowd Favorite]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://alexking.org/?p=7731</guid>
		<description><![CDATA[The Post Formats feature that landed in WordPress 3.1 is a great framework feature. I&#8217;m leveraging it extensively on this site to drive my link, status, photo and gallery posts. While it is a great framework feature, it only really exists as something developers leverage to extend WordPress. There is no UI that ships with&#8230;]]></description>
			<content:encoded><![CDATA[<p>The Post Formats feature that landed in WordPress 3.1 is a great framework feature. I&#8217;m leveraging it extensively on this site to drive my <a href="http://alexking.org/blog/format/link">link</a>, <a href="http://alexking.org/blog/format/status">status</a>, <a href="http://alexking.org/blog/format/image">photo</a> and <a href="http://alexking.org/blog/format/gallery">gallery</a> posts.</p>
<p>While it is a great framework feature, it only really exists as something developers leverage to extend WordPress. There is no UI that ships with the feature, which limits its accessibility to users.</p>
<p><a href="http://crowdfavorite.com">My team and I</a> have been working on <a href="http://crowdfavorite.com/favepersonal/">FavePersonal</a> (the theme you see here) for a while, and one of the features we&#8217;ve built is an admin interface for post formats.</p>
<p><strong>We have <a href="https://github.com/crowdfavorite/wp-post-formats">released this code on GitHub</a> (pull requests welcome) and encourage any and all theme developers to use it, add to it and improve it.<br />
</strong></p>
<hr />
<p>Here are some details on how it works.</p>
<p>The plugin is a completely additive solution that leverages the default WordPress functionality, while improving the UI and standardizing the names and presentation of custom fields that support the various post formats.</p>
<p><strong>A set of tabs</strong> are added to the post authoring screen that allow users to select the post format they would like to use. The built-in radio button interface is hidden, and the tabs simply control the selected radio button.</p>
<p><img src="http://alexking.org/wp-content/uploads/2011/10/format-standard-510x244.png" alt="Standard Format" width="510" height="244" class="alignnone size-medium-img wp-image-7775" /></p>
<p><strong>Status posts</strong> are treated as &#8220;content only&#8221; &#8211; similar to the short form seen in Facebook status updates and Twitter&#8217;s tweets. Behind the scenes, a title for the post is set using the first 50 characters of the content.</p>
<p><img src="http://alexking.org/wp-content/uploads/2011/10/format-status-510x202.png" alt="Status Format" width="510" height="202" class="alignnone size-medium-img wp-image-7776" /></p>
<p><strong>Link posts</strong> have an additional custom field (<code>_format_link_url</code>) for the URL of the website/page being linked to. This URL is then utilized in the theme to implement linking directly to the external site from the title link (if desired).</p>
<p><img src="http://alexking.org/wp-content/uploads/2011/10/format-link-510x301.png" alt="Link Format" width="510" height="301" class="alignnone size-medium-img wp-image-7773" /></p>
<p><strong>Image posts</strong> utilize the WordPress built-in Featured Image functionality. The Featured Image is treated as the image for the post, and the theme displays it accordingly for this post format.</p>
<p><img src="http://alexking.org/wp-content/uploads/2011/10/format-image-510x371.png" alt="Image Format" width="510" height="371" class="alignnone size-medium-img wp-image-7772" /></p>
<p><strong>Gallery posts</strong> display the WordPress gallery in the tab so that it&#8217;s clear that these items will appear with the post. The theme then implements the gallery view based on the post format.</p>
<p><img src="http://alexking.org/wp-content/uploads/2011/10/format-gallery-510x392.png" alt="Gallery Format" width="510" height="392" class="alignnone size-medium-img wp-image-7771" /></p>
<p><strong>Video posts</strong> have an additional field added for embed code or an oEmbed URL to be added. This information is stored in a custom field (<code>_format_video_embed</code>). Then the theme can use this to display the video in an elegant way.</p>
<p><img src="http://alexking.org/wp-content/uploads/2011/10/format-video-510x267.png" alt="Video Format" width="510" height="267" class="alignnone size-medium-img wp-image-7777" /></p>
<p><strong>Quote posts</strong> have two additional fields. One for the name of the person being quoted (<code>_format_quote_source_name</code>), and one for an attribution link (<code>_format_quote_source_url</code>). These can be used in the theme to present the quote and attribution in a consistent manner. Similar to status posts, a title for the quote is created behind the scenes from the first 50 characters of the quote.</p>
<p><img src="http://alexking.org/wp-content/uploads/2011/10/format-quote-510x258.png" alt="" title="format-quote" width="510" height="258" class="alignnone size-medium-img wp-image-7774" /></p>
<p>You&#8217;ll notice that we have adopted a consistent naming convention for custom fields used to support post formats. That convention is:</p>
<p><code>_format_<strong>{format type}</strong>_<strong>{descriptive data name}</strong></code></p>
<p>The underscore at the beginning of the key prevents the field from showing up in the default Custom Fields interface (since we are managing it behind the scenes) and the rest is set up to logically describe the type of data being stored.</p>
<hr />
<p>We look forward to releasing our theme in the near future, and hope that this code will be widely used to help bring adoption of post formats in a way that is truely portable between WordPress themes.</p>
<p>Several people I&#8217;ve shown this to have asked if I&#8217;d like to see this adopted in WordPress core. Yes, of course! I had an interesting conversation with <a href="http://iandanielstewart.com/">Ian Stewart</a> about this at WordCamp SF this year. He had some reasonable concerns about the data being stored in custom fields not being portable to themes that don&#8217;t implement post formats; while acknowledging that having the data in a structured format (separate fields) was very valuable for presentation purposes.</p>
<p>One possible solution we discussed would be the addition of core functionality that would look for these custom fields and post format support, and would auto-prepend/append the custom fields to the content accordingly (add the featured image, gallery, quote attribution, etc.). A solution like this is definitely preferable to requiring all of the data to be present in a single content field.</p>
<p>UPDATE: see my <a href="http://alexking.org/blog/2011/11/02/wordpress-post-format-fallbacks">follow-up on this</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://alexking.org/blog/2011/10/25/wordpress-post-formats-admin-ui/feed</wfw:commentRss>
		<slash:comments>142</slash:comments>
		</item>
	</channel>
</rss>

