<?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>Joe Dolson Accessible Web Design &#187; WordPress</title>
	<atom:link href="http://www.joedolson.com/articles/category/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.joedolson.com/articles</link>
	<description>Tips and Commentary on Web Accessibility, Usability, and Search Marketing best practices.</description>
	<lastBuildDate>Thu, 19 Aug 2010 16:20:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>WP to Twitter Updated to OAuth</title>
		<link>http://www.joedolson.com/articles/2010/08/wp-to-twitter-updated-to-oauth/</link>
		<comments>http://www.joedolson.com/articles/2010/08/wp-to-twitter-updated-to-oauth/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 21:59:26 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[wp to twitter]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=846</guid>
		<description><![CDATA[Well, it&#8217;s a day for updates. Today was (at one point) the deadline for Twitter to permanently disable Basic authentication. The date has now been extended to August 31st, but the difference isn&#8217;t really&#160;significant. The one benefit which it will provide is a little extra time to debug the new OAuth version of WP to [...]<p><strong><a href="http://www.joedolson.com/articles/2010/08/wp-to-twitter-updated-to-oauth/">WP to Twitter Updated to OAuth</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>Well, it&#8217;s a day for updates. Today was (at one point) the deadline for Twitter to permanently disable Basic authentication. The date has now been extended to August 31st, but the difference isn&#8217;t really&nbsp;significant. </p>
<p>The one benefit which it will provide is a little extra time to debug the new <a href="http://wordpress.org/extend/plugins/wp-to-twitter/">OAuth version of WP to Twitter</a> before it becomes the <strong>only</strong> working&nbsp;version. </p>
<p>There are a lot of complications surrounding the OAuth update&thinsp;&#8212;&thinsp;most of them unfortunate. For the first time since I began work on this plugin, I had to remove features. As far as I can tell, there&#8217;s no way to operate two separate user accounts with an OAuth authenticated application, for example. As a result, I&#8217;ve had to remove the ability to assign separate author accounts for Twitter posting. As development progresses, a way forward may show up&thinsp;&#8212;&thinsp;but for now, I just don&#8217;t really have another&nbsp;option. </p>
<p>My biggest request at this time: if you can, please decide you&#8217;re willing to use this version now, to provide me with feedback so it will work as well as it possibly can when all past versions cease to be&nbsp;functional. </p>
<p>There will be problems; I&#8217;m sure of it. I just hope to find them all soon enough.
<p><strong><a href="http://www.joedolson.com/articles/2010/08/wp-to-twitter-updated-to-oauth/">WP to Twitter Updated to OAuth</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2010/08/wp-to-twitter-updated-to-oauth/feed/</wfw:commentRss>
		<slash:comments>105</slash:comments>
		</item>
		<item>
		<title>The future of WP to Twitter</title>
		<link>http://www.joedolson.com/articles/2010/05/the-future-of-wp-to-twitter/</link>
		<comments>http://www.joedolson.com/articles/2010/05/the-future-of-wp-to-twitter/#comments</comments>
		<pubDate>Wed, 05 May 2010 20:02:17 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[wptotwitter]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=787</guid>
		<description><![CDATA[In June of 2010, Twitter will be permanently disabling basic authentication in favor of the OAuth protocol for authentication. For WordPress plugins which make use of the Twitter API, this is a change which will have significant&#160;repercussions. The specific repercussion will be that every implementation of a plugin will need to be registered with Twitter [...]<p><strong><a href="http://www.joedolson.com/articles/2010/05/the-future-of-wp-to-twitter/">The future of WP to Twitter</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>In June of 2010, Twitter will be <a href="http://apiwiki.twitter.com/OAuth-FAQ#WhenareyougoingtoturnoffBasicAuth">permanently disabling basic authentication</a> in favor of the <a href="http://oauth.net/">OAuth protocol</a> for authentication. For WordPress plugins which make use of the Twitter <abbr title="Application Programming Interface">API</abbr>, this is a change which will have significant&nbsp;repercussions. </p>
<p>The specific repercussion will be that every implementation of a plugin will need to be <a href="http://twitter.com/oauth_clients">registered with Twitter as a separate&nbsp;application</a>. </p>
<p>This means that the development of WP to Twitter will need to move in a slightly different direction. After pondering a bit, I&#8217;m left with four plausible&nbsp;choices:</p>
<ol>
<li><a href="/articles/2010/05/the-future-of-wp-to-twitter/#die">Let the plugin&nbsp;die</a></li>
<li><a href="/articles/2010/05/the-future-of-wp-to-twitter/#oauth">Implement OAuth for the&nbsp;plugin</a></li>
<li><a href="/articles/2010/05/the-future-of-wp-to-twitter/#webservice">Build a pass-through web service to act as an application interface with&nbsp;Twitter</a></li>
<li><a href="/articles/2010/05/the-future-of-wp-to-twitter/#3rdparty">Associate with a 3rd party web service in the same&nbsp;capacity</a></li>
</ol>
<p>These all have downsides, obviously&thinsp;&#8212;&thinsp;but I want to lay out my thoughts on each possibility and I&#8217;m asking for comments from the users of my plugin on their&nbsp;preference. </p>
<h3 id="die">Death of WP to&nbsp;Twitter</h3>
<p>Although it&#8217;s not really my favorite option, I have to acknowledge that it&#8217;s plausible. It&#8217;s certainly the easy answer&thinsp;&#8212;&thinsp;maintaining an even moderately popular WordPress plugin is a lot of free labor. I already spend more time on maintaining than I really should, from a financial perspective, and this may push it over the&nbsp;edge. </p>
<h3 id="oauth">Implement&nbsp;OAuth</h3>
<p>This would be a fair amount of work for me, although not insurmountable. The real downside to it would be how much work it would be for users&thinsp;&#8212;&thinsp;every one of you would have to register one application with Twitter for every site where you installed the plugin. With one site, this may not be a big deal&thinsp;&#8212;&thinsp;but I know it could be a real pain for people with more than&nbsp;that. </p>
<p>It&#8217;s not without some potential advantages, of course&thinsp;&#8211;&thinsp;when you&#8217;re registering your own application, you could customize the application name, the home <abbr title="Uniform Resource Locator">URL</abbr> for the application,&nbsp;etc. </p>
<h3 id="webservice">Build a pass-through&nbsp;service</h3>
<p>One way around the Oauth mess is for me to build a separate service which would handle actually connecting to Twitter. WP to Twitter would authenticate with that service, and pass the post off to Twitter. Again, this would be a lot of work&thinsp;&#8212;&thinsp;but, more significantly, it would involve some definite&nbsp;expenses. </p>
<p>I&#8217;ve been happy to maintain this plugin for not-much-better than free, but when it comes to incurring expenses, I start to feel a bit unexcited. It&#8217;s not like WP to Twitter is a commercially viable business, and I have expectations of profit from it&thinsp;&#8212;&thinsp;but I&#8217;d prefer not to find myself going into the hole because of it. I&#8217;d probably need to see an increase in donations to make this&nbsp;feasible.</p>
<h3 id="thirdparty">Use a 3rd Party&nbsp;Service</h3>
<p>Obviously, if I can build a service to connect with Twitter, so can somebody else. This is almost certainly the easiest solution which keeps the plugin usable&thinsp;&#8212;&thinsp;but it does mean creating a dependency on a 3rd party to keep the plugin functioning. Depending on Twitter is just natural; obviously, if Twitter goes away, the <em>point</em> of the plugin is lost. Depending on somebody else is something I&#8217;m less certain of, on the whole. There&#8217;s a reason, after all, that the plugin allows for use of URLs without an external&nbsp;shortener. </p>
<h3>Give me your&nbsp;thoughts</h3>
<p>This is very important to me&thinsp;&#8212;&thinsp;I want to know what direction you&#8217;d like to see WP to Twitter go. Please let me know! Do you know another solution? Do&nbsp;tell! </p>
<p>And if there are no responses&#8230;well, that has a <a href="/articles/2010/05/the-future-of-wp-to-twitter/#die">pretty obvious meaning</a> as well.
<p><strong><a href="http://www.joedolson.com/articles/2010/05/the-future-of-wp-to-twitter/">The future of WP to Twitter</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2010/05/the-future-of-wp-to-twitter/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Form over Function? Never thought about it&#8230;</title>
		<link>http://www.joedolson.com/articles/2010/04/form-over-function-never-thought-about-it/</link>
		<comments>http://www.joedolson.com/articles/2010/04/form-over-function-never-thought-about-it/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 15:15:04 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[calendar]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=779</guid>
		<description><![CDATA[A couple of weeks ago, I launched a WordPress Calendar plugin. Now, there are a *lot* of Calendar plugins available out there, so I&#8217;ll freely admit that my primary reason for doing this was to meet my own needs&#8201;&#8212;&#8201;and given the &#8220;profit margin&#8221; on writing WordPress plugins, that&#8217;s generally the best plan when writing&#160;one. Interestingly, [...]<p><strong><a href="http://www.joedolson.com/articles/2010/04/form-over-function-never-thought-about-it/">Form over Function? Never thought about it&#8230;</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago, I launched a <a href="/articles/my-calendar/">WordPress Calendar plugin</a>. Now, there are a *lot* of Calendar plugins available out there, so I&#8217;ll freely admit that my primary reason for doing this was to meet my own needs&thinsp;&#8212;&thinsp;and given the &#8220;profit margin&#8221; on writing WordPress plugins, that&#8217;s generally the best plan when writing&nbsp;one. </p>
<p>Interestingly, the most frequent complaints I&#8217;ve heard since launching it were in an area which I had considered to be the least important area of the plugin&thinsp;&#8212;&thinsp;what it looks&nbsp;like.</p>
<p>I only did minimal work in setting up the appearance for this plugin; checking whether it basically worked in the default WordPress themes and little else. My assumption was that if anybody needed the plugin, they&#8217;d just have to be prepared to customize it to meet their needs. There was no reasonable way I could set it up to mesh with all possible themes, after&nbsp;all!</p>
<p>But apparently, in order to have the plugin be generally accepted, people need it to have &#8220;a look.&#8221; Most advanced users will probably change it; but I clearly hadn&#8217;t considered the more beginner users, without sufficient <abbr title="Cascading Style Sheets">CSS</abbr> knowledge to readily customize the&nbsp;output.</p>
<p>What&#8217;s really interesting to me about this situation, however, is not whether the plugin is accepted, popular, or heavily designed; that&#8217;s just an example. I was intrigued to observe in my own development process an approach which almost entirely ignored what the product looked like. From start to finish, I was really thinking about whether the plugin produced well-structured <abbr title="HyperText Markup Language">HTML</abbr> and whether the various functions involved in producing information worked&nbsp;well. </p>
<p>I just never thought about design. And why would I? If I can&#8217;t predict what context the plugin will be used in, why should I design it at all, beyond making the basic functionality&nbsp;clear? </p>
<p>It&#8217;s an interesting question; from my perspective, as a fairly advanced WordPress developer, I honestly prefer plugins I use to have absolutely minimal styles, and for me to be able to disable those styles at will so that I can replace them. However, WordPress has a very broad user base. Most of those millions of users probably expect that they can install a plugin and immediately make use of it&thinsp;&#8212;&thinsp;and any changing of colors or reskinning to better match their design is purely optional. For those users, I really should be providing something which can be immediately&nbsp;useful.</p>
<p>It actually does come down to usability: advanced users can do what they want with the calendar design regardless of how extensively I&#8217;ve set up styles. Beginning users, however, may not be able to fix anything that I&#8217;ve left unresolved, or not fully tested. In order to provide the best usability, I need to consider those users, as&nbsp;well.</p>
<p>Having determined that it does make sense to actually design the plugin&#8217;s output, but also knowing that there&#8217;s no reasonable way I can design it to match all themes, I do have to make a firm decision about what the basic color scheme for the plugin will be. Originally, I&#8217;d used a basic, Kubrick-derived color set. Now? Well, the sensible thing seems to be to consider branding; set it up using my own website&#8217;s color scheme. It may be subtle, but it will convey my identity, even without my name or <abbr title="Uniform Resource Locator">URL</abbr>. That seems&nbsp;worthwhile.</p>
<p>Guess I better get to work!
<p><strong><a href="http://www.joedolson.com/articles/2010/04/form-over-function-never-thought-about-it/">Form over Function? Never thought about it&#8230;</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2010/04/form-over-function-never-thought-about-it/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>New WordPress Plugin: My Calendar</title>
		<link>http://www.joedolson.com/articles/2010/04/new-wordpress-plugin-my-calendar/</link>
		<comments>http://www.joedolson.com/articles/2010/04/new-wordpress-plugin-my-calendar/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 22:59:24 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[calendar]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=718</guid>
		<description><![CDATA[Version 1.3.0 released. Numerous bug fixes and new&#160;features. I just launched the first public draft of an online calendar plugin I&#8217;ve been working on for a while. It&#8217;s based on a plugin from Kieran O&#8217;Shea, Calendar, but has been adapted extensively to better suit my own&#160;needs. Hopefully, it&#8217;ll also suit other people&#8217;s&#160;needs. Read more about [...]<p><strong><a href="http://www.joedolson.com/articles/2010/04/new-wordpress-plugin-my-calendar/">New WordPress Plugin: My Calendar</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<div id="update">
<p><strong>Version 1.3.0 released.</strong> Numerous bug fixes and new&nbsp;features.</p>
</div>
<p>I just launched the first public draft of an online calendar plugin I&#8217;ve been working on for a while. It&#8217;s based on a plugin from Kieran O&#8217;Shea, <a href="http://wordpress.org/extend/plugins/calendar/">Calendar</a>, but has been adapted extensively to better suit my own&nbsp;needs. </p>
<p>Hopefully, it&#8217;ll also suit other people&#8217;s&nbsp;needs.</p>
<ul>
<li><a href="/articles/my-calendar/">Read more about My&nbsp;Calendar</a>.</li>
<li><a href="http://wordpress.org/extend/plugins/my-calendar/">Download My&nbsp;Calendar</a>.</li>
<li><a href="/articles/my-calendar/sample-calendar/">View a sample&nbsp;installation</a>.</li>
</ul>
<p>Please leave comments or questions at <a href="/articles/my-calendar/faq/">the My Calendar support page</a>; leave <a href="/articles/my-calendar/requests/">feature requests</a> on the feature request&nbsp;page!</p>
<p><strong><a href="http://www.joedolson.com/articles/2010/04/new-wordpress-plugin-my-calendar/">New WordPress Plugin: My Calendar</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2010/04/new-wordpress-plugin-my-calendar/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WP to Twitter update: Cli.gs to be shut down</title>
		<link>http://www.joedolson.com/articles/2009/10/wp-to-twitter-update-cli-gs-to-be-shut-down/</link>
		<comments>http://www.joedolson.com/articles/2009/10/wp-to-twitter-update-cli-gs-to-be-shut-down/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 13:25:01 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[cligs]]></category>
		<category><![CDATA[wptotwitter]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=614</guid>
		<description><![CDATA[Continuing updates: Cli.gs gets a temporary stay of execution. Keep watching for further news&#8201;&#8212;&#8201;I may end up making these changes after all, but for now I&#8217;ll wait and&#160;see. The Cli.gs URL shortening service is due to be closed down on Sunday, October 25th. At this time, the service will stop accepting new short URLs and [...]<p><strong><a href="http://www.joedolson.com/articles/2009/10/wp-to-twitter-update-cli-gs-to-be-shut-down/">WP to Twitter update: Cli.gs to be shut down</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<div class="update">
<p>Continuing updates: <a href="http://blog.cli.gs/news/shutdown-plans-on-hold">Cli.gs gets a temporary stay of execution</a>. Keep watching for further news&thinsp;&#8212;&thinsp;I may end up making these changes after all, but for now I&#8217;ll wait and&nbsp;see.</p>
</div>
<p>The Cli.gs <abbr title="Uniform Resource Locator">URL</abbr> shortening service is <a href="http://blog.cli.gs/news/cligs-shutting-down">due to be closed down</a> on Sunday, October 25th. At this time, the service will stop accepting new short URLs and generating statistics, but will continue to forward visitors at least through the end of&nbsp;November. </p>
<h3>What does this mean for WP to&nbsp;Twitter?</h3>
<p>Shortly before October 25th, I will release a very important update to WP to Twitter which will encompass the following&nbsp;changes:</p>
<ol>
<li>I will remove support for new Cli.gs shortened&nbsp;URLs.</li>
<li>To continue offering choice, I will add support for at least one additional&nbsp;shortener.</li>
<li>Users with Cli.gs as their selected shortener will be given a choice what shortener they&#8217;d like to switch&nbsp;to.</li>
<li>If no choice is made, users will be switched to un-shortened&nbsp;URLs</li>
</ol>
<p>Additionally, I aim to add support for custom shortened URLs&thinsp;&#8211;&thinsp;URLs shortened on your own domain. However, this may not happen by October 25th.
<p><strong><a href="http://www.joedolson.com/articles/2009/10/wp-to-twitter-update-cli-gs-to-be-shut-down/">WP to Twitter update: Cli.gs to be shut down</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2009/10/wp-to-twitter-update-cli-gs-to-be-shut-down/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Review: WordPress Plugin Development: Beginner&#8217;s Guide, by Vladimir Prelovac</title>
		<link>http://www.joedolson.com/articles/2009/09/review-wordpress-plugin-development-beginners-guide-by-vladimir-prelovac/</link>
		<comments>http://www.joedolson.com/articles/2009/09/review-wordpress-plugin-development-beginners-guide-by-vladimir-prelovac/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 15:49:36 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=605</guid>
		<description><![CDATA[So, a few weeks ago this handy book showed up on my doorstep: WordPress Plugin Development (Beginner&#8217;s Guide), by Vladimir Prelovac (author of the WP Wall, Theme Test Drive, and Smart YouTube WordPress plugins, among many others). Vladimir being a highly active WordPress plugin developer, it&#8217;s unsurprising that the basic premise behind the book is [...]<p><strong><a href="http://www.joedolson.com/articles/2009/09/review-wordpress-plugin-development-beginners-guide-by-vladimir-prelovac/">Review: WordPress Plugin Development: Beginner&#8217;s Guide, by Vladimir Prelovac</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>So, a few weeks ago this handy book showed up on my doorstep: <a href="http://www.amazon.com/gp/product/1847193595?ie=UTF8&#038;tag=joedolsonacce-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1847193595">WordPress Plugin Development (Beginner&#8217;s Guide)</a><img src="http://www.assoc-amazon.com/e/ir?t=joedolsonacce-20&#038;l=as2&#038;o=1&#038;a=1847193595" width="1" height="1" alt="" />, by Vladimir Prelovac (author of the <a href="http://www.prelovac.com/vladimir/wordpress-plugins/wp-wall">WP Wall</a>, <a href="http://www.prelovac.com/vladimir/wordpress-plugins/theme-test-drive">Theme Test Drive</a>, and <a href="http://www.prelovac.com/vladimir/wordpress-plugins/smart-youtube">Smart YouTube</a> WordPress plugins, among many others). Vladimir being a highly active WordPress plugin developer, it&#8217;s unsurprising that the basic premise behind the book is to <em>learn by doing</em>. Essentially, the book takes you on a step-by-step walkthrough of several of Vladimir&#8217;s WordPress plugins, constructing each aspect of the plugins separately and explaining the&nbsp;process. </p>
<p>Not a bad way to get a handle on WordPress plugin authoring. There may be a better way to approach the subject, but I can&#8217;t honestly say that I know what it might&nbsp;be. </p>
<p>The fact is, WordPress plugins are incredibly powerful and cover an enormous breadth of possibilities. As the guide indicates, the WordPress plugin <abbr title="Application Programming Interface">API</abbr> is essentially a WordPress-specific method of accessing the entirety of the <abbr title="Hypertext PreProcessing">PHP</abbr> programming language. If you can do something with <abbr title="Hypertext PreProcessing">PHP</abbr>, you can probably do it in a WordPress&nbsp;plugin. </p>
<p>The book has a basic assumption that you&#8217;re already fairly sophisticated in your use of <abbr title="Hypertext PreProcessing">PHP</abbr> programming. Rather than hold your hands through <abbr title="Hypertext PreProcessing">PHP</abbr> logic, the important information provided in this book is about how to make use of the WordPress specific functions which will allow your script to tie to WordPress&thinsp;&#8212;&thinsp;and the key information that plugin authors need to be responsible for the security of their own&nbsp;scripts. </p>
<p>This is an <em>extremely important</em> piece of information, and can&#8217;t be emphasized enough. Probably the biggest flaw in this book is that plugin security isn&#8217;t highlighted sufficiently. It&#8217;s not that the book doesn&#8217;t state clearly that plugin authors need to take care of security, but it doesn&#8217;t do it on every single page in six-inch bold&nbsp;type&#8230;.</p>
<p>But I&nbsp;digress.</p>
<p>On the whole, you can learn a lot from this book, whether you&#8217;re a beginner at WordPress plugin authoring or not. The breadth of WordPress plugin capabilities means that most experienced authors don&#8217;t know everything, so there&#8217;s almost certainly something here for you&thinsp;&#8212;&thinsp;but it starts simple, and within the first 30 pages you&#8217;ll already have a usable, practical plugin&nbsp;written. </p>
<p><strong><a href="http://www.joedolson.com/articles/2009/09/review-wordpress-plugin-development-beginners-guide-by-vladimir-prelovac/">Review: WordPress Plugin Development: Beginner&#8217;s Guide, by Vladimir Prelovac</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2009/09/review-wordpress-plugin-development-beginners-guide-by-vladimir-prelovac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How NOT to use Post meta fields in WordPress Themes</title>
		<link>http://www.joedolson.com/articles/2009/08/how-not-to-use-post-meta-fields-in-wordpress-themes/</link>
		<comments>http://www.joedolson.com/articles/2009/08/how-not-to-use-post-meta-fields-in-wordpress-themes/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 23:09:54 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[custom fields]]></category>
		<category><![CDATA[post object]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=577</guid>
		<description><![CDATA[A little while ago, while working on a site built by another developer, I came across this rather interesting example of how to use custom fields badly in a WordPress theme (abbreviated for, well,&#160;brevity): (The original also did this for meta keywords and meta descriptions&#8201;&#8212;&#8201;but the demonstration of this &#8220;logic&#8221; only requires one&#160;field.) &#160; &#60;? [...]<p><strong><a href="http://www.joedolson.com/articles/2009/08/how-not-to-use-post-meta-fields-in-wordpress-themes/">How NOT to use Post meta fields in WordPress Themes</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>A little while ago, while working on a site built by another developer, I came across this rather interesting example of how to use custom fields <em>badly</em> in a WordPress theme (abbreviated for, well,&nbsp;brevity):</p>
<p>(The original also did this for meta keywords and meta descriptions&thinsp;&#8212;&thinsp;but the demonstration of this &#8220;logic&#8221; only requires one&nbsp;field.)</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>is_front_page<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;title&gt;Handwritten title&lt;/title&gt;
<span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span>is_page<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;page-name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;title&gt;<span style="color: #000000; font-weight: bold;">&lt;?=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">334</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_title'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> | <span style="color: #000000; font-weight: bold;">&lt;?</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/title&gt;
<span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span>is_page<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;page-name-2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;title&gt;<span style="color: #000000; font-weight: bold;">&lt;?=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">383</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_title'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> | <span style="color: #000000; font-weight: bold;">&lt;?</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/title&gt;
<span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span>is_page<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;page-name-3&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;title&gt;<span style="color: #000000; font-weight: bold;">&lt;?=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">381</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_title'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> | <span style="color: #000000; font-weight: bold;">&lt;?</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/title&gt;
<span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span>is_page<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;page-name-4&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;title&gt;<span style="color: #000000; font-weight: bold;">&lt;?=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">383</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_title'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> | <span style="color: #000000; font-weight: bold;">&lt;?</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/title&gt;
<span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span>is_page<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;page-name-5&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;title&gt;<span style="color: #000000; font-weight: bold;">&lt;?=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">387</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_title'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> | <span style="color: #000000; font-weight: bold;">&lt;?</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/title&gt;
<span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>And so on. For approximately 40 separate pages. It made my brain hurt. For reference, the exact same thing&thinsp;&#8212;&thinsp;for all pages on the site&thinsp;&#8212;&thinsp;could have been accomplished (with better fallback conditions, in fact) with this&nbsp;code:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_title'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;&quot;</span> <span style="color: #339933;">&amp;&amp;</span> is_page<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;title&gt;<span style="color: #000000; font-weight: bold;">&lt;?</span> wp_title<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'|'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'right'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> <span style="color: #000000; font-weight: bold;">&lt;?</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/title&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;title&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #990000;">stripslashes</span><span style="color: #009900;">&#40;</span>get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_title'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> | <span style="color: #000000; font-weight: bold;">&lt;?</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/title&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Now, the original code may actually look cleaner&thinsp;&#8212;&thinsp;it does, after all, have fewer functions and fewer variables. However, the second example is a <strong>hell</strong> of a lot more&nbsp;maintainable. </p>
<p>If you add a new page to the site in the first example, you have&nbsp;to:</p>
<ol>
<li>Create the new&nbsp;page.</li>
<li>Add a custom field with the&nbsp;title.</li>
<li>Check the new page&#8217;s&nbsp;ID.</li>
<li>Find the theme file which contains the meta data&nbsp;references.</li>
<li>Add a new line in the <code>elseif</code> loops which references your new page first by slug and then by&nbsp;ID</li>
</ol>
<p>With the second example, you&nbsp;simply:</p>
<ol>
<li>Create the new&nbsp;page.</li>
<li>Add a custom field with the&nbsp;title.</li>
</ol>
<p>No coding, no <abbr title="Hypertext PreProcessing">PHP</abbr>, no editing themes&thinsp;&#8212;&thinsp;it just works. Well, isn&#8217;t that handy? This is just basic good coding practice: make your code reusable. There&#8217;s absolutely no reason to code something into your WordPress Themes which is not readily transportable unless you&#8217;re doing yourself a favor by avoiding an unnecessary server call by hard-coding the site name or other known&nbsp;elements. </p>
<p>The basic difference between these two examples is simple: the first requires you to hard code the ID and page slug for each example; the second grabs the post ID from the existing post object. The second example also has a fall-back if no information has been entered in a given custom field&thinsp;&#8212;&thinsp;which is lacking in the original&nbsp;code. </p>
<p>Word to the wise: save yourself some&nbsp;work!</p>
<p><strong><a href="http://www.joedolson.com/articles/2009/08/how-not-to-use-post-meta-fields-in-wordpress-themes/">How NOT to use Post meta fields in WordPress Themes</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2009/08/how-not-to-use-post-meta-fields-in-wordpress-themes/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WordPress Post Custom Styling</title>
		<link>http://www.joedolson.com/articles/2008/12/wordpress-post-custom-styling/</link>
		<comments>http://www.joedolson.com/articles/2008/12/wordpress-post-custom-styling/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 16:26:21 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[articles]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[magazine]]></category>
		<category><![CDATA[post styling]]></category>
		<category><![CDATA[styles]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=472</guid>
		<description><![CDATA[Current Version:&#160;1.2.1 Download WP Post&#160;Styling. Read more about this&#160;plugin. Support this&#160;Plugin New in Version&#160;1.2.1: Added ability to delete CSS from the style&#160;library New WordPress plugin: WP Post Styling. The plugin serves only one purpose: to create a place to add custom styles which will only apply to the current page or post in your WordPress&#160;blog. [...]<p><strong><a href="http://www.joedolson.com/articles/2008/12/wordpress-post-custom-styling/">WordPress Post Custom Styling</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<div class="aside">
<p>Current Version:&nbsp;<strong>1.2.1</strong></p>
<p><a href="http://wordpress.org/extend/plugins/wp-post-styling/">Download WP Post&nbsp;Styling</a>.</p>
<p><a href="http://www.joedolson.com/articles/wp-post-styling/">Read more about this&nbsp;plugin</a>.</p>
<p><a href="http://www.joedolson.com/donate.php">Support this&nbsp;Plugin</a></p>
</div>
<p><strong>New in Version&nbsp;1.2.1:</strong></p>
<ul>
<li>Added ability to delete <abbr title="Cascading Style Sheets">CSS</abbr> from the style&nbsp;library</li>
</ul>
<p>New WordPress plugin: <a href="http://wordpress.org/extend/plugins/wp-post-styling/">WP Post Styling</a>. The plugin serves only one purpose: to create a place to add custom styles which will only apply to the current page or post in your WordPress&nbsp;blog. </p>
<p>Although not widely used on the internet, it&#8217;s a valuable magazine design technique to give each article a unique look and feel. A look and feel which shows the face of that article in a light which best represents the subject, topic, or&nbsp;style. </p>
<p>This plugin is intended to make that kind of post-by-post styling&nbsp;simpler. </p>
<p>It&#8217;s not that you can&#8217;t readily do this in WordPress&thinsp;&#8212;&thinsp;either by using a theme which applies style hooks for unique articles, by utilizing WordPress conditional functions to check whether a given page is active, or by whatever other means you might imagine&thinsp;&#8212;&thinsp;but this makes it much simpler, since you can simply enter the desired styles into a textarea directly in the&nbsp;post. </p>
<p>Comments and requests should be made at the <a href="http://www.joedolson.com/articles/wp-post-styling/">WP Post Styling</a> home page.
<p><strong><a href="http://www.joedolson.com/articles/2008/12/wordpress-post-custom-styling/">WordPress Post Custom Styling</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/12/wordpress-post-custom-styling/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>WP to Twitter Update</title>
		<link>http://www.joedolson.com/articles/2008/11/wp-to-twitter-update-new-features/</link>
		<comments>http://www.joedolson.com/articles/2008/11/wp-to-twitter-update-new-features/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 16:21:51 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[cligs]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=445</guid>
		<description><![CDATA[Current version:&#160;2.1.1 Download&#160;WP-to-Twitter Follow me on&#160;Twitter! Support this&#160;plugin! Support Questions and&#160;FAQ Version 2.1.1&#160;released. This is primarily a release targeted at tracking down some nagging problems; but it includes the ability to disable error messages for those suffering from errors even when the plugin is correctly shortening and posting your status&#160;updates. 2.0.0 Fixed bug introduced in [...]<p><strong><a href="http://www.joedolson.com/articles/2008/11/wp-to-twitter-update-new-features/">WP to Twitter Update</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<div class="aside">
<p>Current version:&nbsp;<strong>2.1.1</strong></p>
<ul>
<li><a href="http://wordpress.org/extend/plugins/wp-to-twitter/">Download&nbsp;WP-to-Twitter</a></li>
<li><a href="http://twitter.com/joedolson">Follow me on&nbsp;Twitter!</a></li>
<li><a href="/donate.php">Support this&nbsp;plugin!</a></li>
<li><a href="/articles/wp-to-twitter/support/">Support Questions and&nbsp;<abbr title="Frequently Asked Questions">FAQ</abbr></a></li>
</ul>
</div>
<div id="update">
<strong>Version 2.1.1&nbsp;released.</strong> </p>
<p>This is primarily a release targeted at tracking down some nagging problems; but it includes the ability to disable error messages for those suffering from errors even when the plugin is correctly shortening and posting your status&nbsp;updates.</p>
</div>
<h4>2.0.0</h4>
<ul>
<li>Fixed bug introduced in WordPress 2.9 where logged in users could only edit their own profiles and associated&nbsp;issues.</li>
<li>Fixed bug which caused #url# to repeatedly be added to the end of tweet texts on reactivation or&nbsp;upgrade.</li>
<li>Fixed bug which generated shortener <abbr title="Application Programming Interface">API</abbr> error messages when no <abbr title="Uniform Resource Locator">URL</abbr> shortener was&nbsp;used.</li>
<li>Fixed bug which prevented display of <abbr title="Uniform Resource Locator">URL</abbr> on edit screen if no <abbr title="Uniform Resource Locator">URL</abbr> shortener was&nbsp;used.</li>
<li>Added Spanish translation courtesy of <a href="http://www.sohelet.com">David Gil&nbsp;P&eacute;rez</a></li>
<li>Made so many language changes that aforementioned translation is now terribly out of date, as are all&nbsp;others&#8230;</li>
<li>Added ability to restrict posting to certain&nbsp;categories.</li>
<li>Added option to dynamically generate Google Analytics campaign identifier by category, post title, author, or post&nbsp;id.</li>
<li>Added option to configure plugin to use other services using the Twitter-compatible&nbsp;<abbr title="Application Programming Interface">API</abbr>.</li>
<li>Added support for YOURLS installations as your <abbr title="Uniform Resource Locator">URL</abbr> shortener. (Either local or&nbsp;remote.)</li>
<li>Redesigned administrative&nbsp;interface.</li>
<li>Removed use of Snoopy and alternate <abbr title="HyperText Transfer Protocol">HTTP</abbr> request&nbsp;methods.</li>
<li>Discontinued support for WordPress versions below version&nbsp;2.7.</li>
<li>Major revisions to support&nbsp;checks.</li>
<li>Version jumped to&nbsp;2.0.0</li>
</ul>
</div>
<p><a href="http://wordpress.org/extend/plugins/wp-to-twitter/changelog/">See the change log at&nbsp;WordPress.org</a>.</p>
<p>Comments on this post are closed; please make comments at  <a href="/articles/wp-to-twitter/">the WP to Twitter home page</a>!
<p><strong><a href="http://www.joedolson.com/articles/2008/11/wp-to-twitter-update-new-features/">WP to Twitter Update</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/11/wp-to-twitter-update-new-features/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>WordPress to Twitter with Cli.gs</title>
		<link>http://www.joedolson.com/articles/2008/11/wordpress-to-twitter-with-cligs/</link>
		<comments>http://www.joedolson.com/articles/2008/11/wordpress-to-twitter-with-cligs/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 16:16:38 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[cligs]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=434</guid>
		<description><![CDATA[About&#160;WP-to-Twitter Download&#160;WP-to-Twitter Technically, this plugin has been available from the WordPress plugin directory since last Monday, but today is it&#8217;s official launch. This is for two reasons: first, it gave the plugin a week to &#8220;shake out the bugs,&#8221; so that the official launch could be as stable as is reasonably&#160;possible. Second, it&#8217;s my birthday, [...]<p><strong><a href="http://www.joedolson.com/articles/2008/11/wordpress-to-twitter-with-cligs/">WordPress to Twitter with Cli.gs</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<div class="aside">
<p><a href="/articles/wp-to-twitter/">About&nbsp;WP-to-Twitter</a></p>
<p><a href="http://wordpress.org/extend/plugins/wp-to-twitter/">Download&nbsp;WP-to-Twitter</a></p>
</div>
<p>Technically, this plugin has been available from <a href="http://wordpress.org/extend/plugins/">the WordPress plugin directory</a> since last Monday, but <em>today</em> is it&#8217;s official launch. This is for two reasons: first, it gave the plugin a week to &#8220;shake out the bugs,&#8221; so that the official launch could be as stable as is reasonably&nbsp;possible. </p>
<p>Second, it&#8217;s my birthday, so I&#8217;ll be able to remember when the plugin launched. Isn&#8217;t that&nbsp;sweet?</p>
<p>The plug-in is pretty straightforward: it posts a status update about your new WP post to Twitter, passing by Pierre Far&#8217;s <a href="http://cli.gs">Cli.gs <abbr title="Uniform Resource Locator">URL</abbr> shortening service</a> on the way. If you have a <a href="http://cli.gs/user/api">Cli.gs <abbr title="Application Programming Interface">API</abbr> key</a>, you&#8217;ll get the added bonus that your Cli.gs will automatically show up in your Cli.gs account, so you can track the statistics of that Clig right from the&nbsp;beginning. </p>
<p>By default, the plugin will take a chunk of text you&#8217;ve defined and your post title and truncate them to an acceptable length (including your Cli.gs post <abbr title="Uniform Resource Locator">URL</abbr>) to send over to Twitter. However, you don&#8217;t have to just accept this stock text: you can custom author your Tweet for every post, using the WP to Twitter custom field in your post authoring&nbsp;interface. </p>
<p><a href="/articles/wp-to-twitter/" class="cta">Read more about WP->Twitter</a> </p>
<p><a href="/scripts/wp-to-twitter.php" class="cta">Download it at&nbsp;WordPress!</a></p>
<p><strong><a href="http://www.joedolson.com/articles/2008/11/wordpress-to-twitter-with-cligs/">WordPress to Twitter with Cli.gs</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/11/wordpress-to-twitter-with-cligs/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
	</channel>
</rss>
