<?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>ScottNellé.com</title>
	<atom:link href="https://scottnelle.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://scottnelle.com/</link>
	<description>WordPress Web Development Tips</description>
	<lastBuildDate>Thu, 14 Aug 2025 13:38:57 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
<site xmlns="com-wordpress:feed-additions:1">58529578</site>	<item>
		<title>What am I up to?</title>
		<link>https://scottnelle.com/15254/what-am-i-up-to/</link>
		
		<dc:creator><![CDATA[Scott Nellé]]></dc:creator>
		<pubDate>Thu, 14 Aug 2025 12:38:31 +0000</pubDate>
				<category><![CDATA[Life]]></category>
		<guid isPermaLink="false">https://scottnelle.com/?p=15254</guid>

					<description><![CDATA[<p>It&#8217;s been years since I&#8217;ve written anything here. What on earth have I been up to?! In short, I&#8217;m still breathing and I&#8217;m focused on living a life. I still work in web software development and I still mostly love &#8230; <a href="https://scottnelle.com/15254/what-am-i-up-to/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<p>The post <a href="https://scottnelle.com/15254/what-am-i-up-to/">What am I up to?</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">It&#8217;s been years since I&#8217;ve written anything here. What on earth have I been up to?!</p>



<p class="wp-block-paragraph">In short, I&#8217;m still breathing and I&#8217;m focused on living a life. I still work in web software development and I still mostly love it. But my hobbies and my friends are where I put my after-hours energy in recent years. Some stuff I&#8217;ve been doing:</p>



<ul class="wp-block-list">
<li>I have a solo band, <a href="https://plaguesociety.com/">Plague Society</a>. I hope to record and release more music soon, but for now, there&#8217;s a single out which I&#8217;m pretty proud of. </li>



<li>I make short tracks on <a href="https://www.youtube.com/@scottnelle">my Youtube channel</a>, performed on my collection of compact hardware synthesizers. </li>



<li>I enjoy photography, and recently I&#8217;ve been exploring film photography again after a 20 year hiatus. I occasionally <a href="https://photo.mightyworker.net/">post photo galleries on a separate personal site</a>. I also share some of <a href="https://www.instagram.com/scottnelle">my photography and slice-of-life images on Instagram</a>.</li>



<li>For a while I was DJing again, and there are <a href="https://www.mixcloud.com/scottnelle/">a few mixes on Mixcloud</a>. I&#8217;m back in DJ retirement, but I&#8217;ve been asked by seven or eight people to do events with them in the last few months, so I might appear on a stage somewhere in the Northeast with my dusty old MP3s at some point in the future.</li>
</ul>



<p class="wp-block-paragraph">Mostly I&#8217;m just hanging out with my partner, taking care of my cats, and getting together with friends when I can get away to visit them. There have been some ups and downs, but life is pretty good.</p>
<p>The post <a href="https://scottnelle.com/15254/what-am-i-up-to/">What am I up to?</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">15254</post-id>	</item>
		<item>
		<title>Disable post revisions for all post types</title>
		<link>https://scottnelle.com/1011/disable-post-revisions-post-types/</link>
		
		<dc:creator><![CDATA[Scott Nellé]]></dc:creator>
		<pubDate>Mon, 13 Mar 2017 23:21:23 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://scottnelle.com/?p=1011</guid>

					<description><![CDATA[<p>WordPress has a handy post revision feature which saves earlier states of a post as you make edits. Not everyone wants or needs this feature, however, and it&#8217;s handy to be able to turn it off. Plugins exist for this, &#8230; <a href="https://scottnelle.com/1011/disable-post-revisions-post-types/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<p>The post <a href="https://scottnelle.com/1011/disable-post-revisions-post-types/">Disable post revisions for all post types</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>WordPress has a handy post revision feature which saves earlier states of a post as you make edits. Not everyone wants or needs this feature, however, and it&#8217;s handy to be able to turn it off. Plugins exist for this, but I prefer code solutions that I can put in my themes or site-specific plugins. Here&#8217;s a simple method to disable post revisions without installing a plugin:</p>
<pre><code class="language-php">/**
 * Disable revisions for all post types.
 */
function my_disable_post_revisions() {
	foreach ( get_post_types() as $post_type ) {
		remove_post_type_support( $post_type, 'revisions' );
	}
}
add_action( 'init', 'my_disable_post_revisions', 999 );
</code></pre>
<p>If you&#8217;d like to disable post revisions for only specific set of built-in or custom post types instead of targeting all types, you can do that with an array:</p>
<pre><code class="language-php">/**
 * Disable revisions for all post types.
 */
function my_disable_post_revisions() {
	$types = array( 'post', 'my-custom-type' );
	foreach ( $types as $post_type ) {
		remove_post_type_support( $post_type, 'revisions' );
	}
}
add_action( 'init', 'my_disable_post_revisions', 999 );
</code></pre>
<p>The high priority, <code>999</code>, means it&#8217;s almost certain to execute after any other code which adds revision support.</p>
<p>The ability to disable revisions is particularly helpful when moving a site from another system to WordPress. Frequent post editing and other operations may result in a large number of revisions saved in the database.</p>
<p>If you want to start saving revisions again, simply remove this code from your theme or plugin.</p>
<p>The post <a href="https://scottnelle.com/1011/disable-post-revisions-post-types/">Disable post revisions for all post types</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1011</post-id>	</item>
		<item>
		<title>Mine your site search data for content ideas</title>
		<link>https://scottnelle.com/865/mine-site-search-data-content-ideas/</link>
		
		<dc:creator><![CDATA[Scott Nellé]]></dc:creator>
		<pubDate>Fri, 09 Sep 2016 08:20:08 +0000</pubDate>
				<category><![CDATA[Analytics]]></category>
		<category><![CDATA[Publishing]]></category>
		<category><![CDATA[Search]]></category>
		<guid isPermaLink="false">http://scottnelle.com/?p=865</guid>

					<description><![CDATA[<p>In the past, you could see what search terms brought people to your site. You could comb through that data to discover how people found your site. Perhaps more importantly, you could discover what searched for and did not find. That data allowed you &#8230; <a href="https://scottnelle.com/865/mine-site-search-data-content-ideas/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<p>The post <a href="https://scottnelle.com/865/mine-site-search-data-content-ideas/">Mine your site search data for content ideas</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In the past, you could see what search terms brought people to your site. You could comb through that data to discover how people found your site. Perhaps more importantly, you could discover what searched for and did <strong>not</strong> find. That data allowed you to identify ideas that were relevant to your existing content and served a need that wasn&#8217;t already being met on your site.</p>
<p>Unfortunately for you, the writer, that data is no longer easily available in Google Analytics. Google began obscuring search terms from referrer data because they wanted to protect their user&#8217;s privacy. Or, if you&#8217;re cynical, the data was too valuable to give away for free. (it&#8217;s totally available if you set up another product, Google Search Console.) All of the other major search engines followed suit, making it more challenging to mine this search data to improve your site.</p>
<h2>Using your own site search</h2>
<p>But activities on your own site are your own business, and <a href="http://scottnelle.com/857/site-search-wordpress-google-analytics/">Google Analytics&#8217; Site Search makes it pretty easy for you to track what people are searching for on your site</a>. Utilizing data about what people are searching for on your site, you can identify areas of strong interest where you aren&#8217;t writing enough, or haven&#8217;t written at all. And if you&#8217;ve set up Site Search tracking and aren&#8217;t seeing much search traffic, that may also be instructive. You might consider updating your site to make search a more prominent feature.</p>
<p>The post <a href="https://scottnelle.com/865/mine-site-search-data-content-ideas/">Mine your site search data for content ideas</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">865</post-id>	</item>
		<item>
		<title>Site search tracking for WordPress with Google Analytics</title>
		<link>https://scottnelle.com/857/site-search-wordpress-google-analytics/</link>
		
		<dc:creator><![CDATA[Scott Nellé]]></dc:creator>
		<pubDate>Tue, 06 Sep 2016 21:29:46 +0000</pubDate>
				<category><![CDATA[Analytics]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://scottnelle.com/?p=857</guid>

					<description><![CDATA[<p>With just a little setup, Google analytics can track keywords and phrases entered into your WordPress site&#8217;s search box. By default, your search results will show up as regular page views which look something like /?s=Search Term&#38;submit=Search. Using GA&#8217;s Site &#8230; <a href="https://scottnelle.com/857/site-search-wordpress-google-analytics/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<p>The post <a href="https://scottnelle.com/857/site-search-wordpress-google-analytics/">Site search tracking for WordPress with Google Analytics</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>With just a little setup, Google analytics can track keywords and phrases entered into your WordPress site&#8217;s search box. By default, your search results will show up as regular page views which look something like <code>/?s=Search Term&amp;submit=Search</code>. Using GA&#8217;s Site Search Tracking feature, however, you can filter these terms into the Behavior &gt; Site Search section of the reporting interface in order to gain deeper insight into what your visitors search for on your site.</p>
<h2>Set it up</h2>
<p><a href="https://i0.wp.com/scottnelle.com/wp-content/uploads/sites/5/2016/09/Screen-Shot-2016-09-06-at-5.43.29-PM.png?ssl=1"><img data-recalc-dims="1" fetchpriority="high" decoding="async" class="wp-image-860 size-medium alignright" src="https://i0.wp.com/scottnelle.com/wp-content/uploads/sites/5/2016/09/Screen-Shot-2016-09-06-at-5.43.29-PM.png?resize=300%2C227&#038;ssl=1" alt="" width="300" height="227" srcset="https://i0.wp.com/scottnelle.com/wp-content/uploads/sites/5/2016/09/Screen-Shot-2016-09-06-at-5.43.29-PM.png?resize=300%2C227&amp;ssl=1 300w, https://i0.wp.com/scottnelle.com/wp-content/uploads/sites/5/2016/09/Screen-Shot-2016-09-06-at-5.43.29-PM.png?w=380&amp;ssl=1 380w" sizes="(max-width: 300px) 100vw, 300px" /></a>To configure site search tracking for a WordPress site:</p>
<ol>
<li>Log in to Google Analytics and click on Admin.</li>
<li>Select the appropriate Account, Property, and View for your site at the head of their respective columns in the Admin interface.</li>
<li>In the View column, select View Settings.</li>
<li>Enable the Site Search Tracking option with the toggle switch.</li>
<li>Set the Site Search Parameter field to &#8220;<code>s</code>&#8221; which is the parameter WordPress uses for search terms.</li>
<li>Optionally, check &#8220;Strip query parameters out of URL.&#8221; This will make all searches show up in analytics with the same URL (&#8220;/?s=Search Term&amp;submit=Search&#8221; by default,) making it easier to track total search volume in your other reporting views.</li>
<li>Click Save to finish!</li>
</ol>
<p>Now search data will be parsed out into the Site Search interface for all future traffic.</p>
<h2>Advanced use</h2>
<p>If you have a custom search form which filters using default or custom taxonomies, you can get further insight into visitors&#8217; search habits on your site using Site Search Categories. In the same interface, enable Site Search Categories and enter a comma separated list of any taxonomy identifiers which may appear in your search queries. These identifiers will be the <code>query_var</code> for the taxonomy. For a custom taxonomy this is likely the taxonomy name, unless you&#8217;ve specifically replaced it. For tags and Categories it will be &#8220;tag&#8221; and &#8220;category_name&#8221; respectively. Again, you can optionally check &#8220;Strip category parameters out of URL&#8221; to keep all of your searches tracking as a single URL.</p>
<p>Now that you&#8217;re tracking your search terms, check out <a href="https://support.google.com/analytics/answer/1032402">Google&#8217;s advice for interpreting it</a>. To paraphrase my buddy Gahlord, <a href="http://thoughtfaucet.com/insight/">analytics data is only useful if you&#8217;re using it to make decisions</a>.</p>
<p>The post <a href="https://scottnelle.com/857/site-search-wordpress-google-analytics/">Site search tracking for WordPress with Google Analytics</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">857</post-id>	</item>
		<item>
		<title>Remove the tag cloud from the taxonomy edit screen</title>
		<link>https://scottnelle.com/820/remove-the-tag-cloud-from-the-taxonomy-edit-screen/</link>
		
		<dc:creator><![CDATA[Scott Nellé]]></dc:creator>
		<pubDate>Fri, 25 Mar 2016 16:49:11 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://scottnelle.com/?p=820</guid>

					<description><![CDATA[<p>In the WordPress admin taxonomy edit screen, Tags and any hierarchical custom taxonomies include a tag cloud of &#8220;Popular Items&#8221; in the left column above the Add Term form. I find this feature useless in most cases, particularly on a &#8230; <a href="https://scottnelle.com/820/remove-the-tag-cloud-from-the-taxonomy-edit-screen/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<p>The post <a href="https://scottnelle.com/820/remove-the-tag-cloud-from-the-taxonomy-edit-screen/">Remove the tag cloud from the taxonomy edit screen</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img data-recalc-dims="1" decoding="async" class="alignnone size-full wp-image-821" src="https://i0.wp.com/scottnelle.mightyworker.net/wp-content/uploads/sites/5/2016/03/Screen-Shot-2016-03-25-at-12.24.45-PM.png?resize=584%2C277" alt="Screen Shot 2016-03-25 at 12.24.45 PM" width="584" height="277" srcset="https://i0.wp.com/scottnelle.com/wp-content/uploads/sites/5/2016/03/Screen-Shot-2016-03-25-at-12.24.45-PM.png?w=817&amp;ssl=1 817w, https://i0.wp.com/scottnelle.com/wp-content/uploads/sites/5/2016/03/Screen-Shot-2016-03-25-at-12.24.45-PM.png?resize=300%2C142&amp;ssl=1 300w, https://i0.wp.com/scottnelle.com/wp-content/uploads/sites/5/2016/03/Screen-Shot-2016-03-25-at-12.24.45-PM.png?resize=768%2C365&amp;ssl=1 768w, https://i0.wp.com/scottnelle.com/wp-content/uploads/sites/5/2016/03/Screen-Shot-2016-03-25-at-12.24.45-PM.png?resize=500%2C237&amp;ssl=1 500w" sizes="(max-width: 584px) 100vw, 584px" /></p>
<p>In the WordPress admin taxonomy edit screen, Tags and any hierarchical custom taxonomies include a tag cloud of &#8220;Popular Items&#8221; in the left column above the Add Term form. I find this feature useless in most cases, particularly on a large site that may have hundreds of terms in a taxonomy.</p>
<p>Strangely, the official way to disable this tag cloud is to set the <code>popular_items</code> label to <code>null</code> when registering your taxonomy. Indeed, this is the only place the label appears to be used at all. If you&#8217;ve registered your own taxonomies and you can override that label in your code, go ahead and do that to clear up the problem. If you have taxonomies registered by a plugin or another method that is outside of your direct control, you can remove it by filtering the taxonomy arguments to unset the label. Here&#8217;s how:</p>
<pre><code class="language-php">/**
 * Remove tag cloud from taxonomy edit screen.
 */
function my_remove_popular_term_cloud( $args ) {
	$args['labels']['popular_items'] = null;
	return $args;
}
add_filter( 'register_taxonomy_args', 'my_remove_popular_term_cloud' );</code></pre>
<p>If you want to target specific taxonomies, you can check which taxonomy you&#8217;re working with by passing additional parameters to the filter:</p>
<pre><code class="language-php">/**
 * Remove tag cloud from taxonomy edit screen.
 */
function my_remove_popular_term_cloud( $args, $taxonomy ) {
	if ( 'post_tag' === $taxonomy ) {
		$args['labels']['popular_items'] = null;
	}
	return $args;
};
add_filter( 'register_taxonomy_args', 'my_remove_popular_term_cloud', 10, 2 );</code></pre>
<p>Now your taxonomy edit screens will be nice and tidy!</p>
<p>The post <a href="https://scottnelle.com/820/remove-the-tag-cloud-from-the-taxonomy-edit-screen/">Remove the tag cloud from the taxonomy edit screen</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">820</post-id>	</item>
		<item>
		<title>Find the top level parent term</title>
		<link>https://scottnelle.com/813/find-the-top-level-parent-term/</link>
		
		<dc:creator><![CDATA[Scott Nellé]]></dc:creator>
		<pubDate>Thu, 14 Jan 2016 21:00:17 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://scottnelle.com/?p=813</guid>

					<description><![CDATA[<p>Here&#8217;s a quick helper function to find the top level ancestor of a given term. If you like to organize your categories in nested fashion, this function will find the very top level parent no matter how deep down the &#8230; <a href="https://scottnelle.com/813/find-the-top-level-parent-term/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<p>The post <a href="https://scottnelle.com/813/find-the-top-level-parent-term/">Find the top level parent term</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Here&#8217;s a quick helper function to find the top level ancestor of a given term. If you like to organize your categories in nested fashion, this function will find the very top level parent no matter how deep down the term your working with is nested.</p>
<pre><code class="language-php">/**
 * Get the top level parent of a given term.
 * @param WP_Term|int The term who's ancestors we'll be tracing.
 * @param string Name of taxonomy to search. Required only if $term is an ID instead of a WP_Term object.
 * @return WP_Term|bool The top level parent of $term. If $term has no parent, return false.
 */
function get_term_progenitor( $term, $tax = 'category' ) {
	if ( is_int( $term ) ) {
		$term = get_term_by( 'id', $term, $tax );
	}

	if ( 0 == $term-&gt;parent || ! $term instanceof WP_Term ) {
		return false;
	}

	while ( $term instanceof WP_Term &amp;&amp; 0 != $term-&gt;parent ) {
		$term = get_term_by( 'id', $term-&gt;parent, $term-&gt;taxonomy );
	}
	return $term;
}
</code></pre>
<p>To use it feed in a term object or a term id and taxonomy combo to get the original ancestor of your term. If your term has no parent, it will return false. This is helpful if you need to apply a class to a whole tree of terms, for example. If your</p>
<p>It&#8217;s worth noting that this function will call <a href="https://codex.wordpress.org/Function_Reference/get_term_by"><code>get_term_by()</code></a> multiple times, and it is known to create slower database queries. If you have nested your terms more than a few levels it may be worth storing the results of this function in a persistent object cache to speed up performance.</p>
<p>The post <a href="https://scottnelle.com/813/find-the-top-level-parent-term/">Find the top level parent term</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">813</post-id>	</item>
		<item>
		<title>Enable the YouTube iframe API for embedded videos</title>
		<link>https://scottnelle.com/794/wordpress-and-the-youtube-iframe-api/</link>
		
		<dc:creator><![CDATA[Scott Nellé]]></dc:creator>
		<pubDate>Mon, 05 Oct 2015 13:35:02 +0000</pubDate>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://scottnelle.com/?p=794</guid>

					<description><![CDATA[<p>By default, videos embedded in WordPress posts are missing the enablejsapi querystring parameter that allows YouTube&#8217;s iframe API to interact with them. Fortunately you can filter the results of embedded media using the oembed_result filter. Here&#8217;s an example: function my_youtube_player_iframe_api( &#8230; <a href="https://scottnelle.com/794/wordpress-and-the-youtube-iframe-api/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<p>The post <a href="https://scottnelle.com/794/wordpress-and-the-youtube-iframe-api/">Enable the YouTube iframe API for embedded videos</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>By default, videos embedded in WordPress posts are missing the <code>enablejsapi</code> querystring parameter that allows <a href="https://developers.google.com/youtube/iframe_api_reference">YouTube&#8217;s iframe API </a>to interact with them. Fortunately you can filter the results of embedded media using the <code>oembed_result</code> filter. Here&#8217;s an example:</p>
<pre><code class="language-php">function my_youtube_player_iframe_api( $html ) {
	if ( false !== strpos( $html, 'youtube' ) ) {
		$html = str_replace( '?feature=oembed', '?feature=oembed&amp;enablejsapi=1', $html );
	}
	return $html;
}
add_filter( 'oembed_result', 'my_youtube_player_iframe_api', 10, 1 );
</code></pre>
<p>OEmbed results are cached as post meta, so once you&#8217;ve modified the output you&#8217;ll have to delete previously-cached URLs before the new filter will take effect for existing posts.</p>
<p>Once you&#8217;ve done all of that you can <a href="https://developers.google.com/youtube/iframe_api_reference#Getting_Started">configure and use the iframe API</a> to track interactions, manipulate video controls, and do anything else that the API exposes.</p>
<p>The post <a href="https://scottnelle.com/794/wordpress-and-the-youtube-iframe-api/">Enable the YouTube iframe API for embedded videos</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">794</post-id>	</item>
		<item>
		<title>Add async, defer, or other attributes to enqueued WordPress scripts</title>
		<link>https://scottnelle.com/756/async-defer-enqueued-wordpress-scripts/</link>
		
		<dc:creator><![CDATA[Scott Nellé]]></dc:creator>
		<pubDate>Wed, 19 Aug 2015 03:29:16 +0000</pubDate>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://scottnelle.mightyworker.net/?p=756</guid>

					<description><![CDATA[<p>Sometimes it&#8217;s useful to add the async or defer attributes to your script calls in order to prevent that script from blocking the rest of your page from rendering. This is particularly useful with third party scripts which you do &#8230; <a href="https://scottnelle.com/756/async-defer-enqueued-wordpress-scripts/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<p>The post <a href="https://scottnelle.com/756/async-defer-enqueued-wordpress-scripts/">Add async, defer, or other attributes to enqueued WordPress scripts</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Sometimes it&#8217;s useful to add the async or defer attributes to your script calls in order to prevent that script from blocking the rest of your page from rendering. This is particularly useful with third party scripts which you do not host in the same place as the rest of your site.</p>
<p>If you need to load an enqueued script asynchronously in WordPress, or modify the <code>&lt;script&gt;</code> element in any other way, you can use code like the following:</p>
<pre><code class="language-php">/**
 * Add async attributes to enqueued scripts where needed.
 * The ability to filter script tags was added in WordPress 4.1 for this purpose.
 */
function my_async_scripts( $tag, $handle, $src ) {
    // the handles of the enqueued scripts we want to async
    $async_scripts = array( 'some-script', 'another-script' );

    if ( in_array( $handle, $async_scripts ) ) {
        return '&lt;script type="text/javascript" src="' . $src . '" async="async"&gt;&lt;/script&gt;' . "\n";
    }

    return $tag;
}
add_filter( 'script_loader_tag', 'my_async_scripts', 10, 3 );</code></pre>
<p>The <code>script_loader_tag</code> filter was added in WordPress 4.1 for specifically this purpose. It is run whenever a script tag is generated by WordPress using the <code>wp_enqueue_script()</code> function. In this example we compare the script <code>$handle</code> against a list of known scripts that we want to load asynchronously.</p>
<p>The post <a href="https://scottnelle.com/756/async-defer-enqueued-wordpress-scripts/">Add async, defer, or other attributes to enqueued WordPress scripts</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">756</post-id>	</item>
		<item>
		<title>New Web App: Healthy Glow for Video Chat</title>
		<link>https://scottnelle.com/733/healthy-glow-web-app-for-video-chat/</link>
		
		<dc:creator><![CDATA[Scott Nellé]]></dc:creator>
		<pubDate>Tue, 23 Dec 2014 00:28:20 +0000</pubDate>
				<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">http://scottnelle.mightyworker.net/?p=733</guid>

					<description><![CDATA[<p>Video chat is a great way to communicate, but it doesn&#8217;t lend itself to the most flattering view of your face. The problem, of course, is that video chat almost always puts you in front of a large source of &#8230; <a href="https://scottnelle.com/733/healthy-glow-web-app-for-video-chat/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<p>The post <a href="https://scottnelle.com/733/healthy-glow-web-app-for-video-chat/">New Web App: Healthy Glow for Video Chat</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Video chat is a great way to communicate, but it doesn&#8217;t lend itself to the most flattering view of your face. The problem, of course, is that video chat almost always puts you in front of a large source of blue light (your computer screen) which rarely blends well with the ambient light in a dimly lit office. As an amateur photographer I&#8217;ve found myself tinkering with ways to fix the light on my face when I&#8217;m in a video call.</p>
<p>At first I just put a big orange image on the screen, which did the job nicely. However, I found that I often needed to take notes during calls, and bringing up my note taking application brought the ugly light back. So I took a few minutes to cook up a better solution.</p>
<p><a href="http://healthyglow.appdraft.net/">Healthy Glow</a> is one of the simplest web apps I can imagine, but it actually serves its purpose beautifully. It&#8217;s a big, orange text box that you can type notes into. It uses local storage so that your notes never get sent to the server and never get deleted unless your clear them (or change browsers.) No accounts, no back end, just a simple web page that addresses a very specific problem.</p>
<p>Have a look at a before and after image and I think you&#8217;ll agree that this very stupid idea of mine actually makes a significant difference:</p>
<p><div id="attachment_738" style="width: 369px" class="wp-caption alignnone"><img data-recalc-dims="1" decoding="async" aria-describedby="caption-attachment-738" class="size-full wp-image-738" src="https://i0.wp.com/scottnelle.mightyworker.net/wp-content/uploads/sites/5/2014/12/healthy-glow-before.jpg?resize=359%2C359" alt="Before: Ugly Blue Light" width="359" height="359" /><p id="caption-attachment-738" class="wp-caption-text">Before: Ugly blue light</p></div></p>
<p><div id="attachment_737" style="width: 369px" class="wp-caption alignnone"><a href="https://i0.wp.com/scottnelle.mightyworker.net/wp-content/uploads/sites/5/2014/12/healthy-glow-after.jpg"><img data-recalc-dims="1" loading="lazy" decoding="async" aria-describedby="caption-attachment-737" class="size-full wp-image-737" src="https://i0.wp.com/scottnelle.mightyworker.net/wp-content/uploads/sites/5/2014/12/healthy-glow-after.jpg?resize=359%2C359" alt="After: Healthy, warm light" width="359" height="359" /></a><p id="caption-attachment-737" class="wp-caption-text">After: Healthy, warm light</p></div></p>
<p>If you spend a lot of time in front of a webcam, please feel free to give Healthy Glow a try. I think everyone involved in your next call will agree that it casts you in a positive light (groan.)</p>
<p>The post <a href="https://scottnelle.com/733/healthy-glow-web-app-for-video-chat/">New Web App: Healthy Glow for Video Chat</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">733</post-id>	</item>
		<item>
		<title>New Plugin: Custom Related Products for WooCommerce</title>
		<link>https://scottnelle.com/720/wordpress-plugin-custom-related-products-woocommerce/</link>
					<comments>https://scottnelle.com/720/wordpress-plugin-custom-related-products-woocommerce/#comments</comments>
		
		<dc:creator><![CDATA[Scott Nellé]]></dc:creator>
		<pubDate>Tue, 02 Dec 2014 18:32:28 +0000</pubDate>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WooCommerce]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://scottnelle.mightyworker.net/?p=720</guid>

					<description><![CDATA[<p>I don&#8217;t think I&#8217;ve ever built a WooCommerce site where the client didn&#8217;t ask: &#8220;How do I pick which related products to display.&#8221; The answer has always been &#8220;You don&#8217;t; the system randomly picks products from the same category.&#8221; No &#8230; <a href="https://scottnelle.com/720/wordpress-plugin-custom-related-products-woocommerce/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<p>The post <a href="https://scottnelle.com/720/wordpress-plugin-custom-related-products-woocommerce/">New Plugin: Custom Related Products for WooCommerce</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>I don&#8217;t think I&#8217;ve ever built a WooCommerce site where the client didn&#8217;t ask: &#8220;How do I pick which related products to display.&#8221; The answer has always been &#8220;You don&#8217;t; the system randomly picks products from the same category.&#8221; No client has ever been happy with that answer.</p>
<p>Now I&#8217;m happy to say I&#8217;ll never have to give that answer again, and neither will you! My latest plugin, <a href="https://wordpress.org/plugins/custom-related-products-for-woocommerce/">Custom Related Products for WooCommerce</a>, replaces the default related products functionality in WooCommerce. With the plugin activated, edit any product and click the &#8220;Linked Products&#8221; tab. In addition to Cross-sells and Upsells, you&#8217;ll now have a Related Products box. As long as you&#8217;re using a default related products implementation, the plugin will work automatically to show the products you selected in the Related Products list at the bottom of the detail view, no theme updates required.</p>
<h2>Get it!</h2>
<p>You can <a href="https://wordpress.org/plugins/custom-related-products-for-woocommerce/">download Custom Related Products for WooCommerce from WordPress.org</a> or install it from the Add New Plugins page in your admin starting today. If you have suggestions for changes, you can <a href="https://github.com/scottnelle/custom-related-products-for-woocommerce">fork the plugin and submit pull requests with GitHub</a>.</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone size-full wp-image-721" src="https://i0.wp.com/scottnelle.mightyworker.net/wp-content/uploads/sites/5/2014/12/custom-related-products.png?resize=584%2C299" alt="custom-related-products" width="584" height="299" /></p>
<p>The post <a href="https://scottnelle.com/720/wordpress-plugin-custom-related-products-woocommerce/">New Plugin: Custom Related Products for WooCommerce</a> appeared first on <a href="https://scottnelle.com">ScottNellé.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://scottnelle.com/720/wordpress-plugin-custom-related-products-woocommerce/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">720</post-id>	</item>
	</channel>
</rss>
