<?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>sillybean.net &#187; WordPress</title>
	<atom:link href="http://sillybean.net/category/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://sillybean.net</link>
	<description>reading, writing, web design, and the intersections thereof</description>
	<lastBuildDate>Fri, 11 May 2012 22:27:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Small update to Twenty Links</title>
		<link>http://sillybean.net/2011/10/small-update-to-twenty-links/</link>
		<comments>http://sillybean.net/2011/10/small-update-to-twenty-links/#comments</comments>
		<pubDate>Sat, 08 Oct 2011 18:34:55 +0000</pubDate>
		<dc:creator>Stephanie</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[twenty links]]></category>

		<guid isPermaLink="false">http://sillybean.net/?p=7135</guid>
		<description><![CDATA[<p>I&#8217;ve just posted a minor update that fixes several bugs: incorrect URLs for subdirectory installations (props <a href="http://forum.sillybean.net/forums/topic/incorrect-url-when-removing-a-tag/">aldolet</a>), an endless link tag in trashed post notice, and a bad layout on &#8220;not found&#8221; pages. I&#8217;ve also removed the plus links …</p>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just posted a minor update that fixes several bugs: incorrect URLs for subdirectory installations (props <a href="http://forum.sillybean.net/forums/topic/incorrect-url-when-removing-a-tag/">aldolet</a>), an endless link tag in trashed post notice, and a bad layout on &#8220;not found&#8221; pages. I&#8217;ve also removed the plus links when viewing the home page, where they&#8217;re not needed and don&#8217;t work there anyway.</p>
<p><a href="http://sillybean.net/downloads/twenty-links.zip-0.6.2"><strong>Download 0.6.2</strong></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sillybean.net/2011/10/small-update-to-twenty-links/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Getting tag autocomplete (and other jQuery stuff) to work for visitors</title>
		<link>http://sillybean.net/2011/10/getting-tag-autocomplete-and-other-jquery-stuff-to-work-for-visitors/</link>
		<comments>http://sillybean.net/2011/10/getting-tag-autocomplete-and-other-jquery-stuff-to-work-for-visitors/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 14:53:21 +0000</pubDate>
		<dc:creator>Stephanie</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://sillybean.net/?p=7119</guid>
		<description><![CDATA[<p>The trickiest part of the <a href="http://sillybean.net/?p=7104">latest updates</a> to <a href="http://sillybean.net/?p=7091">Twenty Links</a> was getting the tag suggest function to work for users who aren&#8217;t logged in. I&#8217;m pretty much a n00b when it comes to jQuery &#8212; JavaScript in general has always …</p>]]></description>
			<content:encoded><![CDATA[<p>The trickiest part of the <a href="http://sillybean.net/?p=7104">latest updates</a> to <a href="http://sillybean.net/?p=7091">Twenty Links</a> was getting the tag suggest function to work for users who aren&#8217;t logged in. I&#8217;m pretty much a n00b when it comes to jQuery &#8212; JavaScript in general has always been my weakest skill &#8212; so I went looking for a handy tutorial, and I found one: <a href="http://sudarmuthu.com/blog/using-wordpress-built-in-tag-auto-complete-script-in-your-plugins">Using WordPress built-in tag auto complete script in your Plugins</a>, posted a couple of years ago by Sudar Muthu. That did the trick &#8212; but only for logged-in users.</p>
<h3>Why it doesn&#8217;t work</h3>
<p>WordPress handles jQuery requests using the <code>/wp-admin/admin-ajax.php</code> file. Here&#8217;s the catch:</p>
<blockquote><p>The only cave[a]t to this method is that right now the <code>admin-ajax.php</code> file needs you to be logged in and therefore can only be used in admin pages. But in WordPress 2.9 even anonymous users can load <code>admin-ajax.php</code> file. If you need use auto tag completing in blog pages, then you may have to wait till 2.9 is released.</p></blockquote>
<p>Obviously that was written before 2.9 came out, so it&#8217;s not quite accurate. As it turned out, <code>admin-ajax.php</code> does handle requests from anonymous users &#8212; <em>but it kicks them back out to a callback function you specify</em>. I didn&#8217;t quite understand what was going on until I actually opened the file and read the code.<span id="more-7119"></span> Here&#8217;s the relevant bit:</p>
<pre class="brush: php; title: ; notranslate">
if ( ! is_user_logged_in() ) {

	// [some stuff having to do with autosave]

	if ( !empty( $_REQUEST['action'] ) )
		do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] );

	die('-1');
}
</pre>
<p>Translation: <em>if the user isn&#8217;t logged in, call functions hooked to the relevant action prefixed with <code>wp_ajax_nopriv_</code>. If there are no such functions, fail with an error message of -1</em>.</p>
<p>Upshot: your users see this.</p>
<p><img class="aligncenter size-full wp-image-7120" title="Autosuggest fail" src="http://sillybean.net/wp-content/uploads/2011/10/Screen-shot-2011-10-03-at-2.31.03-PM.png" alt="auto suggest shows -1 when the user types a word" width="148" height="53" /></p>
<p>So, in order to get this working for anonymous visitors, you have to use that <code>wp_ajax_nopriv_[something]</code> action.</p>
<h3>How it&#8217;s done for authenticated users</h3>
<p>Reading a little further down in <code>admin-ajax.php</code>, I found the bit that handles tag suggestions:</p>
<pre class="brush: php; title: ; notranslate">
switch ( $action = $_GET['action'] ) :
// [other stuff]
case 'ajax-tag-search' :
	if ( isset( $_GET['tax'] ) ) {
		$taxonomy = sanitize_key( $_GET['tax'] );
		$tax = get_taxonomy( $taxonomy );
		if ( ! $tax )
			die( '0' );
		if ( ! current_user_can( $tax-&gt;cap-&gt;assign_terms ) )
			die( '-1' );
	} else {
		die('0');
	}

	$s = stripslashes( $_GET['q'] );

	if ( false !== strpos( $s, ',' ) ) {
		$s = explode( ',', $s );
		$s = $s[count( $s ) - 1];
	}
	$s = trim( $s );
	if ( strlen( $s ) &lt; 2 )
		die; // require 2 chars for matching

	$results = $wpdb-&gt;get_col( $wpdb-&gt;prepare( &quot;SELECT t.name FROM $wpdb-&gt;term_taxonomy AS tt INNER JOIN $wpdb-&gt;terms AS t ON tt.term_id = t.term_id WHERE tt.taxonomy = %s AND t.name LIKE (%s)&quot;, $taxonomy, '%' . like_escape( $s ) . '%' ) );

	echo join( $results, &quot;\n&quot; );
	die;
	break;
</pre>
<p>OK, so in order to avoid all those <code>die()</code> conditions, we need to set the action to <code>ajax-tag-search</code>, and the taxonomy has to be defined. I looked at Sudar&#8217;s code again. Sure enough, the query string sent to <code>jQuery.suggest()</code> includes both those things: <code>?action=ajax-tag-search&amp;tax=post_tag</code>. It&#8217;s only failing because the user never makes it this far if they&#8217;re not logged in. Even if they did get here, this code does an additional check to see if the user can assign tags: <code>if (!current_user_can($tax-&gt;cap-&gt;assign_terms))</code>. We&#8217;ll need to get rid of that in the anonymous version of the function.</p>
<h3>Duplicating the function for visitors</h3>
<p>I went back to reading about the <code>nopriv</code> callbacks. What I needed to do was define the function that would fetch tags from the database, just like the code in <code>admin-ajax.php</code>, and hook it to the <code>wp_ajax_nopriv_ajax-tag-search</code> action.</p>
<p>Here&#8217;s the code I added to the <code>functions.php</code> file, just after Sudar&#8217;s code:</p>
<pre class="brush: php; title: ; notranslate">
// autocompletion for non-logged-in users
add_action('wp_ajax_nopriv_ajax-tag-search', 'add_autosuggest_20links_callback');

// cribbed from admin-ajax.php
function add_autosuggest_20links_callback() {
	global $wpdb;
	if ( isset( $_GET['tax'] ) ) {
		$taxonomy = sanitize_key( $_GET['tax'] );
		$tax = get_taxonomy( $taxonomy );
		if ( ! $tax )
			die( '0' );
	} else {
		die('0');
	}

	$s = stripslashes( $_GET['q'] );

	if ( false !== strpos( $s, ',' ) ) {
		$s = explode( ',', $s );
		$s = $s[count( $s ) - 1];
	}
	$s = trim( $s );
	if ( strlen( $s ) &lt; 2 )
		die; // require 2 chars for matching

	$results = $wpdb-&gt;get_col( $wpdb-&gt;prepare( &quot;SELECT t.name FROM $wpdb-&gt;term_taxonomy AS tt INNER JOIN $wpdb-&gt;terms AS t ON tt.term_id = t.term_id WHERE tt.taxonomy = %s AND t.name LIKE (%s)&quot;, $taxonomy, '%' . like_escape( $s ) . '%' ) );

	echo join( $results, &quot;\n&quot; );
}
</pre>
<p>It&#8217;s exactly the same as the section from <code>admin-ajax.php</code>, minus the capability check and the surrounding <code>switch</code>.</p>
<p>And it works! See it in action on <a href="http://links.sillybean.net/">my links site</a>. Grab the <a href="http://sillybean.net/code/themes/twenty-links-a-delicious-inspired-child-theme-for-wordpress/">Twenty Links theme</a> to see the completed <code>functions.php</code> file.</p>
]]></content:encoded>
			<wfw:commentRss>http://sillybean.net/2011/10/getting-tag-autocomplete-and-other-jquery-stuff-to-work-for-visitors/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Delicious XML Importer plugin and Twenty Links theme updated</title>
		<link>http://sillybean.net/2011/10/delicious-xml-importer-plugin-and-twenty-links-theme-updated/</link>
		<comments>http://sillybean.net/2011/10/delicious-xml-importer-plugin-and-twenty-links-theme-updated/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 15:48:16 +0000</pubDate>
		<dc:creator>Stephanie</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Delicious]]></category>
		<category><![CDATA[delicious xml importer]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[twenty links]]></category>

		<guid isPermaLink="false">http://sillybean.net/?p=7104</guid>
		<description><![CDATA[<p>If you use <a href="http://delicious.com">Delicious</a>, you&#8217;ve probably noticed that AVOS has started rolling out some changes. As a result, I&#8217;ve updated the <a href="http://sillybean.net/code/wordpress/delicious/">Delicious XML Importer</a> plugin and the <a href="http://sillybean.net/?p=7091">Twenty Links theme</a>. Between the importer and the theme, you can …</p>]]></description>
			<content:encoded><![CDATA[<p>If you use <a href="http://delicious.com">Delicious</a>, you&#8217;ve probably noticed that AVOS has started rolling out some changes. As a result, I&#8217;ve updated the <a href="http://sillybean.net/code/wordpress/delicious/">Delicious XML Importer</a> plugin and the <a href="http://sillybean.net/?p=7091">Twenty Links theme</a>. Between the importer and the theme, you can set up a pretty great alternative to Delicious on your own site. Here&#8217;s <a href="http://links.sillybean.net/">mine</a>.</p>
<h3>Twenty Links theme</h3>
<p><a href="http://sillybean.net/wp-content/uploads/2011/10/twenty-links.png"><img class="aligncenter size-large wp-image-7099" title="twenty-links" src="http://sillybean.net/wp-content/uploads/2011/10/twenty-links-1024x597.png" alt="" width="500" height="291" /></a></p>
<p>Twenty Links now includes autosuggest on the tag filter. It shows an RSS feed link and a count of all the links found for the selected combination of tags. (If you&#8217;re logged in, the count will include your private links.)</p>
<p><a href="http://sillybean.net/wp-content/uploads/2011/10/twenty-links-mobile.jpg"><img class="alignright size-medium wp-image-7106" title="twenty-links-mobile" src="http://sillybean.net/wp-content/uploads/2011/10/twenty-links-mobile-200x300.jpg" alt="" width="200" height="300" /></a>It also has a snazzy new (responsive) mobile version!</p>
<p>You can use the built-in Press This bookmarklet to save links to your site. The theme includes a few customizations for that screen to turn off things you probably won’t use (the Save Draft button, the Categories box).</p>
<p>Since this is a child theme for Twenty Ten, and Extend doesn&#8217;t allow child themes yet, you&#8217;ll have to follow me here to find out about updates to the theme. Use the <a href="http://sillybean.net/tag/twenty-links/feed/">Twenty Links tag feed</a> if you&#8217;d rather not subscribe to my general feed.</p>
<h3>Delicious XML Importer plugin</h3>
<p>Recent changes:</p>
<ul>
<li>Supports importing links into a custom post type.</li>
<li>New option to save the link into a custom field rather than the post content.</li>
<li>Delicious now exports links with the word &#8220;empty&#8221; in the extended description if you didn&#8217;t enter any notes. Links without tags are also tagged with &#8220;empty.&#8221; The importer will ignore this, so that your notes and tags are <em>actually</em> empty.</li>
<li>When importing links as posts, the link will now be the first thing saved in the content area, followed by your notes. (In previous versions, the notes came first.)</li>
<li>The export API now handles only 1000 links at a time. See the <a href="http://sillybean.net/code/wordpress/delicious/">plugin page</a> for a workaround if you need to export more than that.</li>
</ul>
<h3>Support</h3>
<p>There&#8217;s a <a href="http://forum.sillybean.net/forums/forum/delicious-xml-importer/">combined forum for the importer and the theme</a> over on my support site.</p>
]]></content:encoded>
			<wfw:commentRss>http://sillybean.net/2011/10/delicious-xml-importer-plugin-and-twenty-links-theme-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML Import 2.1 fixes your links</title>
		<link>http://sillybean.net/2011/08/html-import-2-1-fixes-your-links/</link>
		<comments>http://sillybean.net/2011/08/html-import-2-1-fixes-your-links/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 20:35:48 +0000</pubDate>
		<dc:creator>Stephanie</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[html import]]></category>
		<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://sillybean.net/?p=7083</guid>
		<description><![CDATA[<p>I&#8217;ve just released <a href="http://wordpress.org/extend/plugins/import-html-pages/">version 2.1 of HTML Import</a>, which includes a new option to fix internal links. As the importer runs, it builds a list of old paths vs. new permalinks. You&#8217;ll see that list reflected in the <code>.htaccess</code>…</p>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just released <a href="http://wordpress.org/extend/plugins/import-html-pages/">version 2.1 of HTML Import</a>, which includes a new option to fix internal links. As the importer runs, it builds a list of old paths vs. new permalinks. You&#8217;ll see that list reflected in the <code>.htaccess</code> redirects when the import is complete. This new function runs after all the files have been imported, so it can use that list to match up link URLs with the new WordPress posts.</p>
<p>Like the image import function added in 2.0, the link function should be able to handle relative links:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;a href=&quot;http://foo.com&quot;&gt;foo.com&lt;/a&gt;
&lt;a href=&quot;/images/foo.png&quot;&gt;foo.png&lt;/a&gt;
&lt;a href=&quot;../../foo.html&quot;&gt;foo.html&lt;/a&gt;
</pre>
<p>The new option is a checkbox in the Content section. Give it a whirl, and let me know how it goes in the <a href="http://forum.sillybean.net/">support forum</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sillybean.net/2011/08/html-import-2-1-fixes-your-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Warning users not to edit the posts container page in WordPress</title>
		<link>http://sillybean.net/2011/08/warning-users-not-to-edit-the-posts-container-page-in-wordpress/</link>
		<comments>http://sillybean.net/2011/08/warning-users-not-to-edit-the-posts-container-page-in-wordpress/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 18:26:44 +0000</pubDate>
		<dc:creator>Stephanie</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://sillybean.net/?p=7011</guid>
		<description><![CDATA[<p>I have this one user. You know the one; we all have one like her. Giving her the power to do things on her own is kind of pointless, because she can&#8217;t ever remember how to do them.</p>
<p>In particular, …</p>]]></description>
			<content:encoded><![CDATA[<p>I have this one user. You know the one; we all have one like her. Giving her the power to do things on her own is kind of pointless, because she can&#8217;t ever remember how to do them.</p>
<p>In particular, she can&#8217;t seem to retain the procedure for adding news to the site. She knows that to edit almost everything on the site, she goes to Pages. And since she sees a News page there, she clicks it, thinking that&#8217;s where the news goes. Of course, it isn&#8217;t. This site is set up to use a page for the front page, and the News page is the posts container.</p>
<p>But you know what? The WordPress UI is kind of unclear on this point, and if I have one user who calls me up because she can&#8217;t remember how to do this, I probably have twelve more who are just too frustrated and/or embarrassed to ask. So I put a warning on that page (and ONLY on that page) telling them to go to Posts instead of editing the page.</p>
<p><a href="http://sillybean.net/wp-content/uploads/2011/08/edit-posts-page-admin-notice.png"><img src="http://sillybean.net/wp-content/uploads/2011/08/edit-posts-page-admin-notice-300x101.png" alt="" title="edit-posts-page-admin-notice" width="300" height="101" class="aligncenter size-medium wp-image-7013" /></a></p>
<p>This is the code that went into <code>functions.php</code>:<span id="more-7011"></span></p>
<pre class="brush: php; title: ; notranslate">
// Admin Notice on Posts Page
add_action('admin_head-post.php', 'us2011_postspage_error_notice');
function us2011_postspage_error_notice() {
	$postspage = get_option('page_for_posts');
	if (!empty($postspage))
    	add_action('admin_notices', 'us2011_postspage_print_notices');
}
function us2011_postspage_print_notices() {
	$postspage = get_option('page_for_posts');
	// show this only if we're editing the posts page
	if (!empty($postspage) &amp;&amp; isset($_GET['action']) &amp;&amp; $_GET['action'] == 'edit' &amp;&amp; $_GET['post'] == $postspage)
		echo '&lt;div class=&quot;error&quot;&gt;&lt;p&gt;This page is a container for the most recent posts. It should always be empty, and you should never edit this page. To add a news item, go to &lt;a href=&quot;post-new.php&quot;&gt;Posts -- Add New&lt;/a&gt;.&lt;p&gt;&lt;/div&gt;';
}
</pre>
<p>If that goes over well, I might dump it into the network&#8217;s <code>mu-plugins</code> directory instead.</p>
]]></content:encoded>
			<wfw:commentRss>http://sillybean.net/2011/08/warning-users-not-to-edit-the-posts-container-page-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Plugin updates galore: HTML Import 2, Content Audit, Dashboard Notepad, and bonus! LiveJournal Crossposter</title>
		<link>http://sillybean.net/2011/07/plugin-updates-galore-html-import-2-content-audit-dashboard-notepad-and-bonus-livejournal-crossposter/</link>
		<comments>http://sillybean.net/2011/07/plugin-updates-galore-html-import-2-content-audit-dashboard-notepad-and-bonus-livejournal-crossposter/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 22:42:43 +0000</pubDate>
		<dc:creator>Stephanie</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[assign missing categories]]></category>
		<category><![CDATA[content audit]]></category>
		<category><![CDATA[dashboard notepad]]></category>
		<category><![CDATA[html import]]></category>
		<category><![CDATA[lj-xp]]></category>
		<category><![CDATA[mass format conversion]]></category>
		<category><![CDATA[private suite]]></category>

		<guid isPermaLink="false">http://sillybean.net/?p=6833</guid>
		<description><![CDATA[<p>I have been a coding fool this week. </p>
<p>The big news is that I&#8217;m now working on the <a href="http://code.google.com/p/ljxp/">LiveJournal Crossposter</a>. If you use it, you&#8217;ve probably been pulling your hair out all week because it stops WordPress in its …</p>]]></description>
			<content:encoded><![CDATA[<p>I have been a coding fool this week. </p>
<p>The big news is that I&#8217;m now working on the <a href="http://code.google.com/p/ljxp/">LiveJournal Crossposter</a>. If you use it, you&#8217;ve probably been pulling your hair out all week because it stops WordPress in its tracks when LJ is down. I&#8217;ve fixed it so it just shows you an error under the &#8220;Post published/updated&#8221; message instead. I had been tinkering with it for my own use anyway, adding support for userpics, fixing a problem with [gallery] tags posting the wrong images, and making it use a proper meta box (which means it now behaves like all the other boxes on the Edit Post screen; you can collapse it or move it around or turn it off entirely in Screen Options).</p>
<p>Since LJ was hosed, I decided to go ahead and release my version, and it&#8217;s now up <a href="http://code.google.com/p/ljxp/downloads/list">on the Google Code site</a>. I&#8217;m still waiting on the old developers to authorize me on <a href="http://wordpress.org/extend/plugins/lj-xp/">Extend</a>, which will let me update the plugin there and show everybody a nice auto-upgrade notice. (ETA 7/30/11: It&#8217;s there!) In the meantime, if you don&#8217;t mind uploading plugins by hand, you can upgrade now. (Note that old versions were inconsistent about directory and file names. This one is <code>lj-xp</code>. If your plugin directory was called <code>ljxp</code> or <code>lj-crosspost</code>, you should either remove that or, if you upload this one alongside the old one, deactivate your old version before activating this one.)</p>
<p>I&#8217;ve cleaned out the <a href="http://code.google.com/p/ljxp/issues/list">issue tracker</a>, so if you have problems with the new 2.1 version, you can post them there. The error thing is still pretty hinky &#8212; WordPress doesn&#8217;t have a very good built-in way to show custom errors, if you can believe that! &#8212; but I&#8217;m working on it.</p>
<p>(I know: LJ is back up now. I really wanted to update the existing version rather than posting a copy in <em>yet another</em> location, and it took a while to get my version ready and contact the old developers, who&#8217;ve long since abandoned the project. However, we&#8217;re in touch now, and it&#8217;ll all be much better the next time Russia decides to play DDoS games with its primary blogging service.)</p>
<p>On Saturday, I released <a href="http://sillybean.net/code/wordpress/html-import-2/">HTML Import 2</a>, as <a href="http://sillybean.net/2011/06/html-import-2-0-beta/">promised</a>. (Actually a little ahead of schedule, so the <a href="http://2011.boston.wordcamp.org/">WordCamp Boston</a> folks could grab it.) This is the big update that imports images along with the HTML files, uses index.html (or some other specified default file) for parent page content, supports custom post types, fixes problems with special characters, and bunches of other stuff. It also has a spiffy new <a href="http://sillybean.net/downloads/html-import/user-guide.html">user guide</a>.</p>
<p><a href="http://sillybean.net/code/wordpress/content-audit/">Content Audit</a> also got a big update. There was a compatibility problem with WordPress 3.2, which is now fixed. People had requested that authors not be able to audit their own posts, so I&#8217;ve added that feature. There were some big problems with auditing media files and with scheduling email notifications, all of which have been taken care of.</p>
<p>There was an issue with roles and permissions in <a href="http://sillybean.net/code/wordpress/dashboard-notepad/">Dashboard Notepad</a>, so that&#8217;s been updated.</p>
<p>As I was digging through old code, I discovered that <a href="http://sillybean.net/code/wordpress/assign-missing-categories/">Assign Missing Categories</a> and <a href="http://sillybean.net/code/wordpress/mass-format-conversion-for-wordpress/">Mass Format Conversion</a> both had some outdated stuff, and neither had ever been localized, so I took care of that.</p>
<p><a href="http://sillybean.net/code/wordpress/private-suite/">Private Suite</a> is somewhat outdated now that 3.2 includes some fixes for displaying private pages, so that&#8217;s up next.</p>
]]></content:encoded>
			<wfw:commentRss>http://sillybean.net/2011/07/plugin-updates-galore-html-import-2-content-audit-dashboard-notepad-and-bonus-livejournal-crossposter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Q: Beginning WordPress 3 was written for 3.0. Does that mean it&#8217;s outdated?</title>
		<link>http://sillybean.net/2011/07/q-beginning-wordpress-3-was-written-for-3-0-does-that-mean-its-outdated/</link>
		<comments>http://sillybean.net/2011/07/q-beginning-wordpress-3-was-written-for-3-0-does-that-mean-its-outdated/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 16:33:38 +0000</pubDate>
		<dc:creator>Stephanie</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://sillybean.net/?p=6789</guid>
		<description><![CDATA[<p>A: Nope! The book is not very outdated at all, which is why we haven&#8217;t done a new edition. I got lucky, and both <a href="http://wordpress.org/news/2011/02/threeone/">3.1</a> and <a href="http://wordpress.org/news/2011/07/gershwin/">3.2</a> were relatively minor releases. I&#8217;ve just updated the <a href="http://sillybean.net/?p=5285">Updates and Errata page</a> for …</p>]]></description>
			<content:encoded><![CDATA[<p>A: Nope! The book is not very outdated at all, which is why we haven&#8217;t done a new edition. I got lucky, and both <a href="http://wordpress.org/news/2011/02/threeone/">3.1</a> and <a href="http://wordpress.org/news/2011/07/gershwin/">3.2</a> were relatively minor releases. I&#8217;ve just updated the <a href="http://sillybean.net/?p=5285">Updates and Errata page</a> for the book to include a quick rundown of what&#8217;s changed since 3.0. If you haven&#8217;t gotten a copy yet, <a href="http://www.amazon.com/Beginning-WordPress-Experts-Voice-Development/dp/1430228954/">you totally should</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://sillybean.net/2011/07/q-beginning-wordpress-3-was-written-for-3-0-does-that-mean-its-outdated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML Import 2.0 beta</title>
		<link>http://sillybean.net/2011/06/html-import-2-0-beta/</link>
		<comments>http://sillybean.net/2011/06/html-import-2-0-beta/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 22:34:49 +0000</pubDate>
		<dc:creator>Stephanie</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[html import]]></category>

		<guid isPermaLink="false">http://sillybean.net/?p=6744</guid>
		<description><![CDATA[<p>The new version of the HTML Import plugin is just about done. It&#8217;s completely rewritten and has several big new features:</p>
<p>It imports linked images. (OMG, I KNOW.) It can handle all of the following paths, as long as they …</p>]]></description>
			<content:encoded><![CDATA[<p>The new version of the HTML Import plugin is just about done. It&#8217;s completely rewritten and has several big new features:</p>
<p>It imports linked images. (OMG, I KNOW.) It can handle all of the following paths, as long as they lead to actual image files:</p>
<p>&lt;img src=&#8221;http://example.com/images/foo.jpg&#8221; /&gt;<br />
&lt;img src=&#8221;/images/foo.jpg&#8221; /&gt;<br />
&lt;img src=&#8221;../../images/foo.jpg&#8221; /&gt;<br />
&lt;img src=&#8221;foo.jpg&#8221; /&gt;</p>
<p>Using custom post types? The importer now has options to import posts as any public post type. This means <strong>the plugin now requires at least WordPress 3.0</strong>.</p>
<p>It has supported custom taxonomies for several versions now, but in 2.0, the hierarchical ones (including categories) are displayed as nice little lists of checkboxes. Much nicer.</p>
<p>There&#8217;s now an option to enter your old site URL, which will be used to generate accurate .htaccess redirects. You can also retrieve the redirects again later if you need to, or regenerate them after you&#8217;ve changed your permalink setting, because the old URLs are now stored as custom fields of the imported posts.</p>
<p>The user interface is completely different. The settings have their own page, and the importer has been moved into Tools → Import. The settings that could make things go disastrously wrong, like a beginning directory path that doesn&#8217;t exist, will now trigger some error messages.</p>
<p>There&#8217;s a help tab on the settings page, and there&#8217;s a new <a href="http://sillybean.net/code/wordpress/html-import-2/user-guide/">User Guide</a> (still in progress; please forgive the giant images).</p>
<p><strong>Last-minute feature addition:</strong> default/index files for parent pages! In the past, the importer created empty placeholder pages when it encountered a directory, and then it would import all the files in that directory as child pages. In 2.0, you can specify the name of your default/index file (usually index.html on Apache servers or default.htm on IIS), and the importer will replace the empty placeholder with the index file&#8217;s contents. If there is no index file, the parent page remains empty.</p>
<h3>I need testers!</h3>
<p>If you&#8217;re willing to try out the beta, grab the <a href="http://downloads.wordpress.org/plugin/import-html-pages.zip">development version</a> from <a href="http://wordpress.org/extend/plugins/import-html-pages/download/">the Download page</a>.</p>
<p>Here&#8217;s what it looks like&#8230;</p>

<a href='http://sillybean.net/2011/06/html-import-2-0-beta/files-to-be-imported-2/' title='files-to-be-imported'><img width="150" height="98" src="http://sillybean.net/wp-content/uploads/2011/06/files-to-be-imported-150x98.jpg" class="attachment-thumbnail" alt="files-to-be-imported" title="files-to-be-imported" /></a>
<a href='http://sillybean.net/2011/06/html-import-2-0-beta/settings-files-2/' title='settings-files'><img width="150" height="119" src="http://sillybean.net/wp-content/uploads/2011/06/settings-files1-150x119.png" class="attachment-thumbnail" alt="settings-files" title="settings-files" /></a>
<a href='http://sillybean.net/2011/06/html-import-2-0-beta/settings-content-short-2/' title='settings-content-short'><img width="150" height="101" src="http://sillybean.net/wp-content/uploads/2011/06/settings-content-short1-150x101.png" class="attachment-thumbnail" alt="settings-content-short" title="settings-content-short" /></a>
<a href='http://sillybean.net/2011/06/html-import-2-0-beta/settings-content-cleanup-2/' title='settings-content-cleanup'><img width="150" height="54" src="http://sillybean.net/wp-content/uploads/2011/06/settings-content-cleanup1-150x54.png" class="attachment-thumbnail" alt="settings-content-cleanup" title="settings-content-cleanup" /></a>
<a href='http://sillybean.net/2011/06/html-import-2-0-beta/settings-taxonomies-2/' title='settings-taxonomies'><img width="150" height="133" src="http://sillybean.net/wp-content/uploads/2011/06/settings-taxonomies1-150x133.png" class="attachment-thumbnail" alt="settings-taxonomies" title="settings-taxonomies" /></a>
<a href='http://sillybean.net/2011/06/html-import-2-0-beta/importer-form-2/' title='importer-form'><img width="150" height="83" src="http://sillybean.net/wp-content/uploads/2011/06/importer-form1-150x83.png" class="attachment-thumbnail" alt="importer-form" title="importer-form" /></a>
<a href='http://sillybean.net/2011/06/html-import-2-0-beta/importer-results/' title='importer-results'><img width="150" height="133" src="http://sillybean.net/wp-content/uploads/2011/06/importer-results1-150x133.png" class="attachment-thumbnail" alt="importer-results" title="importer-results" /></a>
<a href='http://sillybean.net/2011/06/html-import-2-0-beta/imported-pages-2/' title='imported-pages'><img width="150" height="123" src="http://sillybean.net/wp-content/uploads/2011/06/imported-pages1-150x123.png" class="attachment-thumbnail" alt="imported-pages" title="imported-pages" /></a>

]]></content:encoded>
			<wfw:commentRss>http://sillybean.net/2011/06/html-import-2-0-beta/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Plagiarism on WordPress Arena</title>
		<link>http://sillybean.net/2011/03/plagiarism-on-wordpress-arena/</link>
		<comments>http://sillybean.net/2011/03/plagiarism-on-wordpress-arena/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 22:39:50 +0000</pubDate>
		<dc:creator>Stephanie</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://sillybean.net/?p=6663</guid>
		<description><![CDATA[<p><a href="http://sillybean.net/wp-content/uploads/2011/03/wparena-plagiarism.png"><img src="http://sillybean.net/wp-content/uploads/2011/03/wparena-plagiarism-23x150.png" alt="" title="wparena-plagiarism" width="23" height="150" class="alignright size-thumbnail wp-image-6664" /></a>I just discovered that WordPress Arena has <a href="http://wparena.com/how-to/how-to-display-hidden-feeds-in-wordpress-powered-blog/">plagiarized</a> my article on the <a href="http://sillybean.net/?p=2709">hidden feeds in WordPress</a>. My table was published here in 2009, appeared in the <a href="http://www.slideshare.net/stephanieleary/wordpress-hidden-gems">Hidden Gems presentation</a> I did for OpenCamp Dallas last summer, and was published …</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://sillybean.net/wp-content/uploads/2011/03/wparena-plagiarism.png"><img src="http://sillybean.net/wp-content/uploads/2011/03/wparena-plagiarism-23x150.png" alt="" title="wparena-plagiarism" width="23" height="150" class="alignright size-thumbnail wp-image-6664" /></a>I just discovered that WordPress Arena has <a href="http://wparena.com/how-to/how-to-display-hidden-feeds-in-wordpress-powered-blog/">plagiarized</a> my article on the <a href="http://sillybean.net/?p=2709">hidden feeds in WordPress</a>. My table was published here in 2009, appeared in the <a href="http://www.slideshare.net/stephanieleary/wordpress-hidden-gems">Hidden Gems presentation</a> I did for OpenCamp Dallas last summer, and was published in <a href="http://sillybean.net/books/beginning-wordpress/contents/">Chapter 4 of <em>Beginning WordPress 3</em></a> last June. The WordPress Arena version was apparently copied from <a href="http://sillybean.net/books/beginning-wordpress/working-with-content/feeds/">the book sample (which is online)</a>, where the search term example is &#8220;apress,&#8221; the name of <a href="http://apress.com/">my publisher</a>. The Arena article doesn&#8217;t show a publication date, but judging by the comments and tweets, it&#8217;s been up for about three months.</p>
<p><a href="http://sillybean.net/wp-content/uploads/2011/03/wparena-plagiarism.png">Screenshot</a>, archived for posterity.</p>
<p>Hey, <a href="http://wparena.com/author/hafiznoorahmad/">Nur</a>: you&#8217;ve really pissed me off. I haven&#8217;t gone through the rest of your archives yet, but I&#8217;m willing to bet I&#8217;m not the only one you&#8217;ve ripped off.</p>
<p><strong>ETA:</strong> Yep, there&#8217;s more:</p>
<p>Chip Bennett found <a href="http://wparena.com/how-to/how-to-create-a-wordpress-child-theme/">this article on creating a child theme</a>, ripped off from <a href="http://www.amazon.com/WordPress-Complete-April-Hodge-Silver/dp/1849514100/">April Hodge Silver&#8217;s <em>WordPress 3 Complete</em></a>. The article does end with &#8220;[Source: WordPress 3 Complete]&#8221; &#8212; but April&#8217;s name does not appear, all the examples use Nur&#8217;s name, and I&#8217;m betting neither April nor Packt gave anyone permission for this reprint.</p>
<p><a href="http://wparena.com/how-to/how-to-troubleshoot-wordpress-powered-website/">This troubleshooting article</a>, posted in January, is taken from page 271 of <a href="http://www.amazon.com/WordPress-Complete-comprehensive-step---step/dp/1904811892/">the 2006 edition of <em>WordPress Complete</em></a>, by Hasin Hayder. Come on, Nur, you could have at least used a more up to date edition!</p>
<p>There&#8217;s a <a href="http://wparena.com/how-to/how-to-create-facebook-templates-with-wix/">Facebook/Wix article</a> cribbed from <a href="http://www.websitemagazine.com/content/blogs/posts/archive/2010/11/24/create-facebook-fan-pages-with-wix.aspx">Website Magazine</a>, an <a href="http://wparena.com/inspiration/unique-website-landing-pages-for-better-web-marketing/">article on landing pages</a> taken from <a href="http://my.safaribooksonline.com/book/sales-and-marketing/9780132116893/designing-an-effective-website/ch07lev1sec8">page 93 of <em>The Ultimate Web Marketing Guide</em></a>, and I could go on, but at this point I suspect there is not a single original article on all of WordPress Arena.</p>
<p>&#8230; OK, I couldn&#8217;t resist. More:</p>
<p><a href="http://wparena.com/how-to/how-to-transforms-wordpress-blog-into-an-iphone-application-style-theme/">WPTouch article</a> taken from <a href="http://my.safaribooksonline.com/book/web-applications-and-services/9781849511407/"><em>WordPress Top Plugins</em></a></p>
<p><a href="http://wparena.com/how-to/improve-your-wordpress-blog-with-flash-and-video-players/">Video player article</a> taken from <a href="http://books.google.com/books?id=sXZiavO78M4C&#038;lpg=PA187&#038;ots=Zk_-9NSiUG&#038;dq=wordpress%20video%20%22Through%20visual%20imagery%2C%20you%20can%20call%20attention%20to%20your%20post%20and%20add%20depth%20to%20it.%22&#038;pg=PA187#v=onepage&#038;q=wordpress%20video%20%22Through%20visual%20imagery,%20you%20can%20call%20attention%20to%20your%20post%20and%20add%20depth%20to%20it.%22&#038;f=false"><em>WordPress for Dummies</em></a>, page 187</p>
<p><a href="http://wparena.com/inspiration/selecting-the-best-web-hosting-services-for-wordpress/">Hosting article</a> taken from <a href="http://www.amazon.com/Build-Website-Free-Mark-Bell/dp/0789747189"><em>Build a Website for Free</em>, second edition</a>, page 23 &#8212; this one&#8217;s not only copied, but has bad information! The book was not written for WordPress-specific hosting. This article talks about Google Sites, for crying out loud.</p>
<p>Intro to <a href="http://wparena.com/inspiration/26-great-commercial-wordpress-themes/">26 great commercial themes</a> taken from Lisa Sabin-Wilson&#8217;s intro to her chapter on free themes in <a href="http://www.amazon.com/WordPress-Dummies-2nd-Lisa-Sabin-Wilson/dp/0470402962/"><em>WordPress for Dummies</em>, second edition</a>, page 357</p>
<p>&#8230; that&#8217;s every article from the January archives.</p>
]]></content:encoded>
			<wfw:commentRss>http://sillybean.net/2011/03/plagiarism-on-wordpress-arena/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress University webinar series for higher ed starts next week</title>
		<link>http://sillybean.net/2011/03/wordpress-university-webinar-series-for-higher-ed-starts-next-week/</link>
		<comments>http://sillybean.net/2011/03/wordpress-university-webinar-series-for-higher-ed-starts-next-week/#comments</comments>
		<pubDate>Thu, 17 Mar 2011 20:29:33 +0000</pubDate>
		<dc:creator>Stephanie</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://sillybean.net/?p=6655</guid>
		<description><![CDATA[<p>Just a reminder than I&#8217;m teaching the third workshop in the <a href="http://higheredexperts.com/edu/webinar/wordpress-university/">WordPress University series</a> for <a href="http://higheredexperts.com">higheredexperts.com</a> next week. If you haven&#8217;t registered, now would be the time! Materials and other logistical details will be sent out Monday.…</p>]]></description>
			<content:encoded><![CDATA[<p>Just a reminder than I&#8217;m teaching the third workshop in the <a href="http://higheredexperts.com/edu/webinar/wordpress-university/">WordPress University series</a> for <a href="http://higheredexperts.com">higheredexperts.com</a> next week. If you haven&#8217;t registered, now would be the time! Materials and other logistical details will be sent out Monday.</p>
]]></content:encoded>
			<wfw:commentRss>http://sillybean.net/2011/03/wordpress-university-webinar-series-for-higher-ed-starts-next-week/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

