<?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>DIY Media Home</title>
	<atom:link href="http://diymediahome.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://diymediahome.org</link>
	<description>The ultimate place for information about designing and creating your own Home Theatre and Hi-Fi setup.</description>
	<lastBuildDate>Sat, 20 Apr 2013 08:25:29 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Google removes ad blocking apps: Get them here</title>
		<link>http://diymediahome.org/google-removes-ad-blocking-apps-get-them-here/</link>
		<comments>http://diymediahome.org/google-removes-ad-blocking-apps-get-them-here/#comments</comments>
		<pubDate>Thu, 11 Apr 2013 13:02:17 +0000</pubDate>
		<dc:creator>Jon Scaife</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[.apk]]></category>
		<category><![CDATA[adaway]]></category>
		<category><![CDATA[adblock plus]]></category>
		<category><![CDATA[adfree]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[do no evil]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://diymediahome.org/?p=3551</guid>
		<description><![CDATA[It seems that the formerly “do no evil” google have decided to remove all ad blocking apps from the Play Store.  Fortunately it has always been possible to install apps directly from the APK files — as long as you can find them.  The 3 most popular ad blocking apps are still available to download...  <a href="http://diymediahome.org/google-removes-ad-blocking-apps-get-them-here/" title="Read Google removes ad blocking apps: Get them here">Read more &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>It seems that the formerly “do no evil” google have decided to remove all ad blocking apps from the Play Store.  Fortunately it has always been possible to install apps directly from the APK files — as long as you can find them.  The 3 most popular ad blocking apps are still available to download in apk format, all you need to do is enable the installing of apps from “unknown sources” somewhere in your phones settings.</p>
<p><span id="more-3551"></span></p>
<p>As I mentioned above, before trying to install any of these apps you need to enable “unknown sources”.  This setting will be found in the main settings, then either applications or security, then look for a setting that mentions unknown sources and enable it.  You can then either download directly on your phone and install from the download menu, or you can download on your PC, copy the APKs to your phone (e.g. via <abbr title="Universal Serial Bus">USB</abbr>) and use a file-manager app (e.g. <a href="https://play.google.com/store/apps/details?id=com.estrongs.android.pop">ES File Explorer</a>) to install them.</p>
<h4>AdFree</h4>
<p>My personal favourite ad blocking app has always been AdFree by BigTinCan.  Finding the APK wasn’t very easy, but it turns out that it can be downloaded directly from <a href="http://adfree.bigtincan.com/adfree.apk">BigTinCan.com</a>.</p>
<h4>AdBlock Plus</h4>
<p>AdBlock Plus is also available directly from its home at <a href="http://adblockplus.org/en/android-install">AdBlockPlus.org</a> but note that it only blocks ads when using WiFi.</p>
<h4>AdAway</h4>
<p>AdAway is available from the <a href="http://f-droid.org/repository/browse/?fdfilter=AdAway&amp;fdid=org.adaway">F-Droid app repository</a>.</p>
<p>If you’re unable to get the apk files from any of the original locations then please let us know by commenting below.  You can visit our <a href="http://diymediahome.org/downloads/">downloads</a> page for mirrors, but we can’t guarantee to keep the mirrored copies bang up-to-date though so please try the official sources first.</p>]]></content:encoded>
			<wfw:commentRss>http://diymediahome.org/google-removes-ad-blocking-apps-get-them-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing Rich Snippets Testing Tool for Microdata</title>
		<link>http://diymediahome.org/fixing-rich-snippets-testing-tool-for-microdata/</link>
		<comments>http://diymediahome.org/fixing-rich-snippets-testing-tool-for-microdata/#comments</comments>
		<pubDate>Sun, 10 Mar 2013 10:06:41 +0000</pubDate>
		<dc:creator>Jon Scaife</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[authorship]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[hentry]]></category>
		<category><![CDATA[microdata]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[rich snippets]]></category>
		<category><![CDATA[schema.org]]></category>
		<category><![CDATA[updated]]></category>

		<guid isPermaLink="false">http://diymediahome.org/?p=3500</guid>
		<description><![CDATA[Over 2 years ago I published an article on how to fix problems with WordPress themes which didn’t pass the Google Rich Snippets Testing Tool. Since then lots has changed — WordPress and most themes have better support, HTML5 and CSS3 have arrived, and Google, Yahoo and Bing got together and decided to focus on...  <a href="http://diymediahome.org/fixing-rich-snippets-testing-tool-for-microdata/" title="Read Fixing Rich Snippets Testing Tool for Microdata">Read more &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>Over 2 years ago I published an article on how to fix problems with WordPress themes which didn’t pass the Google Rich Snippets Testing Tool. Since then lots has changed — WordPress and most themes have better support, HTML5 and CSS3 have arrived, and Google, Yahoo and Bing got together and decided to focus on Microdata, via schema.org. At the time microformats seemed the easiest way to mark up pages, and the testing tool had the most comprehensive support for these. The move to Microdata and the changes to WordPress required a new article: this is it!</p>
<p><span id="more-3500"></span></p>
<p>Instead of having lots of separate articles for different themes I’ve decided to try to provide all the information in 1 guide. This makes it easier to keep up to date, and means there is just 1 central point for all requests and discussion. It also makes more sense as several of the steps are the same regardless of what theme you are using. I’m not going to cover all the optional extras in this article, just the basics to get your site to validate with the tool. Once you’ve managed that you should find adding extra markup is relatively easy. So lets get started…</p>
<h3>Add a link from your google profile to your site</h3>
<p>You will see on <a href="https://plus.google.com/104657888470728381512/about">my google+ profile</a> that I have a public link to <em>http://diymediahome.org</em> — you will need the same for your own site. Ideally you will need all of your authors to have a google profile that is linked to your site in the same way as this.</p>
<ol>
<li>Log in to your <a href="https://profiles.google.com/me">google profile</a></li>
<li>Scroll down until you see the <em>links</em> section somewhere towards the bottom right of the page</li>
<li>Click on the <em>edit</em> link</li>
<li>Under the <em>contributor to</em> section click <em>Add custom link</em></li>
<li>Make sure the box to the right of the text <em>contributor to </em>is set to<em> public</em></li>
<li>Enter your site name (e.g. <em><abbr title="Do It Yourself">DIY</abbr> Media Home</em>) and address (e.g. <em>http://diymediahome.org</em>)</li>
<li>Click Save</li>
</ol>
<h3>Add a link from your site to your google profile</h3>
<p>Now we need to add a link from your author page to your google profile. There are 2 alternative ways to do this, I highly recommend using the Yoast <abbr title="Search Engine Optimisation">SEO</abbr> plugin.</p>
<ol>
<li>Install the <a href="http://wordpress.org/extend/plugins/wordpress-seo/">Yoast <abbr title="Search Engine Optimisation">SEO</abbr> plugin</a> <strong>OR</strong> add the following code to the functions.php file of your theme<br />
<pre class="crayon-plain-tag">function update_contactmethods( $contactmethods ) {
	// Add Google Profiles
	$contactmethods['googleplus'] = 'Google+';
	// Add Twitter
	$contactmethods['twitter'] = __( 'Twitter username (without @)', 'wordpress-seo' );

	return $contactmethods;
}
add_filter( 'user_contactmethods', 'update_contactmethods', 10, 1);</pre>
</li>
<li>Go to your author profile in the wordpress admin interface (hover over <em>Users</em> in the left-hand menu, and click on <em>Your Profile</em>)</li>
<li>In the <em>Google+</em> field add a link to your google profile (e.g. <em>https://plus.google.com/104657888470728381512/</em>)</li>
<li>Make sure either you, or your other site authors do the same thing, and each link to your own google profiles</li>
<li>Now, if you’re using the Yoast plugin, go to the <em><abbr title="Search Engine Optimisation">SEO</abbr></em> menu and select <em>Titles and Metas, c</em>lick on the <em>Home</em> menu at the top of the page and in the <em>Author highlighting</em> pulldown box select the user you want to use as the author of the homepage</li>
<li>If you’re insistent about not using the Yoast plugin you will need to manually add the following code to header.php (assuming you have one). Don’t forget to change my google profile url to yours.  This code will use the post author’s google profile url if there is a valid one, and will use a default (yours) if there isn’t.<br />
<pre class="crayon-plain-tag">&lt;link rel="author" href="&lt;?php $gplus   = 'https://plus.google.com/115369062315673853712/posts'; if ( is_singular() ) {global $post; $gplus = get_the_author_meta( 'googleplus', $post-&gt;post_author );} echo $gplus; ?&gt;"/&gt;</pre>
</li>
</ol>
<h3>Fix errors of a missing “updated” field</h3>
<p>Most wordpress themes include information about when the post was published in the post information area, but very few also include when it was last updated. This is a pity, because updated is required whereas published actually isn’t! Adding it is easy though, and again, there are 2 ways, the proper way and the quick hack way. I recommend the proper way of course, but if necessary you can resort to the quick hack. We’re also going to change from microformats to microdata at the same time.</p>
<h4>The proper way</h4>
<p>We’re going to add some additional information to post headers, both for search engines and for our visitors. We will need to do this for posts, pages, archives and the homepage.</p>
<ol>
<li>We need to find the file that contains the code which generates the published link. This will almost certainly use the wordpress function <a href="http://codex.wordpress.org/Function_Reference/get_the_date">get_the_date()</a>. You can search through your theme files, or refer to theme specific details below where I have provided details for lots of themes</li>
<li>We are going to check if the published and updated dates are the same. If they are we will just add the extra <em>dateUpdated </em>itemprop but if they are different we will output some extra text to the visitor</li>
<li>We’re going to add the following  (and modify it as it explains)<br />
<pre class="crayon-plain-tag">&lt;?php if(get_the_date()==get_the_modified_date()): ?&gt;

//we're going to use the original code just with the updated class added
//put your theme's original code here
//remove any class=""
//add itemprop="datePublished dateCreated dateModified" to the HTML tag surrounding the get_the_date() function

&lt;?php else: ?&gt;

//we're going to use slightly code just with the updated date added
//copy your theme's original code to here and then modify it as below
//remove any class=""
//add itemprop="datePublished dateCreated" to the HTML tag surrounding the get_the_date() function
//add in a new html tag into the line where you want it to appear as below
//Updated &lt;?php echo get_the_modified_date() ?&gt;

&lt;?php endif; ?&gt;</pre>
</li>
<li>You’ll either have to figure out the original theme’s code and edit it, or refer to the details for specific themes below.</li>
<li>You may have to repeat this edit for multiple files</li>
</ol>
<h4>The quick hack</h4>
<p>We’re going to cheat and supply the published date as the updated date, even if the post has actually been updated more recently. If the post has been updated then we’ll actually be supplying incorrect information, but it will still validate. It really is better to do it properly if possible, but if you’re insistent on doing it this way read on. As above we will need to do this for posts, pages, archives and the homepage.</p>
<ol>
<li>As above we need to find the file that contains the code which generates the published link. This will almost certainly use the wordpress function <a href="http://codex.wordpress.org/Function_Reference/get_the_date">get_the_date()</a>. You can search through your theme files, or refer to the table below where I have provided details for lots of themes</li>
<li>Find the <abbr title="HyperText Markup Language">HTML</abbr> element that surrounds the date (often it will have <code>class="published"</code>).</li>
<li>Edit the element by removing the class and adding the following instead<code> itemprop="datePublished dateCreated dateUpdated"</code></li>
<li>As above, you may need to repeat this edit in multiple files</li>
</ol>
<h3>Replacing the built-in microformats (because mixing rich snippet formats breaks things)</h3>
<p>By default wordpress is still using microformat markup for comments, which sadly seems to break microdata markup of things like recipes. The best way to fix this is to remove the microformat markup and replace it with microdata markup. Unfortunately, the wordpress core functions that produce this markup don’t have a conveniently located filter or hook so this requires a bit of tinkering about.</p>
<h4>Replacing vcard in the comments section</h4>
<ol>
<li>What we’re going to do is use a comment callback to change the output of comments. Many themes already use a callback which we can modify, and for those that don’t we’ll add one based on the wordpress default</li>
<li>Check if you theme already has a comment callback — search your theme files for the function <code>wp_list_comments</code>. If it includes the code <code>callback=</code> or <code>'callback' =&gt;</code> then it is using a callback which you should be able to find (probably in functions.php) by looking for the name of the callback function, which is the part after the = sign or arrow, e.g. <code>wp_list_comments( array( 'callback' =&gt; 'twentyten_comment' ) );</code> or <code>wp_list_comments('type=comment&amp;callback=bones_comments');</code>. If it doesn’t then we will need to add one by adding <code>callback=diymh_comment</code> or <code>array( 'callback' =&gt; 'diymh_comment' )</code> to the line.</li>
<li>If you needed to add a comment callback then you will need to add the following code to functions.php<br />
<pre class="crayon-plain-tag">function diymh_comment($comment, $args, $depth) {
	$GLOBALS['comment'] = $comment; ?&gt;
	&lt;li &lt;?php comment_class(); ?&gt; id="li-comment-&lt;?php comment_ID() ?&gt;"&gt;
	  &lt;div id="comment-&lt;?php comment_ID(); ?&gt;"&gt;
		&lt;div class="comment-author novcard"&gt;
			&lt;?php echo get_avatar($comment,$size='48',$default='&lt;path_to_url&gt;' ); ?&gt;

			&lt;?php printf(__('&lt;cite class="fn"&gt;%s&lt;/cite&gt; &lt;span class="says"&gt;says:&lt;/span&gt;'), get_comment_author_link()) ?&gt;
		&lt;/div&gt;
		&lt;?php if ($comment-&gt;comment_approved == '0') : ?&gt;
			&lt;em&gt;&lt;?php _e('Your comment is awaiting moderation.') ?&gt;&lt;/em&gt;
			&lt;br /&gt;
		&lt;?php endif; ?&gt;

		&lt;div class="comment-meta commentmetadata"&gt;&lt;a href="&lt;?php echo htmlspecialchars( get_comment_link( $comment-&gt;comment_ID ) ) ?&gt;"&gt;&lt;?php printf(__('%1$s at %2$s'), get_comment_date(),  get_comment_time()) ?&gt;&lt;/a&gt;&lt;?php edit_comment_link(__('(Edit)'),'  ','') ?&gt;&lt;/div&gt;

		&lt;?php comment_text() ?&gt;

		&lt;div class="reply"&gt;
			&lt;?php comment_reply_link(array_merge( $args, array('depth' =&gt; $depth, 'max_depth' =&gt; $args['max_depth']))) ?&gt;
		&lt;/div&gt;
	  &lt;/div&gt;
&lt;?php
}</pre>
</li>
<li>You will notice that this code has a <code>class="novcard"</code> instead of the original <code>class="vcard".</code></li>
<li>If your theme did have its own callback you need to find the callback function and replace any instances of <code>class="vcard"</code> with <code>class="novcard"</code></li>
</ol>
<h4>Replacing hfeed in the header</h4>
<ol>
<li>Next, we need to also remove any instances of <code>class="hfeed"</code>, which are usually found in header.php. Replace all occurrences of <code>hfeed</code> with <code>nohfeed</code></li>
</ol>
<h4>Replacing hentry and title rich snippets</h4>
<ol>
<li>We can replace these elements with a couple of neat functions added to functions.php<br />
<pre class="crayon-plain-tag">function diymh_replace_hentry($classes){
	if(($key = array_search('hentry', $classes)) !== false) $classes[$key]='nohentry';
	return $classes;
}
add_filter('post_class','diymh_replace_hentry');

function diymh_microdata_title($title) {
    return '&lt;span itemprop="name"&gt;'.$title.'&lt;/span&gt;';
}
add_filter('the_title', 'diymh_microdata_title', 10, 2);</pre>
</li>
</ol>
<h4>Adding the information type (e.g. Article, Recipe, etc.) to the article header</h4>
<ol>
<li>First, decide what type of work you are publishing — most likely an article.  Have a look at the list at <a href="http://schema.org/CreativeWork">schema.org</a></li>
<li>Find the <abbr title="HyperText Markup Language">HTML</abbr> tag which contains the function <code>post_class()</code></li>
<li>Add the code <code>itemscope itemtype="http://schema.org/Article"</code> (replace article if you picked a different type of work)</li>
</ol>
<h4>Finally, to avoid breaking any styles</h4>
<ol>
<li>You will need to edit your theme’s style.css and do a search/replace operation to replace all instances of <code>.vcard</code> with <code>.novcard</code> and replace all instances of <code>.hfeed</code> with <code>.nohfeed</code> so that our changes don’t mess up any <abbr title="Cascading Style Sheets">CSS</abbr> styling of our comments</li>
</ol>
<h3>Fixing any other errors</h3>
<p>Any other changes necessary will be detailed on a per theme basis below. If you have a theme which you are unable to fix please post a comment. If its a free theme please let me know the theme name, and if it is a premium theme please let me know so I can provide you with an e-mail address to send a zipped copy to.</p>
<h3>Theme specific details</h3>
<p>Before just carrying out these edits don’t forget to carry out the steps to link your google profile and your site to each other, and install Yoast <abbr title="Search Engine Optimisation">SEO</abbr>, or add the code provides above.</p>
<p> </p>
<details>
<summary class="h4">Twenty Ten 1.5</summary>
<p>In functions.php replace this</p><pre class="crayon-plain-tag">function twentyten_posted_on() {
	printf( __( '&lt;span class="%1$s"&gt;Posted on&lt;/span&gt; %2$s &lt;span class="meta-sep"&gt;by&lt;/span&gt; %3$s', 'twentyten' ),
		'meta-prep meta-prep-author',
		sprintf( '&lt;a href="%1$s" title="%2$s" rel="bookmark"&gt;&lt;span class="entry-date"&gt;%3$s&lt;/span&gt;&lt;/a&gt;',
			get_permalink(),
			esc_attr( get_the_time() ),
			get_the_date()
		),
		sprintf( '&lt;span class="author vcard"&gt;&lt;a class="url fn n" href="%1$s" title="%2$s"&gt;%3$s&lt;/a&gt;&lt;/span&gt;',
			get_author_posts_url( get_the_author_meta( 'ID' ) ),
			esc_attr( sprintf( __( 'View all posts by %s', 'twentyten' ), get_the_author() ) ),
			get_the_author()
		)
	);
}</pre><p>With this</p><pre class="crayon-plain-tag">function twentyten_posted_on() {
	if(get_the_date()==get_the_modified_date()){
		printf( __( '&lt;span class="%1$s"&gt;Posted on&lt;/span&gt; %2$s &lt;span class="meta-sep"&gt;by&lt;/span&gt; %3$s', 'twentyten' ),
			'meta-prep meta-prep-author',
			sprintf( '&lt;a href="%1$s" title="%2$s" rel="bookmark"&gt;&lt;span itemprop="datePublished dateCreated dateModified"&gt;%3$s&lt;/span&gt;&lt;/a&gt;',
				get_permalink(),
				esc_attr( get_the_time() ),
				get_the_date()
			),
			sprintf( '&lt;span class="author vcard"&gt;&lt;a itemprop="author" href="%1$s" title="%2$s"&gt;%3$s&lt;/a&gt;&lt;/span&gt;',
				get_author_posts_url( get_the_author_meta( 'ID' ) ),
				esc_attr( sprintf( __( 'View all posts by %s', 'twentyten' ), get_the_author() ) ),
				get_the_author()
			)
		);
	}
	else{
		printf( __( '&lt;span class="%1$s"&gt;Posted on&lt;/span&gt; %2$s &lt;span class="meta-sep"&gt;by&lt;/span&gt; %3$s.  Updated &lt;span itemprop="dateModified"&gt;%4$s&lt;/span&gt;.', 'twentyten' ),
			'meta-prep meta-prep-author',
			sprintf( '&lt;a href="%1$s" title="%2$s" rel="bookmark"&gt;&lt;span itemprop="datePublished dateCreated"&gt;%3$s&lt;/span&gt;&lt;/a&gt;',
				get_permalink(),
				esc_attr( get_the_time() ),
				get_the_date()
			),
			sprintf( '&lt;span class="author vcard"&gt;&lt;a itemprop="author" href="%1$s" title="%2$s"&gt;%3$s&lt;/a&gt;&lt;/span&gt;',
				get_author_posts_url( get_the_author_meta( 'ID' ) ),
				esc_attr( sprintf( __( 'View all posts by %s', 'twentyten' ), get_the_author() ) ),
				get_the_author()
			),
			get_the_modified_date()
		);
	}
}</pre><p>In functions.php replace this</p><pre class="crayon-plain-tag">&lt;div class="comment-author vcard"&gt;</pre><p>With this</p><pre class="crayon-plain-tag">&lt;div class="comment-author novcard"&gt;</pre><p>In header.php replace this</p><pre class="crayon-plain-tag">&lt;div id="wrapper" class="hfeed"&gt;</pre><p>With this</p><pre class="crayon-plain-tag">&lt;div id="wrapper" class="nohfeed"&gt;</pre><p>In loop.php (3 instances), loop-single.php, loop-page.php and loop-attachment.php replace this</p><pre class="crayon-plain-tag">&lt;div id="post-&lt;?php the_ID(); ?&gt;" &lt;?php post_class(); ?&gt;&gt;</pre><p>With this</p><pre class="crayon-plain-tag">&lt;div id="post-&lt;?php the_ID(); ?&gt;" &lt;?php post_class(); ?&gt; itemscope itemtype="http://schema.org/Article"&gt;</pre><p></details>
<details>
<summary class="h4">Twenty Eleven 1.5</summary>
<p>coming very soon…</p>
</details>
<details>
<summary class="h4">Annotum Base 1.1.1</summary>
<p>In 7 files (functions\features-articles.php, excerpt\type-article.php, excerpt\excerpt-default.php, content\type-article.php, content\page.php, content\content-default.php, content\article-pdf.php) replace</p><pre class="crayon-plain-tag">&lt;article &lt;?php post_class('article-full'); ?&gt;&gt;</pre><p>with</p><pre class="crayon-plain-tag">&lt;article &lt;?php post_class('article-full'); ?&gt; itemscope itemtype="http://schema.org/Article"&gt;</pre><p></details>
<p> </p>]]></content:encoded>
			<wfw:commentRss>http://diymediahome.org/fixing-rich-snippets-testing-tool-for-microdata/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE10 for Windows 7 finally arrives</title>
		<link>http://diymediahome.org/ie10-for-windows-7-finally-arrives/</link>
		<comments>http://diymediahome.org/ie10-for-windows-7-finally-arrives/#comments</comments>
		<pubDate>Thu, 07 Mar 2013 16:49:00 +0000</pubDate>
		<dc:creator>Jon Scaife</dc:creator>
				<category><![CDATA[Web Technologies]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[ie10]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[vista]]></category>
		<category><![CDATA[windows 7]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://diymediahome.org/?p=3496</guid>
		<description><![CDATA[Another item that we’re a bit late to cover is the arrival of Internet Explorer 10 for Windows 7 (and Server 2008 R2).  As with past releases, older OSes are being left behind with no support for Vista or XP, which are stuck on IE9 and IE8 respectively.  If you have Windows 7 we recommend...  <a href="http://diymediahome.org/ie10-for-windows-7-finally-arrives/" title="Read IE10 for Windows 7 finally arrives">Read more &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>Another item that we’re a bit late to cover is the arrival of <a href="http://windows.microsoft.com/en-GB/internet-explorer/downloads/ie-10/worldwide-languages">Internet Explorer 10</a> for Windows 7 (and Server 2008 R2).  As with past releases, older OSes are being left behind with no support for Vista or XP, which are stuck on IE9 and IE8 respectively.  If you have Windows 7 we recommend upgrading (even if you don’t use <abbr title="Internet Explorer">IE</abbr>) and of course there is no harm giving it a try.  We’ll probably be sticking with Firefox and Chrome ourselves, but <abbr title="Internet Explorer">IE</abbr> sometimes has its uses.</p>
<p><span id="more-3496"></span></p>]]></content:encoded>
			<wfw:commentRss>http://diymediahome.org/ie10-for-windows-7-finally-arrives/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BBC HD to become BBC2 HD</title>
		<link>http://diymediahome.org/bbc-hd-to-become-bbc2-hd/</link>
		<comments>http://diymediahome.org/bbc-hd-to-become-bbc2-hd/#comments</comments>
		<pubDate>Thu, 07 Mar 2013 16:43:32 +0000</pubDate>
		<dc:creator>Jon Scaife</dc:creator>
				<category><![CDATA[Freesat]]></category>
		<category><![CDATA[bbc hd]]></category>
		<category><![CDATA[bbc2 hd]]></category>

		<guid isPermaLink="false">http://diymediahome.org/?p=3494</guid>
		<description><![CDATA[I’ve been a little slow getting round to updating content on the site recently, and this news was one item that got left behind.  The BBC have announced that BBC HD is to be replaced by BBC2 HD.  The majority of content on BBC HD was from BBC2 anyway, so most will notice little difference,...  <a href="http://diymediahome.org/bbc-hd-to-become-bbc2-hd/" title="Read BBC HD to become BBC2 HD">Read more &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>I’ve been a little slow getting round to updating content on the site recently, and this news was one item that got left behind.  The BBC have announced that BBC HD is to be replaced by BBC2 HD.  The majority of content on BBC HD was from BBC2 anyway, so most will notice little difference, but expect a new logo and minor changes to the programme line-up.  The expected switchover date is 6am on Tuesday 26th March.</p>
<p><span id="more-3494"></span></p>]]></content:encoded>
			<wfw:commentRss>http://diymediahome.org/bbc-hd-to-become-bbc2-hd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adsense ads above the last paragraph of a post</title>
		<link>http://diymediahome.org/adsense-ads-above-the-last-paragraph-of-a-post/</link>
		<comments>http://diymediahome.org/adsense-ads-above-the-last-paragraph-of-a-post/#comments</comments>
		<pubDate>Wed, 06 Mar 2013 20:06:23 +0000</pubDate>
		<dc:creator>Jon Scaife</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[adsense]]></category>
		<category><![CDATA[automatic]]></category>
		<category><![CDATA[functions.php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://diymediahome.org/?p=3470</guid>
		<description><![CDATA[You may have noticed that we’ve tweaked how we display our adsense ads.  We wanted some small text-only ads near the bottom of each article, which would be added automatically.  This took a little bit of tinkering, but eventually we developed a solution which works well and doesn’t seem to knock page processing times much. ...  <a href="http://diymediahome.org/adsense-ads-above-the-last-paragraph-of-a-post/" title="Read Adsense ads above the last paragraph of a post">Read more &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>You may have noticed that we’ve tweaked how we display our adsense ads.  We wanted some small text-only ads near the bottom of each article, which would be added automatically.  This took a little bit of tinkering, but eventually we developed a solution which works well and doesn’t seem to knock page processing times much.  Simply add the following code to your theme’s functions.php (don’t forget to change your adsense IDs)</p>
<p><span id="more-3470"></span></p><pre class="crayon-plain-tag">function ads_added_above_last_p($text) {
	if( is_single() ) :
		$ads_text = '&lt;div class="a" style="text-align: center;"&gt;&lt;script type="text/javascript"&gt;&lt;!--
			google_ad_client = "ca-pub-0754629982287605";
			/* DMH-PostsMini */
			google_ad_slot = "5138459326";
			google_ad_width = 468;
			google_ad_height = 15;
			//--&gt;
			&lt;/script&gt;
			&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
			&lt;/script&gt;&lt;/div&gt;';
		if($pos1 = strrpos($text, '&lt;p&gt;')){
			$text1 = substr($text, 0, $pos1);
			$text2 = substr($text, $pos1);
			$text = $text1 . $ads_text . $text2;
		}
	endif;
	return $text;
	}
add_filter('the_content', 'ads_added_above_last_p');</pre><p></p>]]></content:encoded>
			<wfw:commentRss>http://diymediahome.org/adsense-ads-above-the-last-paragraph-of-a-post/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Easily set the parent of a WordPress comment</title>
		<link>http://diymediahome.org/add-an-option-to-edit-the-parent-of-a-comment/</link>
		<comments>http://diymediahome.org/add-an-option-to-edit-the-parent-of-a-comment/#comments</comments>
		<pubDate>Wed, 06 Mar 2013 19:00:39 +0000</pubDate>
		<dc:creator>Jon Scaife</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[comment]]></category>
		<category><![CDATA[edit]]></category>
		<category><![CDATA[id]]></category>
		<category><![CDATA[parent]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[reply]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://diymediahome.org/?p=3464</guid>
		<description><![CDATA[As is documented in the site update log, for a while we had a problem with our theme where it wasn’t possible to reply to a comment so that the reply would appear correctly in a threaded way.  We have no fixed this problem, but have been left with a significant number of comments which...  <a href="http://diymediahome.org/add-an-option-to-edit-the-parent-of-a-comment/" title="Read Easily set the parent of a WordPress comment">Read more &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>As is documented in the site update log, for a while we had a problem with our theme where it wasn’t possible to reply to a comment so that the reply would appear correctly in a threaded way.  We have no fixed this problem, but have been left with a significant number of comments which really need editing so it is easier to see what they are in reply to.  With a standard wordpress install this requires going into the database and editing there, which is very tedious.  Instead, we’ve used some simple functions to add an option to the comment-edit admin page, to set the comment parent there.  Eventually this will be developed into a proper plugin to enable this functionality.  For now the code is below, just add it to your theme’s functions.php</p>
<p><span id="more-3464"></span></p>
<p><pre class="crayon-plain-tag">function comment_parent_meta_box()
{
	add_meta_box( 'comment_parent', __( 'Parent ID' ), 'comment_parent_cb', 'comment', 'normal', 'high' );
}
add_action( 'add_meta_boxes_comment', 'comment_parent_meta_box' );
	
function comment_parent_cb( $comment )
{
    $parent = get_comment_meta( $comment->comment_ID, 'comment_parent', true );
    wp_nonce_field( 'parent_comment_update', 'parent_comment_update', false );
    ?>
    <input type="text" value="<?php echo get_comment_meta( $comment-/>comment_ID, 'comment_parent', true ) ?>" name="comment_parent" id="comment_parent" />
    < ?php
}

function comment_parent_edit( $comment_id )
{
    if( ! isset( $_POST['parent_comment_update'] ) || ! wp_verify_nonce( $_POST['parent_comment_update'], 'parent_comment_update' ) ) return;
    if( isset( $_POST['comment_parent'] ) )
        update_comment_meta( $comment_id, 'comment_parent', esc_attr( $_POST['comment_parent'] ) );
}
add_action( 'edit_comment', 'comment_parent_edit' );</pre></pre>]]></content:encoded>
			<wfw:commentRss>http://diymediahome.org/add-an-option-to-edit-the-parent-of-a-comment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to burn files to compliant DVD-Video</title>
		<link>http://diymediahome.org/how-to-burn-files-to-compliant-dvd-video/</link>
		<comments>http://diymediahome.org/how-to-burn-files-to-compliant-dvd-video/#comments</comments>
		<pubDate>Mon, 04 Mar 2013 09:37:08 +0000</pubDate>
		<dc:creator>Jon Scaife</dc:creator>
				<category><![CDATA[Misc Media Software]]></category>
		<category><![CDATA[dvd]]></category>
		<category><![CDATA[hd]]></category>
		<category><![CDATA[mkv]]></category>
		<category><![CDATA[recorded TV]]></category>
		<category><![CDATA[transcode]]></category>

		<guid isPermaLink="false">http://diymediahome.org/?p=3413</guid>
		<description><![CDATA[As I’ve documented well on this blog I run all my TV through a server and Windows Media Center. Occasionally I want to archive some recorded TV to DVD. Not a DVD of data-files, but a standards-compliant video DVD that will play in set top players. This isn’t always straight forward as proper DVDs have...  <a href="http://diymediahome.org/how-to-burn-files-to-compliant-dvd-video/" title="Read How to burn files to compliant DVD-Video">Read more &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>As I’ve documented well on this blog I run all my <abbr title="Television">TV</abbr> through a server and Windows Media Center. Occasionally I want to archive some recorded <abbr title="Television">TV</abbr> to <abbr title="Digital Versatile Disc">DVD</abbr>. Not a <abbr title="Digital Versatile Disc">DVD</abbr> of data-files, but a standards-compliant video <abbr title="Digital Versatile Disc">DVD</abbr> that will play in set top players. This isn’t always straight forward as proper <abbr title="Digital Versatile Discs">DVDs</abbr> have to conform to various standards, including being encoded in MPEG2 and having a PAL or NTSC resolution (480p or 576p). Most of what I have recorded is 1080p and I also have some 720p, and most of this is encoded using H.264. So turning these files into a standard <abbr title="Digital Versatile Disc">DVD</abbr> video means both recoding and resizing the videos.<span id="more-3413"></span>In the past I have used the excellent (and free) <abbr title="Digital Versatile Disc">DVD</abbr>–Flick for authoring video clips to standard <abbr title="Digital Versatile Disc">DVD</abbr>.  This easy to use software is great for quickly and easily making proper <abbr title="Digital Versatile Discs">DVDs</abbr> with menu structures etc.  However, when it comes to transcoding and resizing <abbr title="Digital Versatile Disc">DVD</abbr>–Flick is incredibly slow.  I also found that occasionally authoring these types of shows with <abbr title="Digital Versatile Disc">DVD</abbr>–Flick can result in some audio/video sync issues, and with <abbr title="Digital Versatile Disc">DVD</abbr>–Flick no longer being actively developed these issues are unlikely to be fixed.</p>
<p>After extensive research I settled on a program called <a href="http://sourceforge.net/projects/avstodvd/">AVStoDVD</a>, another free program which is being actively developed.  This isn’t quite as streamlined and simple to use as <abbr title="Digital Versatile Disc">DVD</abbr>–Flick but its not too far off.  Whilst it utilises lots of other third party tools to work, this is all done automatically behind the scenes.  Simply dragging the required files into a list, editing their “titles” and then using the wizard to generate a menu took under a minute.  You have the option to create standard single layer 4.5Gb <abbr title="Digital Versatile Discs">DVDs</abbr> or dual-layer 9Gb <abbr title="Digital Versatile Discs">DVDs</abbr>.  I’ve tested both successfully and found that even on my rather aging Core2Duo PC I could carry out the whole process, including burning to disk, in a little bit under the playback time.  So — for example, archiving 3 episodes of a <abbr title="Television">TV</abbr> series which are each 1 hour long took about 2 hours and 40 minutes.  I was also impressed that I could fit 3 hours of content onto a single-layer standard <abbr title="Digital Versatile Disc">DVD</abbr> at quite impressive quality.  Last but not least, I was very pleased to see that I could select audio streams, and choose to have AC3 and DTS streams automatically passed through unmodified (AC3 and DTS are <abbr title="Digital Versatile Disc">DVD</abbr>–compliant).</p>
<p>If you need to archive video content to compliant <abbr title="Digital Versatile Disc">DVD</abbr>’s, especially HD content or content encoded in newer <abbr title="Moving Picture Experts Group">MPEG</abbr>–4 formats, I highly recommend giving AVStoDVD a try.</p>]]></content:encoded>
			<wfw:commentRss>http://diymediahome.org/how-to-burn-files-to-compliant-dvd-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Batch convert old MS Office documents</title>
		<link>http://diymediahome.org/batch-convert-old-ms-office-documents/</link>
		<comments>http://diymediahome.org/batch-convert-old-ms-office-documents/#comments</comments>
		<pubDate>Mon, 25 Feb 2013 11:45:15 +0000</pubDate>
		<dc:creator>Jon Scaife</dc:creator>
				<category><![CDATA[Misc Software]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[compatibility pack]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[doc]]></category>
		<category><![CDATA[docx]]></category>
		<category><![CDATA[file format converters]]></category>
		<category><![CDATA[migration planning manager]]></category>
		<category><![CDATA[office]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[xls]]></category>
		<category><![CDATA[xlsx]]></category>

		<guid isPermaLink="false">http://diymediahome.org/?p=3388</guid>
		<description><![CDATA[I’ve been trying to sort out an enormous (100+GB) or teaching resources that I’ve built-up over the years.  After the obvious steps (deleting empty, temp and duplicated files) and sorting the big files (e.g. videos, application installers) I was left with a large number of office documents.  I am slowly working through these, but many...  <a href="http://diymediahome.org/batch-convert-old-ms-office-documents/" title="Read Batch convert old MS Office documents">Read more &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>I’ve been trying to sort out an enormous (100+<abbr title="Gigabyte">GB</abbr>) or teaching resources that I’ve built-up over the years.  After the obvious steps (deleting empty, temp and duplicated files) and sorting the big files (e.g. videos, application installers) I was left with a large number of office documents.  I am slowly working through these, but many of them are 2003 or even older format documents — some as old as Word 6!  Every time I open one of these files I am prompted with various security warnings.  Whist these can be turned off (see below) it is more secure to leave them on, and I wanted to convert all the files to office 2007 (docx, xlsx etc) formats.  Batch conversion was definitely the way to go.</p>
<p><span id="more-3388"></span></p>
<p>There are several advantages to conversion beyond the problems with security warnings.  Documents saved in the newer formats are significantly smaller, and as they are based on open formats, are much more compatible, e.g. with google docs and open office.  This may prove very advantageous in the future.  I discovered that the size reduction alone makes going to the trouble worthwhile - first 220 word documents i converted were reduced from 63Mb to 25Mb.  You may think saving 175k per file isn’t worthwhile, but if you have 110,000 files (as I did) you will save around 18Gb — a big saving if you’re using a a <abbr title="Universal Serial Bus">USB</abbr> Thumbdrive, older external <abbr title="Hard Disk Drive">HDD</abbr> or <abbr title="Solid-State Drive">SSD</abbr> systemdrive.</p>
<p>Microsoft offer a utility called OFC to batch convert office documents so this seemed the obvious way to proceed.  OFC is part of the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=13580cd7-a8bc-40ef-8281-dd2c325a5a81&amp;DisplayLang=en">Microsoft Office Migration Planning Manager</a>.  To utilise it fully you will also need to download the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=941b3470-3ae9-4aee-8f43-c6bb74cd1466&amp;displaylang=en">Office 2007 Compatibility Pack</a>, which includes lots of file-format converters.  Install the compatibility pack first, then run the installer for the migration planning manager.  You will be prompted to pick a location to extract to — I’d put it in your documents or downloads folder as it makes file editing easier.</p>
<p>To run the converter you simply open the extracted path, open the tools directory and run ofc.exe.  However, You wont achieve much this way as OFC doesn’t have a <abbr title="Graphical User Interface">GUI</abbr> — it uses ini files.  There will be an OFC.ini file included in the tools folder as an example.  You will need to edit it — you can use notepad or any text editor to do so.</p>
<p>There are actually lots of options for configuring ofc.ini, but I’m just interested in converting all the files in a particular folder (and subfolders) into newer file formats.  To do this make the following edits. This will owrk with path-depths up to 9 subfolders deep — there seems to be a bug that prevents it working beyond that.</p>
<p>[ConversionOptions]<br />
FullUpgradeOnOpen=1<br />
CABLogs=0<br />
MacroControl=0</p>
<p>[FoldersToConvert]<br />
fldr=full-path-to-your-folder-with-trailing-slash<br />
ConvertSubfolders=1</p>
<p>[ConversionInfo]<br />
SourcePathTemplate=*\*\*\*\*\*\*\*\*\<br />
DestinationPathTemplate=*1\*2\*3\*4\*5\*6\*7\*8\*9\</p>
<p>Note — If you just want to disable security warnings (e.g. in word) then please refer to the <a href="http://support.microsoft.com/kb/922849">helpful instructions</a> provided by Microsoft.</p>
<p>Thanks to <a href="http://blogs.msdn.com/b/ericwhite/archive/2008/09/19/bulk-convert-doc-to-docx.aspx">Eric White</a> for the initial links and clues</p>]]></content:encoded>
			<wfw:commentRss>http://diymediahome.org/batch-convert-old-ms-office-documents/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install a spellchecker for your browser</title>
		<link>http://diymediahome.org/install-a-spellchecker-for-your-browser/</link>
		<comments>http://diymediahome.org/install-a-spellchecker-for-your-browser/#comments</comments>
		<pubDate>Wed, 20 Feb 2013 13:38:44 +0000</pubDate>
		<dc:creator>Jon Scaife</dc:creator>
				<category><![CDATA[Web Technologies]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[dictionary]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[iespell]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[spell]]></category>
		<category><![CDATA[spell check]]></category>

		<guid isPermaLink="false">http://diymediahome.org/?p=3381</guid>
		<description><![CDATA[Let me start with an admission: I’m one of those pedants on Facebook who likes to correct your spelling, punctuation and grammar.  Some of you will think this is perfectly reasonable, whilst others will probably want an explanation.  If you are one of the latter read on. The simple fact is that as a social...  <a href="http://diymediahome.org/install-a-spellchecker-for-your-browser/" title="Read Install a spellchecker for your browser">Read more &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>Let me start with an admission: I’m one of those pedants on Facebook who likes to correct your spelling, punctuation and grammar.  Some of you will think this is perfectly reasonable, whilst others will probably want an explanation.  If you are one of the latter read on.</p>
<p>The simple fact is that as a social species our existence depends on communication, the clearer the better.  When their only contact with you is virtual other people will make judgements about you based on what is available to them — including your <abbr title="Spelling, Punctuation and Grammar">SPG</abbr>.  I correct spellings on Facebook for 2 reasons: 1. because I’m a teacher so it’s a habit; 2. because with modern web-browsers there is quite simply no excuse for incorrect spelling.  So, to help everyone, here is a quick guide to enabling an automatic ‘Microsoft word like” spell-checker in your web-browser…</p>
<p><span id="more-3381"></span></p>
<p>A quick note — I speak “the original” English, so this guide is for British English, but it is equally applicable to other languages.  This guide is also aimed at users of Windows, although options may well be similar in other OSes</p>
<p><strong>Firefox</strong></p>
<ul>
<li>Install the appropriate dictionary “addon”.  e.g. <a href="https://addons.mozilla.org/en-US/firefox/addon/british-english-dictionary">British English Dictionary</a></li>
<li>Restart Firefox if prompted</li>
</ul>
<p><strong>Chrome</strong></p>
<p>It’s built-in!  However, if it isn’t working, check the settings…</p>
<ul>
<li>Click on the icon with 3 horizontal lines at the top right</li>
<li>Select ‘settings’</li>
<li>Click on “+ Show advanced settings” at the bottom of the page</li>
<li>Scroll down to the “Languages” section</li>
<li>Click on “Languages and spellchecker settings…”</li>
<li>Ensure “English (United Kingdom)” is highlighted</li>
<li>Ensure “Enable spellchecking” is ticked</li>
</ul>
<p><strong>Internet explorer</strong></p>
<ul>
<li>Install S<a href="http://www.speckie.com/dload">peckie</a></li>
<li>Load Internet Explorer</li>
<li>If you get a prompt “The ‘Speckie’ add-on from ‘Versoworks Pty Ltd’ is ready for use.” click “Enable”</li>
<li>In the address bar enter “about:speckie”</li>
<li>Click “Get more dictionaries”</li>
<li>Click on the link to “English Great Britain”</li>
<li>Click “Open”</li>
<li>Click “OK”</li>
<li>Close Internet Explorer</li>
<li>Reload Internet Explorer</li>
<li>In the address bar enter “about:speckie”</li>
<li>Untick “English (United States)”</li>
<li>Click Apply</li>
<li>Close Internet Explorer</li>
<li>Reload Internet Explorer</li>
</ul>
<p><br id=".reactRoot[71].[1][2][1]{comment10200728309112886_6104259}.0.[1].0.[1].0.[0].[0][2].0.[3].0.[29]" /><strong>Safari</strong></p>
<ul>
<li>Right click on a misspelled word in a form</li>
<li>Go down to “Spelling and grammar”</li>
<li>Select “Show spelling and grammar”</li>
<li>In the pull-down menu at the bottom select “British English”</li>
<li>Close the mini window</li>
<li>When a word is misspelled (shown with the red line) double click on it to highlight it, then right click for correction options.  The correction options don’t appear on some forms, e.g. google search, which implement their own suggestions.</li>
</ul>
<p> </p>
<p><strong>Opera</strong></p>
<ul>
<li>Right click on a misspelled word</li>
<li>Scroll down to “dictionaries”</li>
<li>Select “Add/remove dictionaries…”</li>
<li>Tick “English (<abbr title="United Kingdom">UK</abbr>)”</li>
<li>Click “Next”</li>
<li>Tick “Accept license”</li>
<li>Click “Next”</li>
<li>Select “English (<abbr title="United Kingdom">UK</abbr>) [en–<abbr title="Gigabyte">GB</abbr>]” as the default dictionary</li>
<li>Click Finish</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://diymediahome.org/install-a-spellchecker-for-your-browser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jetpack-style comments without Jetpack</title>
		<link>http://diymediahome.org/jetpack-style-comments-without-jetpack/</link>
		<comments>http://diymediahome.org/jetpack-style-comments-without-jetpack/#comments</comments>
		<pubDate>Wed, 13 Feb 2013 17:51:36 +0000</pubDate>
		<dc:creator>Jon Scaife</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[comments_form_top]]></category>
		<category><![CDATA[comment_form()]]></category>
		<category><![CDATA[comment_form_defaults]]></category>
		<category><![CDATA[jetpack]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://diymediahome.org/?p=3374</guid>
		<description><![CDATA[One of the best things about wordpress is the built-in social aspect provided by comments.  Getting your comment section right can be very important to any website, including ours.  Over the years we’ve experimented with various comment plugins including Disqus and more recently Jetpack.  However, we’ve always ended up bring things back in house for...  <a href="http://diymediahome.org/jetpack-style-comments-without-jetpack/" title="Read Jetpack-style comments without Jetpack">Read more &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>One of the best things about wordpress is the built-in social aspect provided by comments.  Getting your comment section right can be very important to any website, including ours.  Over the years we’ve experimented with various comment plugins including Disqus and more recently Jetpack.  However, we’ve always ended up bring things back in house for management, performance and privacy reasons.  When I moved back from Jetpack comments I really missed some of the slick features provided by Jetpack, both the social-network logins and the general slick styling.  Anyway, to cut a long story short I finally had time today to take a good look at how wordpress “does” comments and figure out a way to build an in-house system which looks nice and slick like the comment interface provided by jetpack.  Best of all its surprisingly simple and does things the “proper” way…<br />
<span id="more-3374"></span><br />
First — to deal with the “social” aspect, I’ve resorted to a plugin called <a href="http://wordpress.org/extend/plugins/wordpress-social-login/">WordPress Social Login</a> by <a href="http://hybridauth.sourceforge.net/wsl/index.html">Miled</a>.  There are several “social login” plugins, but this version (unlike the others) keeps everything totally in-house.  It is a bit more work to configure, but for the benefit to our visitors privacy alone this is well worth it.</p>
<p>Next up was figuring out how to change the built-in wordpress comment form function (funnily enough called comment_form()).  I’ll provide more detail later if anyone requests it, for now just find the relevant code below…</p>
<h4>comments.php (in theme folder)</h4>
<p></p><pre class="crayon-plain-tag">&lt;!-- You can start editing here. --&gt;

&lt;?php if ( comments_open() ) : ?&gt;

&lt;section id=&quot;respond&quot; class=&quot;respond-form&quot;&gt;
&lt;?php comment_form(); ?&gt;

&lt;script&gt;
document.getElementById('hidden-form-area').style.display = 'none';
function myFunction()
{
document.getElementById('hidden-form-area').style.display = 'block';
}
&lt;/script&gt;

&lt;/section&gt;

&lt;?php endif; // if you delete this the sky will fall on your head ?&gt;</pre><p></p>
<h4>functions.php (in theme folder)</h4>
<p></p><pre class="crayon-plain-tag">function my_fields($fields)
{
    $fields['author'] = '&lt;p class=&quot;comment-form-author&quot;&gt;&lt;input type=&quot;text&quot; name=&quot;author&quot; id=&quot;author&quot; size=&quot;22&quot; tabindex=&quot;1&quot; placeholder=&quot;Name (required)&quot; /&gt;&lt;/p&gt;';
    $fields['email'] = '&lt;p class=&quot;comment-form-email&quot;&gt;&lt;input type=&quot;text&quot; name=&quot;email&quot; id=&quot;email&quot; size=&quot;22&quot; tabindex=&quot;2&quot; placeholder=&quot;E-mail (required - never shared with anyone)&quot; /&gt;&lt;/p&gt;';
    $fields['url'] = '&lt;p class=&quot;comment-form-url&quot;&gt;&lt;input type=&quot;text&quot; name=&quot;url&quot; id=&quot;url&quot; size=&quot;22&quot; tabindex=&quot;2&quot; placeholder=&quot;Website&quot; /&gt;&lt;/p&gt;';
    return $fields;
}
add_filter('comment_form_default_fields','my_fields');

function remove_notice($defaults)
{
    $defaults['comment_notes_before'] = '';
    $defaults['comment_notes_after'] = '';
    return $defaults;
}
add_filter( 'comment_form_defaults', 'remove_notice' );

function remove_textarea($defaults)
{
    $defaults['comment_field'] = '';
    return $defaults;
}
add_filter( 'comment_form_defaults', 'remove_textarea' );

function add_textarea()
{
    echo '&lt;p class=&quot;comment-form-comment&quot;&gt;&lt;textarea id=&quot;comment&quot; name=&quot;comment&quot; placeholder=&quot;Enter your comment here...&quot; onfocus=&quot;myFunction()&quot;&gt;&lt;/textarea&gt;&lt;/p&gt;&lt;div id=&quot;hidden-form-area&quot;&gt;';
}
add_action( 'comment_form_top', 'add_textarea', 1 );

function add_hideend()
{
    echo '&lt;/div&gt;';
}
add_action( 'comment_form_after', 'add_hideend' );</pre><p></p>]]></content:encoded>
			<wfw:commentRss>http://diymediahome.org/jetpack-style-comments-without-jetpack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Object Caching 1347/1426 objects using apc
Content Delivery Network via Amazon Web Services: CloudFront: cdn4.diymediahome.org

 Served from: diymediahome.org @ 2013-05-19 04:43:00 by W3 Total Cache -->