<?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/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>WordPress - Ryan Daniels</title>
	<atom:link href="https://ryandaniels.ca/blog/category/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>https://ryandaniels.ca/blog/category/wordpress/</link>
	<description></description>
	<lastBuildDate>Thu, 25 Aug 2022 01:59:17 +0000</lastBuildDate>
	<language>en-CA</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://ryandaniels.ca/wp-content/uploads/2019/07/img_5907-small-blur-square-100x100.jpg</url>
	<title>WordPress - Ryan Daniels</title>
	<link>https://ryandaniels.ca/blog/category/wordpress/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">22628916</site>	<item>
		<title>Buttons in WordPress 5.3</title>
		<link>https://ryandaniels.ca/blog/buttons-in-wordpress-5-3/</link>
		
		<dc:creator><![CDATA[Ryan Daniels]]></dc:creator>
		<pubDate>Thu, 19 Dec 2019 02:14:00 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Guide]]></category>
		<guid isPermaLink="false">https://ryandaniels.ca/?p=1975</guid>

					<description><![CDATA[<p><a href="https://ryandaniels.ca/blog/buttons-in-wordpress-5-3/"><img src="https://ryandaniels.ca/wp-content/uploads/2019/12/wordpress_buttons-300x189.png" alt="buttons" class="alignleft size-thumbnail wp-image-2000"/></a>Buttons Everywhere! But not just normal buttons.. These are some cool buttons. Buttons from a simpler time perhaps.<br />
&#160;<br />
&#160;</p>
<p>The post <a href="https://ryandaniels.ca/blog/buttons-in-wordpress-5-3/">Buttons in WordPress 5.3</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="542" height="341" src="https://ryandaniels.ca/wp-content/uploads/2019/12/wordpress_buttons.png" alt="buttons" class="wp-image-2000" srcset="https://ryandaniels.ca/wp-content/uploads/2019/12/wordpress_buttons.png 542w, https://ryandaniels.ca/wp-content/uploads/2019/12/wordpress_buttons-300x189.png 300w" sizes="(max-width: 542px) 100vw, 542px" /></figure>



<p>WordPress 5.3 has buttons! Wait, we had buttons before.. so what&#8217;s special about these buttons?</p>



<p>You tell me. Take a look for yourself.</p>



<h2 class="wp-block-heading">Old Buttons</h2>



<p>You could change the background and text colour. And you could also change whether the button is an &#8220;outline&#8221; or &#8220;fill&#8221; style.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-1 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-button is-style-outline is-style-outline--1"><a class="wp-block-button__link">This is an OLD button</a></div>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link">This is an OLD button</a></div>
</div>
</div>
</div></div>
</div></div>



<h2 class="wp-block-heading">New Buttons in WordPress 5.3</h2>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-2 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-text-color has-background-color has-background no-border-radius has-vivid-cyan-blue-to-vivid-purple-gradient-background">This is a new button</a></div>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-text-color has-background-color has-background has-light-green-cyan-to-vivid-green-cyan-gradient-background">This is a new button</a></div>
</div>
</div>
</div></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-text-color has-background-color has-background has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background" style="border-radius:10px">This is a new button</a></div>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-text-color has-background-color has-background has-luminous-vivid-orange-to-vivid-red-gradient-background" style="border-radius:10px">This is a new button</a></div>
</div>
</div>
</div></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-4 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-text-color has-background-color has-background has-very-light-gray-to-cyan-bluish-gray-gradient-background" style="border-radius:25px">This is a new button</a></div>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-text-color has-background-color has-background has-cool-to-warm-spectrum-gradient-background" style="border-radius:25px">This is a new button</a></div>
</div>
</div>
</div></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-5 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-text-color has-background-color has-background has-blush-light-purple-gradient-background" style="border-radius:35px">This is a new button</a></div>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-text-color has-background-color has-background has-blush-bordeaux-gradient-background" style="border-radius:35px">This is a new button</a></div>
</div>
</div>
</div></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-6 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-text-color has-primary-color has-background has-luminous-dusk-gradient-background" href="https://ryandaniels.ca/404-error/" style="border-radius:50px">Sign My Guestbook!!!</a></div>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-text-color has-background-color has-background has-pale-ocean-gradient-background" style="border-radius:50px">This is a new button</a></div>
</div>
</div>
</div></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-text-color has-background-color has-background has-electric-grass-gradient-background" style="border-radius:5px">This is a new button</a></div>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-text-color has-background-color has-background has-midnight-gradient-background" style="border-radius:5px">This is a new button</a></div>
</div>
</div>
</div></div>



<p>The new buttons have colour gradients. Okay, I guess that&#8217;s not very exciting after all. However, they do remind me of a <a rel="noreferrer noopener" aria-label="simpler time (opens in a new tab)" href="https://www.spacejam.com/archive/spacejam/movie/jam.htm" target="_blank">simpler time</a>.</p>



<p>If you want to use these buttons just open up a post or page (in the WordPress Gutenberg Block Editor). Then add a new block called &#8220;Button&#8221;. Buttons are pure magic!</p>



<div class="wp-block-button aligncenter is-style-outline is-style-outline--2"><a class="wp-block-button__link" href="https://ryandaniels.ca/blog/guide-to-wordpress-static-site/">This button makes WordPress faster!</a></div>



<h2 class="wp-block-heading">Future</h2>



<p>What&#8217;s in the future for WordPress? <br>I&#8217;m voting for the <blink>&lt;blink&gt;</blink> <a rel="noreferrer noopener" aria-label="element (opens in a new tab)" href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blink" target="_blank">element</a>.</p>



<p style="font-size:11px">Netscape Now button <a href="http://www.hoary.org/now/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Image Credit</a></p>



<div class="wp-block-image"><figure class="alignright size-large"><img decoding="async" width="88" height="31" src="https://ryandaniels.ca/wp-content/uploads/2019/12/netscape.gif" alt="Netscape Now! button" class="wp-image-2006"/></figure></div>



<style>
blink {
  -webkit-animation: 1s linear infinite condemned_blink_effect; // for Safari 4.0 - 8.0
  animation: 1s linear infinite condemned_blink_effect;
}
@-webkit-keyframes condemned_blink_effect { // for Safari 4.0 - 8.0
  0% {
    visibility: hidden;
  }
  50% {
    visibility: hidden;
  }
  100% {
    visibility: visible;
  }
}
@keyframes condemned_blink_effect {
  0% {
    visibility: hidden;
  }
  50% {
    visibility: hidden;
  }
  100% {
    visibility: visible;
  }
}
</style>
<p>The post <a href="https://ryandaniels.ca/blog/buttons-in-wordpress-5-3/">Buttons in WordPress 5.3</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1975</post-id>	</item>
		<item>
		<title>How To Set Up And Customize WordPress Twenty Twenty Theme</title>
		<link>https://ryandaniels.ca/blog/set-up-customize-wordpress-twenty-twenty/</link>
		
		<dc:creator><![CDATA[Ryan Daniels]]></dc:creator>
		<pubDate>Sun, 15 Dec 2019 14:04:00 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Guide]]></category>
		<category><![CDATA[WordPress How To]]></category>
		<guid isPermaLink="false">https://ryandaniels.ca/?p=1823</guid>

					<description><![CDATA[<p><a href="https://ryandaniels.ca/blog/set-up-customize-wordpress-twenty-twenty/"><img src="https://ryandaniels.ca/wp-content/uploads/2019/12/cosmic_fonts-268x300.jpg" alt="Phenomenal Cosmic Fonts! Itty Bitty Living Space." class="alignleft size-thumbnail wp-image-1859"/></a>WordPress 5.3 has a new default theme called Twenty Twenty. Like all new things on the web, we get more space around everything. We also get MASSIVE fonts! Along with a narrow area to show all the text content, and embedded fonts which waste bandwidth. It's not all bad though. And we can fix it!<br />
&#160;<br />
&#160;</p>
<p>The post <a href="https://ryandaniels.ca/blog/set-up-customize-wordpress-twenty-twenty/">How To Set Up And Customize WordPress Twenty Twenty Theme</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="536" height="600" src="https://ryandaniels.ca/wp-content/uploads/2019/12/cosmic_fonts.jpg" alt="WordPress Twenty Twenty theme - Phenomenal Cosmic Fonts! Itty Bitty Living Space." class="wp-image-1859" srcset="https://ryandaniels.ca/wp-content/uploads/2019/12/cosmic_fonts.jpg 536w, https://ryandaniels.ca/wp-content/uploads/2019/12/cosmic_fonts-268x300.jpg 268w" sizes="(max-width: 536px) 100vw, 536px" /><figcaption class="wp-element-caption">Image Credit: Disney/Aladdin</figcaption></figure></div>


<p>WordPress 5.3 has a new default theme called Twenty Twenty. Like all new things on the web, we get more space around everything. <br>But what else is new? We also get <strong>MASSIVE</strong> fonts! I&#8217;m talking <strong>GIGANTIC</strong>. Stand across the room and still read this kind of huge. Also, by default it gives you a narrow area to show all the content, and embedded fonts which waste bandwidth. Insert sad face here.</p>



<span id="more-1823"></span>



<p>TL;DR: The WordPress Twenty Twenty Theme is pretty good. But it has too much empty space around everything, a tiny width for the content area by default, and <strong>ENORMOUS</strong> fonts! But we can fix it!</p>



<h2 class="wp-block-heading" id="what">What is it?</h2>



<p>The new <a rel="noreferrer noopener" aria-label="Twenty Twenty theme (opens in a new tab)" href="https://wordpress.org/themes/twentytwenty/" target="_blank">Twenty Twenty theme</a> is simple and focuses on usability in the WordPress <a rel="noreferrer noopener" href="https://wordpress.org/gutenberg/" target="_blank">Gutenberg Block Editor</a>. </p>



<p><a rel="noreferrer noopener" href="https://kinsta.com/blog/twenty-twenty-theme/" target="_blank">Kinsta has a nice write-up for the new theme</a>. Check that out for some high level details about Twenty Twenty. As they put it: </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>&#8220;Twenty Twenty is a minimalist WordPress theme, with a single column layout.&#8221;</p>
</blockquote>



<h2 class="wp-block-heading" id="problem">Problem</h2>



<p>Single column layout.. with a very narrow column for text. Not ideal. Actually, most Gutenberg Blocks that I&#8217;ve tried can&#8217;t be changed to wide. So text and most other Blocks are using a single narrow column. That&#8217;s unfortunate.</p>



<p>The great thing about WordPress is it let&#8217;s you customize pretty much anything. So if you choose to use the new Twenty Twenty theme, you can improve it! That is, if you have the patience and/or skill.</p>



<p>In case you were wondering, this website is now using the new WordPress Twenty Twenty theme. It had a few modifications done to change things I didn&#8217;t like. Overall, it is a well done theme. But let&#8217;s just say there is room for improvement. Mainly the large fonts, the white space around everything, and the narrow area to display text and most content. Yes I could make certain blocks &#8220;wide&#8221; in the Block Editor. But not text, and I don&#8217;t want to bother with changing so many blocks.</p>



<p>Continue reading for my guide to improve WordPress Twenty Twenty. <br>If you don&#8217;t want to make all the changes manually, you can use my <a href="https://github.com/ryandaniels/wp-twentytwenty-child-tiny" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">project on GitHub</a> as a template to get started. </p>



<p>Note: Some of this will be technical and require you to edit CSS and PHP files. Be careful! It&#8217;s good to have some experience with WordPress.</p>



<h2 class="wp-block-heading" id="summary">Summary of what we will improve</h2>



<ul class="wp-block-list"><li><a href="#Reduce-Heading-Twenty-Twenty-font-size">Reduce heading font size</a></li><li><a href="#Reduce-space-around-headings">Reduce space around headings</a></li><li><a href="#Increase-width-of-text-areas">Increase width of text areas</a></li><li><a href="#Remove-Tags-from-bottom-of-Blog">Remove Tags from bottom of Blog and Archive Page</a></li><li><a href="#Delete-Category-from-top">Delete Category from top of Blog Page and Posts</a></li><li><a href="#Remove-Excerpt-from-Post">Remove Excerpt from Blog Page</a></li><li><a href="#Delete-embedded-fonts">Delete embedded fonts</a></li><li><a href="#Remove-Twenty-Twenty-2.0-new-font-Noto-Serif">Remove Twenty Twenty 2.0 new font &#8211; Noto Serif</a></li></ul>



<p>Here are a few before and after screenshots of these changes from one of my previous posts. Images are reduced by 50% (on a 1080p monitor).</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-before_top.png" rel="lightbox[1823]"><img loading="lazy" decoding="async" width="960" height="507" data-id="1881" src="https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-before_top.png" alt="Before Changes - Top of Post" class="wp-image-1881" srcset="https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-before_top.png 960w, https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-before_top-800x423.png 800w, https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-before_top-300x158.png 300w, https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-before_top-768x406.png 768w" sizes="auto, (max-width: 960px) 100vw, 960px" /></a><figcaption class="wp-element-caption">Before Changes &#8211; Top of Post</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-after_top.png" rel="lightbox[1823]"><img loading="lazy" decoding="async" width="960" height="507" data-id="1882" src="https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-after_top.png" alt="After Changes - Top of Post" class="wp-image-1882" srcset="https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-after_top.png 960w, https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-after_top-800x423.png 800w, https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-after_top-300x158.png 300w, https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-after_top-768x406.png 768w" sizes="auto, (max-width: 960px) 100vw, 960px" /></a><figcaption class="wp-element-caption">After Changes &#8211; Top of Post</figcaption></figure>
<figcaption class="blocks-gallery-caption wp-element-caption">Before and After changes &#8211; Top of Post</figcaption></figure>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-before_body.png" rel="lightbox[1823]"><img loading="lazy" decoding="async" width="960" height="507" data-id="1883" src="https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-before_body.png" alt="Before Changes - Body of Post" class="wp-image-1883" srcset="https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-before_body.png 960w, https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-before_body-800x423.png 800w, https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-before_body-300x158.png 300w, https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-before_body-768x406.png 768w" sizes="auto, (max-width: 960px) 100vw, 960px" /></a><figcaption class="wp-element-caption">Before Changes &#8211; Body of Post</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-after_body.png" rel="lightbox[1823]"><img loading="lazy" decoding="async" width="960" height="507" data-id="1884" src="https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-after_body.png" alt="After Changes - Body of Post" class="wp-image-1884" srcset="https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-after_body.png 960w, https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-after_body-800x423.png 800w, https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-after_body-300x158.png 300w, https://ryandaniels.ca/wp-content/uploads/2019/12/fix_wordpress_twenty_twenty-after_body-768x406.png 768w" sizes="auto, (max-width: 960px) 100vw, 960px" /></a><figcaption class="wp-element-caption">After Changes &#8211; Body of Post</figcaption></figure>
<figcaption class="blocks-gallery-caption wp-element-caption">Before and After changes &#8211; Body of Post</figcaption></figure>



<p>Where did all the empty space go! So much better!<br>Okay, let&#8217;s get started.</p>



<h2 class="wp-block-heading" id="Setup-Twenty-Twenty-Child-Theme">Setup Twenty Twenty Child Theme</h2>



<p>First, <a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="https://developer.wordpress.org/themes/advanced-topics/child-themes/" target="_blank">create a child theme</a> for Twenty Twenty. Then add everything below into your child theme.<br>As previously mentioned, if you don&#8217;t want to do this manually <a href="https://github.com/ryandaniels/wp-twentytwenty-child-tiny" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">check out my project on GitHub</a>. It has everything that I discuss in this post!</p>



<h2 class="wp-block-heading" id="Reduce-Heading-Twenty-Twenty-font-size">Reduce WordPress Twenty Twenty heading font size</h2>



<p>If the font size of the headings in the new theme bothers you. Let&#8217;s change it!</p>



<p>In your child theme <code>style.css</code>, or the CSS editor in WordPress (In Customizer, go to Additional CSS), add the following. If the font is still too large, reduce 6.4 and 4.4, etc even more.<br>This will only modify headings, on &#8220;wide&#8221; screens (non-mobile).</p>



<pre class="wp-block-code"><code>/* Smaller Heading Font please */
@media (min-width: 700px) {
  h1, .heading-size-1 { font-size: 6.4rem; }
  h2, .heading-size-2 { font-size: 4.4rem; }
  h3, .heading-size-3 { font-size: 3.8rem; }
  h4, .heading-size-4 { font-size: 3.2rem; }
}</code></pre>



<p>Also copy your <code>style.css</code> to <code>style-rtl.css</code>.</p>



<h2 class="wp-block-heading" id="Reduce-space-around-headings">Reduce space around headings</h2>



<p>Next up, we will trim some of the extra space around the top of pages, posts, widgets, and the footer.</p>



<p>Again, in your child theme <code>style.css</code> (and <code>style-rtl.css</code>), or the CSS editor in WordPress, add the following. </p>



<pre class="wp-block-code"><code>/* Reduce white space around stuff */
@media (min-width: 700px) {
  .widget .widget-title { margin-bottom: 2rem; }
  .post-inner { padding-top: 3rem; }
  .footer-widgets-outer-wrapper { padding: 3rem 0; }
  #site-footer { padding: 3rem 0; }
}
.singular .entry-header {
  padding: 2rem 0;
}
body:not(.singular) main &gt; article:first-of-type {
  padding: 2rem 0 0;
}
.archive-header {
  padding: 2rem 0;
}
.error404 #site-content {
  padding-top: 2rem;
}</code></pre>



<h2 class="wp-block-heading" id="Increase-width-of-text-areas">Increase width of text areas</h2>



<p>The Twenty Twenty Theme uses a narrow template. Some blocks can be changed to &#8220;wide&#8221; but not text. If you don&#8217;t like the narrow text area or don&#8217;t want to manually change blocks in WordPress, then this change is pretty easy. You can change this right in the WordPress Admin area using &#8220;Bulk Actions&#8221;.<br>Make this change to both Pages and Posts if you want wide areas in both by default.</p>



<div class="wp-block-media-text alignwide has-media-on-the-right is-stacked-on-mobile"><div class="wp-block-media-text__content">
<ol class="wp-block-list"><li>In the Admin Area, go to Pages.</li><li>Select (with check box) all Pages you want to change.</li><li>Click the &#8220;Bulk Actions&#8221; drop down box, then &#8220;Edit&#8221; and finally Apply.</li><li>Beside Template, click the drop down box and select: &#8220;Full Width Template&#8221;</li><li>Click &#8220;Update&#8221;</li></ol>
</div><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="748" height="473" src="https://ryandaniels.ca/wp-content/uploads/2019/12/wordpress_twenty_twenty_increase_width.png" alt="WordPress Twenty Twenty Increase Width of Posts &amp; Pages with Bulk Editor" class="wp-image-1844 size-full" srcset="https://ryandaniels.ca/wp-content/uploads/2019/12/wordpress_twenty_twenty_increase_width.png 748w, https://ryandaniels.ca/wp-content/uploads/2019/12/wordpress_twenty_twenty_increase_width-300x190.png 300w" sizes="auto, (max-width: 748px) 100vw, 748px" /></figure></div>



<p>Repeat the same steps for your Posts using the Bulk Editor.<br>Remember that any new Post or Page will need this changed.</p>



<h2 class="wp-block-heading" id="Remove-Tags-from-bottom-of-Blog">Remove Tags from bottom of Blog and Archive Page</h2>



<p>This change will eliminate the list of tags used in a post from the bottom of the Blog Page and also the Archive Page for every post.</p>



<p>Again, in your child theme <code>style.css</code> (and <code>style-rtl.css</code>), or the CSS editor in WordPress, add the following. </p>



<pre class="wp-block-code"><code>/* Hide Tags from Blog page */
.blog .post-tags.meta-wrapper {
  display: none;
}
/* Hide Tags from Archive page */
.archive .post-tags.meta-wrapper {
  display: none;
}</code></pre>



<h2 class="wp-block-heading" id="Delete-Category-from-top">Delete Category from top of Blog Page and Posts</h2>



<p>I don&#8217;t like having the category at the top of the Blog Page and at the top of the post. So let&#8217;s remove it! It&#8217;s pretty easy actually. <br>Just edit your <code>functions.php</code> file to add this:</p>



<pre class="wp-block-code"><code>add_filter('twentytwenty_show_categories_in_entry_header', '__return_false');</code></pre>



<h2 class="wp-block-heading" id="Remove-Excerpt-from-Post">Remove Excerpt from Post</h2>



<p>WordPress Twenty Twenty wants to show an except at the top of every post. That&#8217;s a problem for me. All of my previous posts have an excerpt that&#8217;s shown on the Blog Page. I want to keep that, but remove the excerpt from the top of the Post. Maybe some day they will add an option for that. Until then, we need to fix it our self.<br>To change this, copy the file <code>template-parts/entry-header.php</code> into your child theme and edit line 59 to add <code>&amp;&amp; false</code> like so:</p>



<pre class="wp-block-code"><code>if ( has_excerpt() &amp;&amp; is_singular() &amp;&amp; false ) {</code></pre>



<p>This will always evaluate the if statement to false.<br>Another option is to just remove that section of code.</p>



<p>Don&#8217;t forget, <a href="https://github.com/ryandaniels/wp-twentytwenty-child-tiny" target="_blank" rel="noreferrer noopener" aria-label="there's a project on GitHub (opens in a new tab)">there&#8217;s a project on GitHub</a> with all of these changes already done. So you can use that for reference.</p>



<h2 class="wp-block-heading" id="Delete-embedded-fonts">Delete embedded fonts</h2>



<p>The WordPress Twenty Twenty theme has embedded fonts that can&#8217;t be easily removed (yet).</p>



<p>Why remove the fonts? Because it adds 450kb of unneeded files to your website. Speed is important for a website. A smaller site is a faster site, and a faster site is always good! Don&#8217;t believe me? Ask any search engine that question.<br>Side note: Want to know more about making WordPress faster? Check out the <a href="https://ryandaniels.ca/blog/guide-to-wordpress-static-site/">Guide to WordPress as a Static Site</a>. And also this great post by <a rel="noreferrer noopener" aria-label="Mark S (opens in a new tab)" href="https://markosaric.com/speed-up-wordpress/" target="_blank">Mark Saric</a>.</p>



<p>Back to the fonts. Until <a rel="noreferrer noopener" aria-label="this issue (opens in a new tab)" href="https://core.trac.wordpress.org/ticket/48630" target="_blank">this issue</a> is resolved, the easiest work-around to remove the included font is to zero out the file. To do this, log in to your web server where WordPress runs. Go to the Twenty Twenty main theme and empty the font files.</p>



<pre class="wp-block-code"><code>$ cd ~/wp-content/themes/twentytwenty/assets/fonts/inter
$ &gt; Inter-italic-var.woff2
$ &gt; Inter-upright-var.woff2</code></pre>



<p><strong>This isn&#8217;t a very good option since the files will be restored when the theme is updated</strong>. Let&#8217;s hope that issue is fixed soon so it can be removed properly.</p>



<p>Another option is to edit the main Twenty Twenty theme&#8217;s style.css and style-rtl.css, but <strong>this is also not a good option since changes there will be overwritten when the theme is updated</strong>.</p>



<pre class="wp-block-code"><code>$ cd ~/wp-content/themes/twentytwenty/
$ sed -i 's,src: url(./assets/fonts/inter/Inter-upright-var.woff2) format("woff2");,,g' style*.css
$ sed -i 's,src: url(./assets/fonts/inter/Inter-italic-var.woff2) format("woff2");,,g' style*.css</code></pre>



<p>This removes the fonts from being embedded, on lines <a href="https://core.trac.wordpress.org/browser/branches/5.4/src/wp-content/themes/twentytwenty/style.css#L265" target="_blank" rel="noreferrer noopener">265</a> and <a href="https://core.trac.wordpress.org/browser/branches/5.4/src/wp-content/themes/twentytwenty/style.css#L273" target="_blank" rel="noreferrer noopener">273</a> (for current version of the theme in WordPress 5.4) of your style.css and style-rtl.css files.</p>



<h2 class="wp-block-heading" id="Remove-Twenty-Twenty-2.0-new-font-Noto-Serif">Remove Twenty Twenty 2.0 new font &#8211; Noto Serif</h2>



<p>The update for Twenty Twenty 2.0 <a href="https://themes.trac.wordpress.org/changeset?old_path=%2Ftwentytwenty%2F1.9&amp;old=174617&amp;new_path=%2Ftwentytwenty%2F2.0&amp;new=174617&amp;sfp_email=&amp;sfph_mail=#file36" target="_blank" rel="noreferrer noopener">added a new font</a> which is much larger than the previous font. And this is used because the above bloated embedded fonts are removed!</p>



<p>To remove this new font, called &#8220;Noto Serif&#8221;, edit your child theme <code>style.css</code> to add:</p>



<pre class="wp-block-code"><code>.entry-content {
  font-family: NonBreakingSpaceOverride, "Hoefler Text", Garamond, "Times New Roman", serif;
  letter-spacing: normal;
}</code></pre>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Now you have customized the Twenty Twenty theme! </p>



<p>It&#8217;s now easier to read and navigate because the headings don&#8217;t take up the entire page and your text isn&#8217;t squished into a tiny space. Goodbye massive fonts! The category was removed from the top, tags were removed from certain pages, and the excerpt is also gone from the top of every post! Lastly, it is also faster because the embedded fonts are removed.</p>



<p>Want to know more about making your WordPress website even faster? Check out the <a href="https://ryandaniels.ca/blog/guide-to-wordpress-static-site/">Guide to WordPress as a Static Site</a>.</p>
<p>The post <a href="https://ryandaniels.ca/blog/set-up-customize-wordpress-twenty-twenty/">How To Set Up And Customize WordPress Twenty Twenty Theme</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1823</post-id>	</item>
		<item>
		<title>Guide to WordPress as a Static Site</title>
		<link>https://ryandaniels.ca/blog/guide-to-wordpress-static-site/</link>
		
		<dc:creator><![CDATA[Ryan Daniels]]></dc:creator>
		<pubDate>Sat, 13 Jul 2019 18:21:41 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Guide]]></category>
		<category><![CDATA[WordPress How To]]></category>
		<category><![CDATA[WordPress Security]]></category>
		<guid isPermaLink="false">https://ryandaniels.ca/?p=1672</guid>

					<description><![CDATA[<p><a href="https://ryandaniels.ca/blog/guide-to-wordpress-static-site/"><img class="alignleft size-thumbnail wp-image-1684" src="https://ryandaniels.ca/wp-content/uploads/2019/07/fast_motorcycle-300x145.jpg" alt="WordPress static html fast like this motorcycle" width="300" height="145" /></a>Running your own WordPress site can have it's challenges. What if you could have all the benefits of WordPress, and also all the benefits of a static site? WordPress as a static site is the answer.</p>
<p>The post <a href="https://ryandaniels.ca/blog/guide-to-wordpress-static-site/">Guide to WordPress as a Static Site</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="wp-image-1684 size-full aligncenter" src="https://ryandaniels.ca/wp-content/uploads/2019/07/fast_motorcycle.jpg" alt="WordPress static html fast like this motorcycle" width="1280" height="617" srcset="https://ryandaniels.ca/wp-content/uploads/2019/07/fast_motorcycle.jpg 1280w, https://ryandaniels.ca/wp-content/uploads/2019/07/fast_motorcycle-300x145.jpg 300w, https://ryandaniels.ca/wp-content/uploads/2019/07/fast_motorcycle-800x386.jpg 800w, https://ryandaniels.ca/wp-content/uploads/2019/07/fast_motorcycle-768x370.jpg 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></p>
<p>Running your own WordPress site can have it&#8217;s challenges. What if you could have all the benefits of WordPress, and also all the benefits of a static site? WordPress as a static site is the answer.</p>
<p>Why static HTML files? There are many benefits when serving your website as static HTML files. Here are just a few reasons:</p>
<ul>
<li>Speed &#8211; Static HTML files are much faster than generating a dynamic website on every page load. Page load times are so much faster!</li>
<li>Security &#8211; Avoid security issues that come with PHP and WordPress Plugins since there&#8217;s no way to access PHP or the Plugins.</li>
<li>Cost &#8211; Save money. You need a smaller server to host your website since less memory is required when using only HTML files.</li>
</ul>
<p>You could create a static site using a static website generator such as Jekyll, Hugo, or Pelican. But what if you already use WordPress? Or you like all the flexibility WordPress can give you?</p>
<p>A WordPress Plugin called <a href="https://wordpress.org/plugins/simply-static/" target="_blank" rel="noopener noreferrer">Simply Static</a> can turn your dynamic WordPress site into static HTML pages.</p>
<p>This lets you use your WordPress site as a development site. When changes or a new post is ready, run Simply Static to generate the static HTML files. Then your main site is just static HTML files.</p>
<p>Certain types of websites will be better as a WordPress static site. Others may not.</p>
<p>This <a href="https://www.brianshim.com/webtricks/wordpress-static-site-generator/" target="_blank" rel="noopener noreferrer">great post by Brian Shim</a> with more benefits and drawbacks is worth checking out.<br />
The main problem when turning WordPress into static HTML files is that anything dynamic will no longer work! If you&#8217;re not okay with that, there are a few fixes.</p>
<p>To build on Brian&#8217;s article, this was my experience and some workarounds for a short guide to WordPress as a Static Site.</p>
<p>Spoiler Alert: This site is using WordPress converted to static HTML files. It has been for the past 7 months. It&#8217;s really not that hard to set up if you have some experience with WordPress!</p>
<h2>How to setup WordPress as a Static Site</h2>
<p>As previously mentioned, follow this <a href="https://www.brianshim.com/webtricks/wordpress-static-site-generator/" target="_blank" rel="noopener noreferrer">great post by Brian Shim</a> first. Then follow these steps to create a WordPress static site.</p>
<h3>Site Search</h3>
<p>To get search working on your static WordPress site, check out my previous post: <a href="https://ryandaniels.ca/blog/wordpress-search-using-duckduckgo/">WordPress Search using DuckDuckGo</a>.</p>
<p>Then, add to Simply Static&#8217;s &#8220;URLs to Exclude&#8221;:<br />
<code>https://dev.example.com/search</code><br />
<code>https://dev.example.com/search/.*</code></p>
<ul>
<li>Check the option: <code><input checked="checked" disabled="disabled" name="excludable[3][do_not_follow]" type="checkbox" value="1" />Do not save </code></li>
<li>Check the option: <code><input checked="checked" disabled="disabled" name="excludable[3][do_not_save]" type="checkbox" value="1" />Do not follow </code></li>
</ul>
<h3>WordPress Permalinks</h3>
<p>Plain <a href="https://wordpress.org/support/article/using-permalinks/" target="_blank" rel="noopener noreferrer">WordPress Permalinks</a> are a problem (previously known as Ugly Permalinks). A normal dynamic WordPress site will figure out what to do with them by performing a database lookup. WordPress as a static site doesn&#8217;t have a database so your main page will be shown instead of the post.</p>
<p>Plain Permalinks look like this: <code>https://dev.example.com/?p=123</code><br />
Where <code>123</code> is the Post ID in WordPress.</p>
<p>Even if you don&#8217;t use Plain Permalinks, they can still show up on your site as a &#8220;shortlink&#8221;.<br />
Note: They are also present in your RSS feed pages, but they seem to have to affect.</p>
<p>It&#8217;s safer to just remove the shortlink reference from the posts. You can do this by modifying your theme. Add to your child theme&#8217;s functions.php:</p>
<pre><code>// Remove shortlink
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);</code></pre>
<p>Check that it is removed. On a post, make sure the source code doesn&#8217;t have something like this near the top:</p>
<pre><code>&lt;link rel='shortlink' href='https://dev.example.com/?p=123' /&gt;</code></pre>
<p>Something else to consider with shortlinks:</p>
<p>If your site is new, chances are nobody has been using the shortlinks. However, if not, you should add redirects to your web server (<a href="https://httpd.apache.org/" target="_blank" rel="noopener noreferrer">Apache</a> or <a href="https://nginx.org/en/" target="_blank" rel="noopener noreferrer">nginx</a>) configuration.</p>
<h3>RSS Feed</h3>
<p>Simply Static creates the /feed directory with an index.xml file inside. Your web server needs to know about it.</p>
<p>Modify your Apache or nginx configuration so the web server&#8217;s index search looks for xml files as well.</p>
<p>Apache: <code>DirectoryIndex index.html index.php index.xml</code></p>
<p>nginx: <code>index index.html index.htm index.xml;</code></p>
<p>Don&#8217;t forget to add your RSS Feed URL to Simply Static&#8217;s &#8220;Additional URLs&#8221;, for example:<br />
<code>https://dev.example.com/feed/</code></p>
<h3>AMP</h3>
<p>I use the <a href="https://wordpress.org/plugins/amp/" target="_blank" rel="noopener noreferrer">WordPress AMP Plugin</a> to generate AMP pages. There was an issue with an infinite loop of AMP pages. To be safe and avoid that, ignore any URLs inside a post&#8217;s AMP path.</p>
<p>For example, add to Simply Static&#8217;s &#8220;URLs to Exclude&#8221;: <code>https://dev.example.com/blog/.*/amp/.*</code></p>
<ul>
<li>Uncheck the option: <code><input disabled="disabled" name="excludable[3][do_not_follow]" type="checkbox" value="1" />Do not save </code></li>
<li>Check the option:   <code><input checked="checked" disabled="disabled" name="excludable[3][do_not_save]" type="checkbox" value="1" />Do not follow </code></li>
</ul>
<h3>Disable WordPress Update Services</h3>
<p>Not sure if this is still a thing.. but better to disable the <a href="https://codex.wordpress.org/Update_Services" target="_blank" rel="noopener noreferrer">WordPress Update Services</a>. Since your WordPress site is now used for development, nobody should know about it.</p>
<p>In the WordPress admin dashboard, go to: Settings -&gt; Writing&#8221; and delete everything in &#8220;Update Services&#8221;. Click &#8220;Save Changes&#8221;.</p>
<h2>Test Everything on your WordPress static site!</h2>
<p>Check your sitemaps, RSS feeds, some pages, some posts, archives, tags, and everything else mentioned above. Also check for 404 errors (pages not found).</p>
<p>You will probably have to add more items to Simply Static&#8217;s &#8220;Additional URLs&#8221;.</p>
<h2>Hide Your WordPress Site</h2>
<p>Very important! Now that WordPress is your development site, nobody should be able to access it. Don&#8217;t forget to add a password to your WordPress site with <a href="https://httpd.apache.org/docs/2.4/mod/mod_auth_basic.html" target="_blank" rel="noopener noreferrer">HTTP Basic Authentication for Apache</a> or for <a href="https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/" target="_blank" rel="noopener noreferrer">nginx</a>.</p>
<h2>Conclusion</h2>
<p>Your WordPress site is now converted to static HTML files. You can still have the benefits of WordPress to create your website, and also the benefits of static HTML files to improve speed, security, and reduce cost.</p>
<p>Want more speed? Do you still use the Apache web server? Stop using Apache and switch to nginx for even faster page load times!</p>
<p>The post <a href="https://ryandaniels.ca/blog/guide-to-wordpress-static-site/">Guide to WordPress as a Static Site</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1672</post-id>	</item>
		<item>
		<title>WordPress Search using DuckDuckGo</title>
		<link>https://ryandaniels.ca/blog/wordpress-search-using-duckduckgo/</link>
		
		<dc:creator><![CDATA[Ryan Daniels]]></dc:creator>
		<pubDate>Mon, 31 Dec 2018 21:01:28 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Guide]]></category>
		<category><![CDATA[WordPress How To]]></category>
		<guid isPermaLink="false">https://ryandaniels.ca/?p=1627</guid>

					<description><![CDATA[<p><a href="https://ryandaniels.ca/blog/wordpress-search-using-duckduckgo/"><img class="alignleft size-full wp-image-1630" src="https://ryandaniels.ca/wp-content/uploads/2018/12/duckduckgo.png" alt="WordPress search using DuckDuckGo search engine" width="250" height="200" /></a>WordPress has a built-in search feature which allows a site using self-hosted WordPress to search local pages and posts, and then display the results on the site. What if you want to use an external search engine like DuckDuckGo to do this instead?</p>
<p>The post <a href="https://ryandaniels.ca/blog/wordpress-search-using-duckduckgo/">WordPress Search using DuckDuckGo</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>WordPress has a built-in search feature which allows a site using self-hosted WordPress to search local pages and posts, and then display the results on the site. What if you want to use an external search engine to do this instead?</p>
<h2>Why use an external Search Engine?</h2>
<p>The Built-in WordPress search feature can be slow, and can cause performance issues if you run a large WordPress website.</p>
<p>Also, if you want to create a static website from your WordPress site you need to change the search feature to use an external search engine.</p>
<p>Important: This is for self-hosted WordPress websites, not a wordpress.com website.</p>
<h2>What Search Engine to use?</h2>
<p>There are a few options. The obvious choice is <a href="https://cse.google.com/cse/" target="_blank" rel="noopener noreferrer">Google Custom Search Engine</a>, because Google knows search.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-1630 aligncenter" src="https://ryandaniels.ca/wp-content/uploads/2018/12/duckduckgo.png" alt="DuckDuckGo search engine" width="250" height="200" />However, a more privacy friendly alternative would be beneficial to your users. Since unfortunately not all users are using <a href="https://ryandaniels.ca/blog/firefox-privacy-settings-made-easy/">Firefox for privacy</a> with a content blocking add-on. This is where <a href="https://duckduckgo.com/spread" target="_blank" rel="noopener noreferrer">DuckDuckGo</a> comes to the rescue.</p>
<h2>How to use WordPress Search using DuckDuckGo</h2>
<p>There&#8217;s a few options for adding a search box to your WordPress self-hosted website.</p>
<p>DuckDuckGo has <a href="https://duckduckgo.com/search_box" target="_blank" rel="noopener noreferrer">basic instructions</a> for adding a search box. More specific information for WordPress is below.</p>
<h3>Custom HTML widget</h3>
<p>The easiest way is to add a &#8220;Custom HTML&#8221; widget to wherever you need a search box.</p>
<pre><code>&lt;form action="https://duckduckgo.com/"&gt;
&lt;input type="hidden" id="sites" name="sites" value="ryandaniels.ca"&gt;
&lt;input type="search" placeholder="Search &amp;hellip;" value="" name="q" /&gt;
&lt;button type="submit" class="search-submit"&gt;&lt;/button&gt;&lt;/form&gt;
</code></pre>
<p>This is creating a form which is sent to DuckDuckGo search, using a hidden field with the value of your domain. Be sure to change it from &#8220;ryandaniels.ca&#8221;!</p>
<p>Of course, you will need to make some changes with CSS to make this fit into your theme.</p>
<p>Also be careful, other places could be using the built-in search, like on an error page. The next option solves this problem.</p>
<h3>Create a Search Page in WordPress</h3>
<p>If you are familiar with modifying WordPress themes this is the best and easiest method.</p>
<p>Create a custom search form (searchform.php file) using the <a href="https://codex.wordpress.org/Creating_a_Search_Page" target="_blank" rel="noopener noreferrer">WordPress Codex documentation</a>, and be sure to put it into your WordPress <a href="https://codex.wordpress.org/Child_Themes" target="_blank" rel="noopener noreferrer">child theme</a> folder. The benefit is there&#8217;s no need to mess around with CSS, and if your theme uses a search box on a 404 page, this will automatically work!</p>
<p>As an example, this is based on the <a href="https://wordpress.org/themes/twentyseventeen/" target="_blank" rel="noopener noreferrer">Twenty Seventeen WordPress theme</a>. In your &#8220;child theme&#8221; folder, create a new file called <code>searchform.php</code> with the contents:</p>
<pre><code>&lt;?php
/**
* Template for displaying search forms in Twenty Seventeen
*
* @package WordPress
* @subpackage Twenty_Seventeen
* @since 1.0
* @version 1.0
*/

?&gt;

&lt;?php $unique_id = esc_attr( uniqid( 'search-form-' ) ); ?&gt;

&lt;!-- &lt;form role="search" method="get" class="search-form" action="&lt;?php echo esc_url( home_url( '/' ) ); ?&gt;"&gt; --&gt;
&lt;form role="search" method="get" class="search-form" action="https://duckduckgo.com/"&gt;
&lt;label for="&lt;?php echo $unique_id; ?&gt;"&gt;
&lt;span class="screen-reader-text"&gt;&lt;?php echo _x( 'Search for:', 'label', 'twentyseventeen' ); ?&gt;&lt;/span&gt;
&lt;/label&gt;
&lt;input type="hidden" id="sites" name="sites" value="&lt;?php echo esc_url( home_url() ); ?&gt;"&gt;
&lt;input type="search" id="&lt;?php echo $unique_id; ?&gt;" class="search-field" placeholder="&lt;?php echo esc_attr_x( 'Search &amp;hellip;', 'placeholder', 'twentyseventeen' ); ?&gt;" value="&lt;?php echo get_search_query(); ?&gt;" name="q" /&gt;
&lt;button type="submit" class="search-submit"&gt;&lt;?php echo twentyseventeen_get_svg( array( 'icon' =&gt; 'search' ) ); ?&gt;&lt;span class="screen-reader-text"&gt;&lt;?php echo _x( 'Search', 'submit button', 'twentyseventeen' ); ?&gt;&lt;/span&gt;&lt;/button&gt;
&lt;/form&gt;</code></pre>
<p>The only new or modified lines are the &#8220;&lt;form &#8230;&#8221; to tell the search box to use DuckDuckGo.<br />
The hidden input name to use your site.<br />
The search input name is now &#8220;q&#8221; instead of &#8220;s&#8221;.</p>
<p>Now anywhere on your site that uses a search box will use this new search form! You can add a search widget to your sidebar and it will go to DuckDuckGo.</p>
<h2>Use a WordPress Plugin</h2>
<p><a href="https://wordpress.org/plugins/wp-google-search/" target="_blank" rel="noopener noreferrer">WP Google Search</a><br />
<a href="https://duck.co/help/add-ons/wordpress" target="_blank" rel="noopener noreferrer">DuckDuckGo Plugin</a> (unfortunately no longer available)</p>
<h3>Other options</h3>
<p>These are other options, which probably aren&#8217;t a good idea. I&#8217;ll list them anyways. But just don&#8217;t.</p>
<p>Use <a href="https://httpd.apache.org/docs/current/howto/htaccess.html" target="_blank" rel="noopener noreferrer">.htaccess</a> to redirect the search query <code>yourdomain.com/?s=search</code> before it gets to WordPress. Since WordPress redirects searches to <code>/?s=search</code> (where search is the search text), you could use .htaccess redirects to catch the <code>/?s=</code> and do a redirect to an external search engine. Why this is a bad idea? Don&#8217;t have any root directory redirects, it could hurt your <a href="https://en.wikipedia.org/wiki/Search_engine_optimization" target="_blank" rel="noopener noreferrer">SEO</a> (used for search engine ranking). There&#8217;s also a performance impact having Apache (or nginx) web servers perform this operation on your root web directory!</p>
<p>Create a PHP page to do the redirect. This can also work, but unless you need more control of what&#8217;s sent to the external search engine, the other options work fine with less overhead.</p>
<h2>Conclusion</h2>
<p>Now you have created a custom search form on your WordPress site. You&#8217;ve reduced your overhead needed by WordPress and now have the option to <a href="https://ryandaniels.ca/blog/guide-to-wordpress-static-site/">setup a static WordPress website</a>!</p>
<p>Want to try a demo? Use the search box on my site! I created a custom search page in my WordPress theme.</p>
<p>The post <a href="https://ryandaniels.ca/blog/wordpress-search-using-duckduckgo/">WordPress Search using DuckDuckGo</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1627</post-id>	</item>
		<item>
		<title>Malicious code and abandoned websites</title>
		<link>https://ryandaniels.ca/blog/malicious-code-abandoned-websites/</link>
		
		<dc:creator><![CDATA[Ryan Daniels]]></dc:creator>
		<pubDate>Sat, 27 Oct 2018 21:57:44 +0000</pubDate>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Privacy]]></category>
		<guid isPermaLink="false">https://ryandaniels.ca/?p=1338</guid>

					<description><![CDATA[<p><a href="https://ryandaniels.ca/blog/malicious-code-abandoned-websites/"><img src="https://ryandaniels.ca/wp-content/uploads/2018/10/nsc_js-150x146.png" alt="" width="150" height="146" class="alignleft size-thumbnail wp-image-1359" /></a> Malicious code and abandoned websites are increasingly becoming more of a problem. It's a serious issue in terms of privacy and security.<br />
TL;DR: Website owners: Be careful when using third-party code that you don't control.<br />
Users: Hope for the best! Use a content blocker browser add-on like uBlock Origin. On your mobile device use Firefox with uBlock Origin.</p>
<p>The post <a href="https://ryandaniels.ca/blog/malicious-code-abandoned-websites/">Malicious code and abandoned websites</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Malicious code and abandoned websites are increasingly becoming more of a problem. It&#8217;s a serious issue in terms of privacy and security.</p>
<p>TL;DR:<br />
<strong>Website owners</strong>: Be careful when using third-party code that you don&#8217;t control.<br />
<strong>Users</strong>: Hope for the best! Use a content blocker browser add-on like uBlock Origin. On your mobile device use Firefox with uBlock Origin.</p>
<p><span id="more-1338"></span></p>
<h2>What&#8217;s the problem?</h2>
<p>Abandoned or unmaintained websites can be re-registered by malicious people. Any website using third-party code could be a victim.</p>
<p>To highlight the issue, let&#8217;s look at a specific example. This example luckily wasn&#8217;t extremely malicious. It could have been much worse! But it still highlights the current state of the web.</p>
<p>Recently there was an issue where 800+ websites were using javascript from an abandoned free service called &#8220;New Share Counts&#8221; which counted the number of Twitter shares.</p>
<p>Image of malicious code:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-1359 size-full" src="https://ryandaniels.ca/wp-content/uploads/2018/10/nsc_js.png" alt="nsc.js malicious source code" width="897" height="146" srcset="https://ryandaniels.ca/wp-content/uploads/2018/10/nsc_js.png 897w, https://ryandaniels.ca/wp-content/uploads/2018/10/nsc_js-300x49.png 300w, https://ryandaniels.ca/wp-content/uploads/2018/10/nsc_js-768x125.png 768w" sizes="auto, (max-width: 897px) 100vw, 897px" /></p>
<p><a href="https://blog.sucuri.net/2018/10/malicious-redirects-from-newsharecounts-com-tweet-counter.html" target="_blank" rel="noopener noreferrer">Securi</a> and <a href="https://www.bleepingcomputer.com/news/security/abandoned-tweet-counter-hijacked-with-malicious-script/" target="_blank" rel="noopener noreferrer">BleepingComputer</a> have great write-ups on the details.</p>
<p>The problem is this third party website stopped offering their free service. They notified users via their website and eventually the resources they used for counting Tweets were abandoned. This included the Amazon S3 bucket they used. Unfortunately many website owners didn&#8217;t get the notice, or ignored it.</p>
<p>Image of a website including the malicious code in their source code:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-1360 size-full" src="https://ryandaniels.ca/wp-content/uploads/2018/10/website_source_code-nsc_js.png" alt="website including malicious code nsc.js" width="877" height="192" srcset="https://ryandaniels.ca/wp-content/uploads/2018/10/website_source_code-nsc_js.png 877w, https://ryandaniels.ca/wp-content/uploads/2018/10/website_source_code-nsc_js-300x66.png 300w, https://ryandaniels.ca/wp-content/uploads/2018/10/website_source_code-nsc_js-768x168.png 768w" sizes="auto, (max-width: 877px) 100vw, 877px" /></p>
<p>According the research from BleepingComputer, on October 3rd the AWS S3 bucket was cancelled and on October 4th a &#8220;bad actor&#8221; registered a new AWS S3 bucket under the same name. Up until October 23rd, all 800+ websites that didn&#8217;t remove this javascript file were serving all of their visitors with a malicious script which redirected mobile users to a scam website.</p>
<p><strong>As of October 23, 2018: </strong>the malicious javascript (newsharecounts.s3-us-west-2.amazonaws.com/nsc.js) has been blocked on the AWS S3 bucket. It is returning the error: Access Denied</p>
<p><strong>Update October 28, 2018</strong>: AWS will not confirm the S3 bucket was banned on their side. The malicious code could return at any time, and possibly be worse next time. According to AWS they need other people to alert them if the malicious content re-appears! From AWS: &#8220;<strong>Should you see the content return or similar appear, please report it immediately.</strong>&#8221;</p>
<p><strong>Update October 31, 2018</strong>: Malicious javascript is back online.</p>
<p><strong>Update November 9, 2018</strong>: From AWS: &#8220;Content in question is not currently accessible&#8221;.</p>
<p><strong>Update January 9, 2019</strong>: Malicious javascript is back online, again.</p>
<p><strong>Update January 14, 2019</strong>: From AWS: &#8220;We have again blocked the content.&#8221;</p>
<h2>Who can fix this?</h2>
<ul>
<li>Individual website(s) that include the third-party malicious code</li>
<li>Hosting provider where the malicious code resides</li>
<li>Web browser blocks malicious code</li>
<li>Web browser add-on blocks malicious code</li>
<li>You and me? Social media? News outlets?</li>
</ul>
<p>Unfortunately it&#8217;s hard to get all 800+ websites to fix this on their sites. So ultimately we need the company hosting the malicious content to step in.</p>
<p>It seems having this issue in the news and social media definitely helps put pressure on those who can take the malicious content down. In this case it was an Amazon S3 bucket hosting the malicious javascript.</p>
<p>But why is this so hard? Just take down the malicious code!</p>
<h3>What about the hosting provider?</h3>
<p>In this case, I submitted an abuse report to AWS the night of October 15th. It was only after Securi and BleepingComputer published news articles on October 16th/17th and some <a href="https://twitter.com/BleepinComputer/status/1052454195444555776" target="_blank" rel="noopener noreferrer">pressure on social media</a> did AWS acknowledge the issue (to me at least). Then it took AWS over a week to take the resource down*. And that was only after countless back and forth emails with them. Thankfully, at least for now, the malicious javascript has been removed.</p>
<p>At first they said this malicious script didn&#8217;t violate their terms of service! I had to read through their terms of service (TOS) and provided them with exact details of how this malicious script actually does violate their TOS.<br />
Such a painful process!</p>
<ul>
<li>At the time of publishing this post, AWS has <strong>not</strong> confirmed they took the malicious script down due to a violation of the terms of service. So hopefully this malicious script won&#8217;t come back online in the future at the same location!</li>
</ul>
<h3>A browser add-on can also help</h3>
<p>I had a feeling it was going to take the hosting provider a while to respond, since these things take time. As a work-around, a browser add-on to the rescue!<br />
uBlock Origin added this malicious javascript to their content filtering add-on <a href="https://github.com/uBlockOrigin/uAssets/issues/3730" target="_blank" rel="noopener noreferrer"><strong>25 minutes</strong> after I opened an issue with them</a>! Now that&#8217;s fast! So at least anyone using this popular browser add-on would be protected (well that is if they use Firefox on their mobile device, which actually isn&#8217;t the dominant browser).</p>
<h3>What about the browser itself?</h3>
<p>The most recent version of Firefox 63 now has <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy#Tracking_protection_explained">Tracking Protection</a>. But this can only block entire domains and not specific files. So that can&#8217;t help in this case.<br />
Directly in the Chrome browser? Not currently an option either.</p>
<h3>You and me? Social media? News outlets?</h3>
<p>Unfortunately that seems to be what it&#8217;s come to. More on that below.</p>
<p>Luckily this example wasn&#8217;t worse. The malicious code only redirected a mobile user to a scam website when they pressed their back button on one of the <a href="https://publicwww.com/websites/%22newsharecounts.s3-us-west-2.amazonaws.com%2Fnsc.js%22/" target="_blank" rel="noopener noreferrer">800 affected websites</a>. It could have been cryptocurrency mining malware, or code to exploit some bug in Android or iOS. Who knows, maybe the hosting provider would respond much faster if it was more serious? Or the website owners? Maybe.. Maybe not.</p>
<h2>Solution for users</h2>
<p>Unfortunately web users have little control over what a website is serving their browser. One thing that can help is using a content filter add-on for your browser like <a href="https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/" target="_blank" rel="noopener noreferrer">uBlock Origin for Firefox</a> or for <a href="https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm?hl=en" target="_blank" rel="noopener noreferrer">Chrome</a>. In the above case the malicious code was only affecting mobile users. Only Firefox supports add-ons for their mobile browser. This is another reason to use Firefox on your mobile devices! In a related post, check out how easy it is to <a href="https://ryandaniels.ca/blog/firefox-privacy-settings-made-easy/">upgrade your privacy using Firefox</a>.</p>
<h2>Long term solution for website owners</h2>
<p>Website owners need to be careful when adding third-party code to their websites. However, this is extremely difficult in today&#8217;s modern web. Often websites use many, many different third-party services.</p>
<p>One solution is to host all third party code locally on your web server. Unfortunately, this has it&#8217;s own issues since there would no longer updates to the code by the developer unless the website owner manually updates their site.</p>
<p>Another solution is to use <a href="https://en.wikipedia.org/wiki/Subresource_Integrity" target="_blank" rel="noopener noreferrer">Subresource Integrity (SRI)</a>. Unfortunately this can be tedious to implement for a website owner. And even worse, if you use a CMS like WordPress, you rely on the plugin developer to implement SRI into their plugin or theme. There is a WordPress plugin called <a href="https://wordpress.org/plugins/wp-sri/" target="_blank" rel="noopener noreferrer">(SRI) Manager</a> which can help add SRI to all plugins, but your mileage may vary with getting it to work.</p>
<h2>Conclusion &#8211; Who <span style="text-decoration: underline;">should</span> fix this?</h2>
<p>Who can fix this versus who should fix this is a good question. In my opinion, this should be the responsibility of the individual website. However, getting 800+ websites to fix this in a timely manner.. not going to happen (and it didn&#8217;t in this example!). As of the time of this post, most websites still include a link to the malicious code on their sites! Thankfully now it does nothing since it no longer exists.<br />
It really needs to be easier for website owners to have secure third-party code on their website, otherwise we continue down this path.</p>
<h3>Who needs to drive this change?</h3>
<p>Specifically in the above example of &#8220;New Share Counts,&#8221; was it only a concerned internet user (myself) that made this happen?<br />
Probably not, since it was in the news. That&#8217;s probably the only reason there was any traction. But regardless, I contacted an infected website (which I randomly found while surfing the net. Mind you, only one website of 800+), initiated an abuse case with the hosting provider (AWS) where the malicious code was, and lastly, initiated a support ticket for a work-around using a popular browser add-on.</p>
<p>Maybe other people also contacted the hosting provider. Maybe I should have contacted more content filtering browser add-ons? More pressure on social media? Or something else in addition?</p>
<p>Maybe more people need to take action against these issues after they happen.</p>
<p>The next question is, who should be driving this overall change to make it easier to secure third-party code on websites? That&#8217;s also a great question..</p>
<p>However, until that&#8217;s figured out we need individuals and news outlets to raise these issues when they happen.<br />
For instance, open abuse reports with the hosting provider, try to inform the websites impacted, find work-arounds when it&#8217;s taking too long. Raise awareness on social media platforms.</p>
<p>Currently, that&#8217;s all we can do. That is, if the issue is even <strong>detected</strong> in the first place.</p>
<p>&nbsp;</p>
<h2>Timeline</h2>
<p>For anyone interested, here&#8217;s a timeline of events for the &#8220;New Share Counts&#8221; issue from what  I observed. This isn&#8217;t meant to single out the hosting provider (AWS) in particular, they are probably flooded with abuse reports. But still, their generic responses are pretty funny. <strong>Bold</strong> used for emphasis.</p>
<p>2018/10/14 23:13 EST &#8211; Randomly found issue on one specific website (Latest Hacking News) while surfing the net on my couch (on my phone) and informed them about malicious javascript on their site.<br />
<a href="https://i.imgur.com/4E6uSx5.png" target="_blank" rel="noopener noreferrer" rel="lightbox[1338]">https://i.imgur.com/4E6uSx5.png</a></p>
<p>2018/10/15 17:19 EST &#8211; Emailed &#8220;Latest Hacking News&#8221; with more details. Including script where the malicious javascript is located.</p>
<p>2018/10/15 17:47 EST &#8211; Abuse report submitted to the hosting provider (AWS). ( where malicious javascript is hosted: newsharecounts.s3-us-west-2.amazonaws.com/nsc.js ). Gave details on what this malicious javascript is doing and how to reproduce malicious behaviour.</p>
<p>2018/10/15 17:55 EST &#8211; Response from hosting provider: Generic response asking for logs.</p>
<p>2018/10/15 18:04 EST &#8211; Replied to hosting provider: Gave info where they can find a site infected with the malicious javascript. Also, exact steps to reproduce malicious behaviour.</p>
<p>2018/10/16 06:56 EST &#8211; <a href="https://blog.sucuri.net/2018/10/malicious-redirects-from-newsharecounts-com-tweet-counter.html" target="_blank" rel="noopener noreferrer">Securi publishes article about malicious redirects from newsharecount</a>.</p>
<p>2018/10/16 11:06 EST &#8211; &#8220;Latest Hacking News&#8221; removed the malicious javascript from their website.</p>
<p>2018/10/17 03:00 EST &#8211; <a href="https://www.bleepingcomputer.com/news/security/abandoned-tweet-counter-hijacked-with-malicious-script/" target="_blank" rel="noopener noreferrer">BleepingComputer publishes article</a>.</p>
<p>2018/10/17 18:22 EST &#8211; Replied to hosting provider via email: No response from hosting provider (AWS) since 15th. Asked for abuse case to be expedited and if they can shutdown this AWS S3 bucket / javascript file. Also mentioned to AWS this was now in the news via Securi and BleepingComputer.</p>
<p>2018/10/17 18:33 EST &#8211; <a href="https://twitter.com/BleepinComputer/status/1052454195444555776" target="_blank" rel="noopener noreferrer">Reply to BleepingComputer&#8217;s tweet</a>, including AWS twitter handle to highlight lack of response from AWS.</p>
<p>2018/10/17 18:39 EST &#8211; Hosting provider responded via email: &#8220;This case has been investigated and being resolved by the appropriate team.&#8221;</p>
<p>2018/10/17 19:15 EST &#8211; Submitted issue with uBlock Origin (browser add-on to filter content) via their <a href="https://github.com/uBlockOrigin/uAssets/issues/3730" target="_blank" rel="noopener noreferrer">Github issue tracker</a>.</p>
<p>2018/10/17 19:40 EST &#8211; <a href="https://github.com/uBlockOrigin/uAssets/commit/c126e1e6a05072c53d5ab8836c160dc1a7b56fdb" target="_blank" rel="noopener noreferrer">uBlock Origin now blocks this malicious code</a>. Only took 25 minutes! Anyone using the uBlock Origin browser addon (on mobile device) will not be affected by the malicious javascript.</p>
<p>2018/10/18 03:48 EST &#8211; <a href="https://twitter.com/AWSSupport/status/1052828747618033664" target="_blank" rel="noopener noreferrer">Hosting provider responds via twitter</a> that they are investigating.</p>
<p>2018/10/18 04:46 EST &#8211; &#8220;Latest Hacking News&#8221; <a href="https://twitter.com/7H3Wh173R4bb17/status/1052843254121713665" target="_blank" rel="noopener noreferrer">responded</a> via twitter, with thanks for finding the malicious javascript on their website.</p>
<p>2018/10/19 09:41 EST &#8211; Hosting provider responded via email:<br />
&#8220;We understand your concern regarding the continued availability of the content you have reported. As noted previously, AWS customers are responsible for their activity on AWS. As a courtesy we notified our customer of your request to have the content removed or access disabled, however, as we do not consider this content to be in violation of our terms, we are not able to take additional action. We strongly encourage you to continue to work with our customer directly to address the concerns that you may have.&#8221;</p>
<p>2018/10/19 10:12 EST &#8211; Replied to hosting provider via email:<br />
&#8220;It&#8217;s unfortunate that this bad actor&#8217;s malicious script/bucket can&#8217;t be removed since it is clearly hijacking users mobile browsers to serve them ads/malware/malicious script. I suspect that notifying the current AWS customer which owns this bucket will have no result, since they are responsible for this malicious script in the first place.&#8221;</p>
<p>2018/10/19 10:29 EST &#8211; Hosting provider responded, via email, stating the same thing again and the case was closed:<br />
&#8220;As noted previously, AWS customers are responsible for their activity on AWS. <strong>As a courtesy we notified our customer of your request to have the content removed or access disabled, however, as we do not consider this content to be in violation of our terms, we are not able to take additional action. We strongly encourage you to continue to work with our customer directly to address the concerns that you may have. This case has been resolved by the appropriate team.</strong>&#8221;</p>
<p>2018/10/19 18:26 EST &#8211; Replied to hosting provider via email. I read through all of their Terms of Service and found where this malicious javascript violated their terms in two places. Provided details about how this malicious javascript was breaking their TOS in those two places.</p>
<p>2018/10/19 19:08 EST &#8211; Hosting provider responded via email:<br />
&#8220;Thank you for your reply. We are looking into this issue further and passed it on to our customer.&#8221;</p>
<p>2018/10/23 16:30 EST &#8211; &#8220;Abandoned Tweet Counter Hijacked With Malicious Script&#8221; Podcast from <a href="https://www.grc.com/securitynow.htm" target="_blank" rel="noopener noreferrer">Security Now!</a> about this issue. <a href="https://www.grc.com/sn/sn-686-notes.pdf" target="_blank" rel="noopener noreferrer">Episode #686</a> Audio &amp; <a href="https://twit.tv/shows/security-now/episodes/686?autostart=false" target="_blank" rel="noopener noreferrer">Video</a>.</p>
<p>2018/10/23 19:45 EST &#8211; Noticed http://newsharecounts.s3-us-west-2.amazonaws.com/nsc.js is down. Returning error: &#8220;Access Denied&#8221;.</p>
<p>2018/10/23 19:48 EST &#8211; <a href="https://twitter.com/ryan_daniels/status/1054882214889078785" target="_blank" rel="noopener noreferrer">Replied to hosting provider via twitter</a>: Asking hosting provider to confirm they took down the javascript due to violation of their terms.</p>
<p>2018/10/25 16:53 EST &#8211; Replied to hosting provider via email:<br />
&#8220;Can you confirm this S3 bucket is now suspended and can&#8217;t be used again?&#8221;</p>
<p>2018/10/27 &#8211; No response from the hosting provider at time of this post.</p>
<p>2018/10/28 09:19 EST &#8211; Hosting provider responded, via email:<br />
&#8220;<strong>At this time the content appears to be no longer active or available. If you have any evidence otherwise, please let us know.</strong>&#8221;</p>
<p>2018/10/28 09:27 EST &#8211; Replied to hosting provider via email, asking for confirmation the S3 bucket is suspended and if not, to do so.</p>
<p>2018/10/28 09:39 EST &#8211; Hosting provider responded, via email. Due to privacy policies they cannot discuss what actions have been taken, and:<br />
&#8220;<strong>Should you see the content return or similar appear, please report it immediately.</strong>&#8221;</p>
<p>2018/10/31 17:42 EST &#8211; Replied to hosting provider via email. Malicious content is back online.</p>
<p>2018/11/06 11:05 EST &#8211; Hosting provider responded via email.<br />
&#8220;We have begun our investigation into the source of the activity or content you reported.&#8221;</p>
<p>2018/11/09 04:28 EST &#8211; Hosting provider responded via email.<br />
&#8220;Content in question is not currently accessible.. If you believe this content is still live, please provide additional evidence and we will be sure to investigate further. At this time please consider this case as resolved.&#8221;</p>
<p>2019/01/09 05:42 EST &#8211; Emailed hosting provider. Malicious content is live, again.</p>
<p>2019/01/14 08:55 EST &#8211; Hosting provider responded via email.<br />
&#8220;Thank you for advising us that the content has been uploaded again. We have again blocked the content.&#8221;</p>
<p>The post <a href="https://ryandaniels.ca/blog/malicious-code-abandoned-websites/">Malicious code and abandoned websites</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1338</post-id>	</item>
		<item>
		<title>How to Boost Your Website: Ultimate Image Optimization Guide</title>
		<link>https://ryandaniels.ca/blog/how-to-boost-your-website-ultimate-image-optimization-guide/</link>
		
		<dc:creator><![CDATA[Ryan Daniels]]></dc:creator>
		<pubDate>Tue, 25 Aug 2015 16:50:16 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Guide]]></category>
		<guid isPermaLink="false">https://ryandaniels.ca/?p=1540</guid>

					<description><![CDATA[<p><a href="//ryandaniels.ca/blog/how-to-boost-your-website-ultimate-image-optimization-guide/"><img src="https://ryandaniels.ca/wp-content/uploads/Speed_Up_WordPress_Image_Optimization_Guide-300x169.jpg" alt="Speed Up WordPress Image Optimization Guide" width="300" height="169" class="alignleft size-thumbnail wp-image-1542" /></a>You want your website to load fast. How? Speed Up WordPress with this Image Optimization Guide.</p>
<p><strong>A fast website is good for your visitors, and it's good for Search Engine Optimization (SEO) ranking in Google.</strong> One way to get your website to load fast is to reduce the size of what needs to load when a visitor goes to your website. Pictures can be a huge contributor to your website's page size. How can you fix this? Let's talk about how to Speed up WordPress with Image Optimization.</p>
<p>The post <a href="https://ryandaniels.ca/blog/how-to-boost-your-website-ultimate-image-optimization-guide/">How to Boost Your Website: Ultimate Image Optimization Guide</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-501" src="//ryandaniels.ca/wp-content/uploads/Speed_Up_WordPress_Image_Optimization_Guide-800x450.jpg" alt="Speed Up WordPress Image Optimization Guide" width="800" height="450" /></p>
<p>You want your website to load fast. How? You can speed up WordPress with this Image Optimization Guide. Most of this actually applies to any website, not just WordPress!</p>
<p><strong>A fast website is good for your visitors </strong>because <strong><a href="https://blog.bufferapp.com/7-simple-hacks-for-your-blog-to-increase-your-subscriber-rate" target="_blank" rel="noopener noreferrer">users don’t like to wait</a></strong>. Fast is also<strong> good for Search Engine Optimization (SEO) <a href="https://moz.com/learn/seo/page-speed" target="_blank" rel="noopener noreferrer">ranking in Google</a>.</strong> One way to have your website load faster is to reduce the size of what needs to load when a visitor goes to your website. Pictures can be a huge contributor to your website&#8217;s page size. How can you fix this? Let&#8217;s talk about how to Speed up WordPress with Image Optimization.</p>
<p>Just don&#8217;t forget, having a good <a href="//ryandaniels.ca/wordpress-consulting/hosting/">hosting provider</a> is key. Having optimized images won&#8217;t fix a slow hosting provider!</p>
<p>This can be a big topic if we really go in-depth. If you already know the basics then jump to the Image Quality section. Just don&#8217;t miss out on the Tools sections, where I share some time saving tools.</p>
<h2 class="title-post">Image Optimization Guide</h2>
<ul>
<li><a href="#less-pictures">Less Pictures</a></li>
<li><a href="#png-vs-jpg">PNG vs JPG</a></li>
<li><a href="#image-file-size">Image File Size</a></li>
<li><a href="#image-dimensions">Image Dimensions</a></li>
<li><a href="#image-quality">Image Quality</a>
<ul>
<li><a href="#lossy-image-optimization">Lossy Image Optimization</a></li>
<li><a href="#lossless-image-optimization">Lossless Image Optimization</a></li>
</ul>
</li>
<li><a href="#image-editing-tools">Image Editing Tools</a></li>
<li><a href="#conclusion">Wrap Up</a></li>
</ul>
<p><a name="less-pictures"></a></p>
<h2>Less Pictures</h2>
<p>Having too many pictures can really slow down your website. Even if they are all optimized, loading too many pictures adds up for the overall page size and also adds to the number of requests being sent. <strong>Use only relevant pictures</strong>.</p>
<p><a name="png-vs-jpg"></a></p>
<h2>PNG vs JPG</h2>
<p>What picture file format to use? There is a lot of information related to this discussion. So let&#8217;s make this simple.</p>
<p>I use <strong><a href="https://en.wikipedia.org/wiki/Portable_Network_Graphics" target="_blank" rel="noopener noreferrer">PNG</a> for screenshots and logos</strong>.</p>
<p>I use <strong><a href="https://en.wikipedia.org/wiki/JPEG" target="_blank" rel="noopener noreferrer">JPG</a> for photographs</strong>. Just remember that saving the same JPG over and over will reduce the <em>quality</em>.</p>
<p>Confused? Check <a href="http://www.labnol.org/software/tutorials/jpeg-vs-png-image-quality-or-bandwidth/5385/" target="_blank" rel="noopener noreferrer">this</a> out for more information.</p>
<p><a name="image-file-size"></a></p>
<h2>Image File Size</h2>
<p>You don&#8217;t want your pictures to be too big. That&#8217;s the whole point of this discussion! <strong>Reducing a picture&#8217;s file size helps your website load faster.</strong></p>
<p>Generally, I try to make sure my pictures are around 100 KB (Kilobytes) each. But this really depends on your website&#8217;s goals and content. If you have a photography website then obviously your pictures are the main focus. Having a few pictures per page over that size should be fine.</p>
<p>Remember: <strong>Reducing the Image Dimensions and the <em>Quality</em> both impact the image file size.</strong> More on those topics further down.</p>
<p><a name="image-dimensions"></a></p>
<h2>Image Dimensions</h2>
<p><strong>Use conservative image dimensions</strong> (width and height in pixels). Don&#8217;t use a full size picture at 5184 by 3456 pixels that is 5 megabytes. Before uploading a picture to WordPress, resize the picture to dimensions that make sense for your website when a visitor is on a desktop computer. Typically I resize a picture to the same setting I put in the WordPress Media Settings for the Large Size option.</p>
<p>There are also other options for Medium and Thumbnail sizes. <strong>All of these settings really depend on your website design and goals.</strong> Personally, I like these settings for my website:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-766" src="//ryandaniels.ca/wp-content/uploads/Speed_Up_WordPress_Image_Optimization_Guide-media_settings.png" alt="Speed Up WordPress Image Optimization Guide - Media Settings" width="569" height="365" /></p>
<p><strong>Tip</strong>: If you don&#8217;t need a certain image size, just put the width and height to zero.</p>
<p><strong>Tip #2</strong>: If you change these settings, only new pictures will get resized to the new settings. Use the free plugin <a href="https://wordpress.org/plugins/regenerate-thumbnails/" target="_blank" rel="noopener noreferrer">Regenerate Thumbnails</a> to re-create thumbnails for existing pictures.</p>
<p>WordPress automatically create copies of the image for all of the above sizes when you upload a picture. There could be more, depending on your theme (using a featured image for example). If you are a developer and need more sizes (or aren&#8217;t afraid of coding), you can use the <code>add_image_size()</code> function to add any other image dimensions you need to use in your theme. But for normal users, you don&#8217;t need to worry about that.</p>
<p>I know what you&#8217;re thinking, this is getting a little too detailed. Keep reading and you might learn something new. Or <a href="#image-dimensions-your-website">skip down</a> a bit.</p>
<p>Let&#8217;s get back to talking about using pictures on your website. Don&#8217;t use a picture that has dimensions of 1280 by 720 pixels (for example) if your website won&#8217;t display the picture at those dimensions. <strong>Your theme should dynamically scale your image&#8217;s dimensions</strong> making the picture smaller so that it fits on your web page. Scaling means the 1280 by 720 pixel picture is reduced to fit on your screen.</p>
<p>This is a waste and is increasing your total page size for no reason, since the full sized photo you chose is still being sent to your visitor. A good solution is to show a small or medium sized picture on your post, and when your website visitor clicks on the picture it opens to show a larger picture (which wouldn&#8217;t fit inside of your post with everything else, so it would be scaled). Here&#8217;s an example:</p>
<p><figure id="attachment_702" aria-describedby="caption-attachment-702" style="width: 800px" class="wp-caption alignnone"><a href="//ryandaniels.ca/wp-content/uploads/wordpress_lightbox_plugin-long_road-1280x720.jpg" rel="lightbox[1540]"><img loading="lazy" decoding="async" class="wp-image-702 size-medium" src="//ryandaniels.ca/wp-content/uploads/wordpress_lightbox_plugin-long_road-1280x720-800x450.jpg" alt="WordPress Lightbox Plugin Example" width="800" height="450" /></a><figcaption id="caption-attachment-702" class="wp-caption-text">800px wide picture. Click to see full size at 1280 pixels wide</figcaption></figure></p>
<p>Above is a properly sized picture for my theme, and it opens to the Large size when clicked. There&#8217;s more on this effect of using a <a href="//ryandaniels.ca/blog/best-wordpress-lightbox-plugin/">Lightbox plugin</a> in my previous post.</p>
<p><a name="image-dimensions-your-website"></a></p>
<h3>What image dimensions to use on your website?</h3>
<p>The answer to that depends on a few things. What dimensions does your WordPress theme display your images? Mine is around 800 pixels wide in the post area. Typically, most themes should be fine displaying pictures between 600 to 800 pixels wide.</p>
<p>The last thing I&#8217;ll mention in this Image Dimension section is <a href="http://robincornett.com/jetpack-photon/" target="_blank" rel="noopener noreferrer">do not use the Jetpack Photon Module</a> to dynamically resize your images. It may seem like a good idea, but the current state of it has too many negatives.</p>
<p>Ok, Let&#8217;s move on to Image Quality.</p>
<p>[Tweet &#8220;Ultimate Image Optimization Guide for #WordPress&#8221;]</p>
<p><a name="image-quality"></a></p>
<h2>Image Quality</h2>
<p>Now that you have the right number of pictures, and they are at the optimal dimensions, it&#8217;s time to<strong> speed up WordPress with the final step, Image Optimization</strong>.</p>
<p>Optimizing your images means reducing their size. There are two ways to optimize images. <a href="https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/image-optimization?hl=en#lossless-vs-lossy-image-compression" target="_blank" rel="noopener noreferrer"><strong>Lossy</strong> and <strong>Lossless</strong></a>. You can do one or the other, or both.</p>
<p><a href="https://en.wikipedia.org/wiki/Lossy_compression" target="_blank" rel="noopener noreferrer"><strong>Lossy</strong></a> means some part of the image is lost. This may not be visible to the human eye. However, if too much compression is used it will be noticeable.</p>
<p><a href="https://en.wikipedia.org/wiki/Lossless_compression" target="_blank" rel="noopener noreferrer"><strong>Lossless</strong></a> means no part of the image is lost. Not one pixel is changed.</p>
<p>Typically, lossy can give you a smaller file size with the trade-off of losing some image detail. If you don&#8217;t want any loss of detail, use only lossless optimization. Using both is usually best.</p>
<p><a name="lossy-image-optimization"></a></p>
<h3>Lossy Image Optimization &#8211; Image Quality</h3>
<p>For <strong>PNG</strong> images there are a few lossy image optimization tools. One good option is the <a href="https://tinypng.com/" target="_blank" rel="noopener noreferrer">TinyPNG</a> website. They also have a <a href="https://wordpress.org/plugins/tiny-compress-images/" target="_blank" rel="noopener noreferrer">WordPress Plugin</a> which allows 500 images per month for free. I don&#8217;t use PNG very often, so I just use their website.</p>
<p>When you save your pictures as <strong>JPG</strong> there&#8217;s usually a window that pops up (depending on the tool you use) asking what <em>Quality</em> Percentage you want.</p>
<p>This depends on the picture, but typically <strong>between 80% to 90% <em>Quality</em></strong> should keep the picture looking good (and doesn&#8217;t make the picture&#8217;s file size too big). In the image preview or after saving the picture make sure it still looks good to you.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-769" src="//ryandaniels.ca/wp-content/uploads/Speed_Up_WordPress_Image_Optimization_Guide-paintdotnet-quality_setting.png" alt="Speed Up WordPress Image Optimization Guide - paint.net Quality Setting" width="380" height="188" /></p>
<p>TinyPNG also works on JPG files, but I find the quality isn&#8217;t very good. I don&#8217;t recommend using it for JPG files.</p>
<p><a name="lossless-image-optimization"></a></p>
<h3>Lossless Image Optimization &#8211; Image Quality</h3>
<p>You already did a big part of the image optimization when saving the JPG with your desired <em>Quality</em> setting percentage. The last step now is to do lossless image optimization. <strong>This will squeeze out a little more file size savings</strong>.</p>
<p>There are several tools available to do this on your PC or Mac like <a href="http://luci.criosweb.ro/riot/" target="_blank" rel="noopener noreferrer">Riot</a> or <a href="https://imageoptim.com/" target="_blank" rel="noopener noreferrer">ImageOptim</a>.<br />
I prefer to let a plugin handle this step. One less manual step saves a little time!</p>
<p>But either way, all the different copies that WordPress automatically created of your pictures are now all optimized.</p>
<p>I recommend the free WordPress Plugin: <a href="https://wordpress.org/plugins/wp-smushit/" target="_blank" rel="noopener noreferrer">WP Smush</a>. It will automatically perform lossless optimization on your pictures when uploaded to WordPress. Any pictures already uploaded can be optimized 50 at a time. The only issue that can come up is that the file size is limited to less than 1 MB. But that really shouldn&#8217;t be a problem, since you resized your images to reasonable dimensions and file size, right?</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-768" src="//ryandaniels.ca/wp-content/uploads/Speed_Up_WordPress_Image_Optimization_Guide-wp_smush.png" alt="Speed Up WordPress Image Optimization Guide - WP Smush" width="478" height="285" /></p>
<p><strong>Typical file size savings are between 4% to 15%</strong>. It doesn&#8217;t sound like a lot, but every little bit helps when it comes to page size and your website load time.</p>
<p><a name="image-editing-tools"></a></p>
<h2>Image Editing Tools</h2>
<p>All of this might seem like a lot of steps, but it&#8217;s worth the effort. Next, I&#8217;ll give you two tools I like to use to save some time and to finish up my Image Optimization Guide.</p>
<p>Besides Photoshop, the photo editing tool I like to use is called <a href="http://www.getpaint.net/" target="_blank" rel="noopener noreferrer">paint.net</a> and is available for free (Windows only). It has tons of options and I really can&#8217;t believe it&#8217;s free!<br />
And if you like TinyPNG there&#8217;s a <a href="http://forums.getpaint.net/index.php?/topic/31604-tinypng-v10-march-4-2015/" target="_blank" rel="noopener noreferrer">paint.net plugin for TinyPNG</a>. This helps speed up the process a little.</p>
<p>Another hidden gem I discovered and have used for years is called <a href="http://www.rw-designer.com/picture-resize" target="_blank" rel="noopener noreferrer">Picture Resizer 6.0</a> (for Windows). If you have a lot of pictures to resize this is a great tool. It only works for JPG files though.<br />
Rename the application file <em>PhotoResize400.exe</em> to include any of the options you want which are listed on their website. Now put a <strong>copy</strong> of all your original pictures to be resized in a folder (don&#8217;t use original files!), and drag that folder onto the Application&#8217;s .exe file in Windows Explorer.</p>
<p>I mentioned the tool <a href="http://luci.criosweb.ro/riot/" target="_blank" rel="noopener noreferrer">Riot</a> above. It can also do batch optimization, but I prefer Picture Resizer.</p>
<p>I won&#8217;t go into too much detail about the Picture Resizer tool, but as an <strong>added bonus</strong> I will give you the settings I use.<br />
I rename the file to: PhotoResizeF1280x720IQ85.exe<br />
This means:<br />
F1280x720 &#8211; Image Dimensions will be a maximum of 1280 by 720 pixels<br />
I &#8211; Overwrite source files (that&#8217;s why you <strong>copied</strong> your original pictures into a folder)<br />
Q85 &#8211; Image Quality will be 85%</p>
<p>This tool resizes and also does lossy image optimization automatically. Be sure to check through your images to make sure they still look good. If needed, increase the Quality setting. The only thing left to do after using this tool is lossless image optimization.</p>
<p><a name="conclusion"></a></p>
<h2>Speed Up WordPress: Image Optimization Guide Wrapping Up</h2>
<p>You want your website visitors to have a good user experience. And optimizing the images on your website will speed things up. Google also likes this for search engine rankings of your website. Let&#8217;s recap:</p>
<ul>
<li>Use less pictures</li>
<li>Use the right file format for your images</li>
<li>Create pictures that are the right dimensions for your website design and theme</li>
<li>Make a compromise between file size and picture quality</li>
<li>Use lossy and/or lossless image optimization</li>
<li>Pick the right tools to speed up the process</li>
</ul>
<p>&nbsp;</p>
<p><div class="thebluebox">
<h2 style="text-align: center;">Need help with your website?<br /><br />
<a href="//ryandaniels.ca/contact/">How can I help you?</a></h2>
</div></p>
<p>The post <a href="https://ryandaniels.ca/blog/how-to-boost-your-website-ultimate-image-optimization-guide/">How to Boost Your Website: Ultimate Image Optimization Guide</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1540</post-id>	</item>
		<item>
		<title>How to Automatically Add Watermark using WordPress</title>
		<link>https://ryandaniels.ca/blog/how-to-add-watermark-wordpress/</link>
		
		<dc:creator><![CDATA[Ryan Daniels]]></dc:creator>
		<pubDate>Wed, 19 Aug 2015 16:36:51 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress How To]]></category>
		<guid isPermaLink="false">https://ryandaniels.ca/?p=1534</guid>

					<description><![CDATA[<p><a href="//ryandaniels.ca/blog/how-to-add-watermark-wordpress/"><img src="https://ryandaniels.ca/wp-content/uploads/automatically_add_watermark_wordpress-300x169.jpg" alt="How to Automatically Add Watermark" width="300" height="169" class="alignleft size-thumbnail wp-image-1537" /></a>Most people have pictures on their website. If you don't have any pictures, you probably should! When these pictures are original works you don't want other people using them. Another reason to add a watermark is if you want your logo on your pictures so people can identify your brand.</p>
<p>The post <a href="https://ryandaniels.ca/blog/how-to-add-watermark-wordpress/">How to Automatically Add Watermark using WordPress</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-575" src="//ryandaniels.ca/wp-content/uploads/automatically_add_watermark_wordpress-800x450.jpg" alt="How to Automatically Add Watermark" width="800" height="450" /></p>
<p>Most people have pictures on their website. If you don&#8217;t have any pictures, you probably should! When these pictures are original works you don&#8217;t want other people using them. A watermark can help deter unwanted use of your pictures. Another reason to add a watermark is if you want your logo on your pictures so people can identify your brand.</p>
<p>One way to help do that is by adding a watermark. Using a WordPress Plugin, you can automatically add watermark to your pictures. This is the second post in the <a href="//ryandaniels.ca/blog/images-on-your-website/">Essential Guide to Images on your Website</a> series.</p>
<h2>Automatically Add Watermark</h2>
<p>I like the free WordPress plugin <a href="https://wordpress.org/plugins/easy-watermark/" target="_blank" rel="noopener noreferrer">Easy Watermark</a>. It has many options to use text or a picture for the watermark. It can also automatically apply the watermark to your picture when you upload it to WordPress. If you don&#8217;t want that, you can do a batch watermark on all your pictures or manually choose which existing pictures to watermark.</p>
<p>You might not want all images that WordPress automatically created to be watermarked. For example, the Thumbnail size is so small you might not want to see the watermark on it when reading your article. You only want the full size picture to have the watermark. Easy Watermark has the option to only apply the watermark to the image sizes you want.</p>
<p><a href="//ryandaniels.ca/wp-content/uploads/automatically_add_watermark_wordpress-easy_watermark_settings-general.png" rel="lightbox[1534]"><img loading="lazy" decoding="async" class="alignnone size-thumbnail wp-image-798" src="//ryandaniels.ca/wp-content/uploads/automatically_add_watermark_wordpress-easy_watermark_settings-general-246x300.png" alt="How to Automatically Add Watermark using WordPress - Easy Watermark Settings General" width="246" height="300" /></a></p>
<p>&nbsp;</p>
<p>The settings I use so both portrait and landscape pictures look good with a watermark:</p>
<p><a href="//ryandaniels.ca/wp-content/uploads/automatically_add_watermark_wordpress-easy_watermark_settings-image.png" rel="lightbox[1534]"><img loading="lazy" decoding="async" class="alignnone size-thumbnail wp-image-799" src="//ryandaniels.ca/wp-content/uploads/automatically_add_watermark_wordpress-easy_watermark_settings-image-155x300.png" alt="How to Automatically Add Watermark using WordPress - Easy Watermark Settings Image" width="155" height="300" /></a></p>
<p>&nbsp;</p>
<p>Notice I use an Image for the watermark. You can create the watermark image using <a href="http://www.getpaint.net/index.html" target="_blank" rel="noopener noreferrer">paint.net</a>. More about that tool in my next post about Image Optimization Guide. Be sure to use a PNG file with transparency, and you&#8217;ll be good to go.</p>
<h2>Wrapping Up</h2>
<p>Adding a watermark to a picture is simple using a free WordPress plugin. If you don&#8217;t want to use a plugin for this task, you can also manually add a watermark using your photo editing software of choice. I&#8217;d rather save some time and let WordPress handle the job!</p>
<p><div class="thebluebox">
<h2 style="text-align: center;">Need help with your website?<br /><br />
<a href="//ryandaniels.ca/contact/">How can I help you?</a></h2>
</div></p>
<p>The post <a href="https://ryandaniels.ca/blog/how-to-add-watermark-wordpress/">How to Automatically Add Watermark using WordPress</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1534</post-id>	</item>
		<item>
		<title>Essential Guide to Images on your Website</title>
		<link>https://ryandaniels.ca/blog/images-on-your-website/</link>
		
		<dc:creator><![CDATA[Ryan Daniels]]></dc:creator>
		<pubDate>Sat, 15 Aug 2015 14:55:18 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[WordPress Guide]]></category>
		<guid isPermaLink="false">https://ryandaniels.ca/?p=1527</guid>

					<description><![CDATA[<p><a href="//ryandaniels.ca/blog/images-on-your-website/"><img src="https://ryandaniels.ca/wp-content/uploads/essential_guide_to_images_on_your_website-300x169.jpg" alt="Essential Guide to Images on your Website" width="300" height="169" class="alignleft size-thumbnail wp-image-1530" /></a>Using images on your website is crucial these days. Images can help give your website some excitement. The right images on your website will even help you boost conversion rates. </p>
<p>Another reason to use images in your articles is for an added increase of search engine optimization (SEO).</p>
<p>The post <a href="https://ryandaniels.ca/blog/images-on-your-website/">Essential Guide to Images on your Website</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-551" src="//ryandaniels.ca/wp-content/uploads/essential_guide_to_images_on_your_website-800x450.jpg" alt="Essential Guide to Images on your Website" width="800" height="450" /></p>
<p>Using images on your website is crucial these days. Images can help give your website some excitement. The right images on your website will even help you <a href="https://blog.kissmetrics.com/boost-conversions-using-images/" target="_blank" rel="noopener noreferrer">boost conversion rates</a>.</p>
<p>Another reason to use images in your articles is for an added <a href="http://www.searchenginejournal.com/seo-101-optimize-images-make-seo-rockstars-4-steps/136290/" target="_blank" rel="noopener noreferrer">increase</a> of search engine optimization (SEO).</p>
<p>Using images can be confusing. These topics will help you understand and use images more effectively. If you have questions like: How can I make pictures look good on my website? How do I optimize images so my website loads fast? What is a watermark and why should I use a gallery WordPress plugin? The answers will come in future posts.</p>
<p>Most of the topics will be tied back to WordPress. But some of the topics are universal for all websites. So even if you don&#8217;t use WordPress these posts will help you.</p>
<p>In this series I&#8217;ll share several topics, and over the next few weeks include them in this list:</p>
<h2>Essential Guide to Images on your Website</h2>
<ul>
<li><a href="//ryandaniels.ca/blog/best-wordpress-lightbox-plugin/">The Best WordPress Lightbox Plugin</a></li>
<li><a href="//ryandaniels.ca/blog/how-to-add-watermark-wordpress/">Add Watermark using WordPress</a></li>
<li><a href="//ryandaniels.ca/blog/how-to-boost-your-website-ultimate-image-optimization-guide/">Image Optimization Guide</a></li>
<li>All the Pros use these WordPress Tools &#8211; And so does Tony Danza</li>
</ul>
<p>Ok, the last one isn&#8217;t true. The list for this series will be a work in progress so check back often.</p>
<p>Do you know someone with a website that could use these tips? Share this with them.</p>
<p>[Tweet &#8220;Essential Guide to Images on your Website&#8221;]</p>
<p>Are there any other topics that you would like me to explore? <a href="/contact/">Let me know</a>!</p>
<p>The post <a href="https://ryandaniels.ca/blog/images-on-your-website/">Essential Guide to Images on your Website</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1527</post-id>	</item>
		<item>
		<title>Stop iframe Content Theft</title>
		<link>https://ryandaniels.ca/blog/stop-iframe-content-theft/</link>
		
		<dc:creator><![CDATA[Ryan Daniels]]></dc:creator>
		<pubDate>Tue, 04 Aug 2015 14:06:36 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress How To]]></category>
		<guid isPermaLink="false">https://ryandaniels.ca/?p=1520</guid>

					<description><![CDATA[<p><a href="//ryandaniels.ca/blog/stop-iframe-content-theft/"><img src="https://ryandaniels.ca/wp-content/uploads/stop_iframe_content_theft-1280x720-300x169.jpg" alt="Stop iframe Content Theft" width="300" height="169" class="alignleft size-medium wp-image-1524" /></a>Don't let your website be a victim of content theft!<br />
Stop other websites from using your website content with their message (overlay) over top.</p>
<p>Some websites offer a "service" to create their own call to action over top of any website. Why is this a problem? If some other person is using your content with their own call to action or ads on top it can appear that they created the content.</p>
<p>They are getting the benefit from your content. Some would consider that content theft. At best it's pretty shady.</p>
<p>The post <a href="https://ryandaniels.ca/blog/stop-iframe-content-theft/">Stop iframe Content Theft</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-447" src="//ryandaniels.ca/wp-content/uploads/stop_iframe_content_theft-1280x720-800x450.jpg" alt="Stop iframe Content Theft" width="800" height="450" /></p>
<p><strong>Don&#8217;t let your website be a victim of content theft!</strong><br />
Stop other websites from using your website content with their message (overlay) over top.</p>
<p>Some websites offer a &#8220;service&#8221; to create their own call to action over top of any website. Why is this a problem? If some other person is using your content with their own call to action or ads on top it can appear that they created the content.</p>
<p>They are getting the benefit from your content. Some would consider that content theft. <strong>At best it&#8217;s pretty shady</strong>.</p>
<h2>How to Stop iframe Content Theft</h2>
<p>To stop this, there are a few options.</p>
<ol>
<li>Add one line of code to your web server config or .htaccess file</li>
<li>Use a WordPress Plugin to add that one line of code</li>
<li>Use a WordPress Plugin to use JavaScript</li>
</ol>
<h3>One line of code</h3>
<p>The most efficient way to stop this is to add one line of code to your web server configuration file. This will block any website that is trying to use an <a href="https://en.wikipedia.org/wiki/HTML_element#Frames" target="_blank" rel="noopener noreferrer">iframe</a> to load your website. Don&#8217;t worry, it won&#8217;t break anything on your own website if internally you want to use an iframe.</p>
<p>In your root .htaccess file or Apache httpd.conf (/etc/apache2/httpd.conf) add this:</p>
<pre><code>Header always append X-Frame-Options SAMEORIGIN</code></pre>
<p>The SAMEORIGIN option means you can still use an iframe to load anything from your own website in an iframe.</p>
<h3>Plugin to add that one line of code</h3>
<p>There is another option if you can&#8217;t edit the .htaccess file or are not comfortable with that. You can install the <a href="https://wordpress.org/plugins/wp-noframenoclickjacking/" target="_blank" rel="noopener noreferrer">WP no-iFrames</a> plugin (free) to do this for you.</p>
<p>The above methods will completely block any website trying to use your content in an iframe. Some of these overlay &#8220;services&#8221; won&#8217;t even let a user create content from your website because it is now &#8220;<a href="https://sniply.zendesk.com/hc/en-us/articles/200878425-Why-doesn-t-Sniply-support-insert-site-" target="_blank" rel="noopener noreferrer">secure</a>&#8220;. Your content is now safe from this iframe content theft!</p>
<p>Here&#8217;s an example of what it now looks like when blocking the iframe content theft.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-717" src="//ryandaniels.ca/wp-content/uploads/stop_iframe_content_theft-example.png" alt="Stop iframe Content Theft - Example of Blocked website" width="645" height="440" /></p>
<h3>Plugin using JavaScript &#8211; Frame Buster</h3>
<p>A third option is using a bit of JavaScript to gracefully block any overlay, and then redirect the user to your website. <strong>This is a great way to still get the visitor to your website</strong> when a shady overlay website is trying to use your content. That will show them!</p>
<p>A free plugin called <a href="http://warfareplugins.com/frame-buster/?ref=158" target="_blank" rel="noopener noreferrer">Frame Buster</a> from Warfare Plugins can do this for you.</p>
<p>[Tweet &#8220;Don&#8217;t let your website be a victim of content theft&#8221;]</p>
<h2>Conclusion</h2>
<p>If you want a quick way to block content thieves from using an overlay on top of your content you can use one line of code to block them. No plugin needed.</p>
<p>However if you want to redirect that user to your own website and don&#8217;t mind using another plugin to do this, then Sniply Buster is for you.</p>
<p>Apparently only <a href="https://sniply.zendesk.com/hc/en-us/articles/200878425-Why-doesn-t-Sniply-support-insert-site-" target="_blank" rel="noopener noreferrer">1%</a> of websites are blocking these tools. <strong>Let&#8217;s get this number higher</strong>. Don&#8217;t let your website be a victim of content theft!<br />
<div class="thebluebox">
<h2 style="text-align: center;">Need help with your website?<br /><br />
<a href="//ryandaniels.ca/contact/">How can I help you?</a></h2>
</div></p>
<p>The post <a href="https://ryandaniels.ca/blog/stop-iframe-content-theft/">Stop iframe Content Theft</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1520</post-id>	</item>
		<item>
		<title>The Best WordPress Lightbox Plugin</title>
		<link>https://ryandaniels.ca/blog/best-wordpress-lightbox-plugin/</link>
		
		<dc:creator><![CDATA[Ryan Daniels]]></dc:creator>
		<pubDate>Tue, 28 Jul 2015 14:11:24 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress How To]]></category>
		<category><![CDATA[WordPress Plugins]]></category>
		<guid isPermaLink="false">https://ryandaniels.ca/?p=1513</guid>

					<description><![CDATA[<p><a href="//ryandaniels.ca/blog/best-wordpress-lightbox-plugin/"><img src="//ryandaniels.ca/wp-content/uploads/best_wordpress_lightbox_plugin-1280x720-300x169.jpg" alt="Best WordPress Lightbox Plugin" width="300" height="169" class="alignleft size-medium wp-image-1517" /></a>Too many websites have a poor look and feel to them. The user experience of your website needs to be awesome.</p>
<p>One easy way to improve the user experience is by having your pictures displayed beautifully. How? In this post I'll talk about the best WordPress Lightbox plugin, and a few alternatives.</p>
<p>The post <a href="https://ryandaniels.ca/blog/best-wordpress-lightbox-plugin/">The Best WordPress Lightbox Plugin</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-414" src="//ryandaniels.ca/wp-content/uploads/best_wordpress_lightbox_plugin-1280x720-800x450.jpg" alt="Best WordPress Lightbox Plugin" width="800" height="450" /></p>
<p>Too many websites have a poor look and feel to them. The user experience of your website needs to be awesome.</p>
<p>One easy way to improve the user experience is by having your pictures displayed beautifully. How? In this post I&#8217;ll talk about the best WordPress Lightbox plugin, and a few alternatives. For other great plugins be sure to check out <a href="//ryandaniels.ca/blog/best-wordpress-plugins-start-blog/">The Best WordPress Plugins to Kick-Start your Blog</a>.</p>
<p>Ok, lets talk about Lightbox.</p>
<p>&nbsp;</p>
<p>A great way to improve your website is by having beautiful pictures that look even better when a user clicks on them and they open up smooth and seamlessly to a larger picture.</p>
<p>Being seamless is the key idea here. You don&#8217;t want a user to click on a picture and they are taken away from your website.</p>
<p>Here&#8217;s an example of what I mean:</p>
<p><figure id="attachment_681" aria-describedby="caption-attachment-681" style="width: 300px" class="wp-caption alignnone"><a href="//ryandaniels.ca/wp-content/uploads/wordpress_lightbox_plugin-long_road-1280x720.jpg" rel="nobox" rel="lightbox[1513]"><img loading="lazy" decoding="async" class="wp-image-681 size-medium" src="//ryandaniels.ca/wp-content/uploads/wordpress_lightbox_plugin-long_road-1280x720-300x169.jpg" alt="WordPress Lightbox Plugin - Long Road back" width="300" height="169" /></a><figcaption id="caption-attachment-681" class="wp-caption-text">No Lightbox effect. Bad user experience!</figcaption></figure></p>
<p>&nbsp;</p>
<p>You click on the above picture, and you are taken away from my website. The picture opens and to go back you need to click your back button. Hopefully you do click on your back button and continue reading this!</p>
<p><strong>That&#8217;s a problem.</strong> I&#8217;ve essentially left the website I was on to look at a picture. Will I come back? Will your visitor come back?</p>
<h2>How to fix this bad user experience?</h2>
<p>Lightbox has been around for several years. It is a way to display images (and video) by filling the user&#8217;s screen and dimming the rest of the webpage. (<a href="https://en.wikipedia.org/wiki/Lightbox_%28JavaScript%29" target="_blank" rel="noopener noreferrer">Thanks Wikipedia</a>)</p>
<h2>The Best WordPress Lightbox Plugin</h2>
<h3>WP jQuery Lightbox</h3>
<p>The <a href="https://wordpress.org/plugins/wp-jquery-lightbox/" target="_blank" rel="noopener noreferrer">WP jQuery Lightbox</a> (free) WordPress plugin is extremely simple to use. Just install it, change a few settings and everything else is automatic. All your pictures will automatically be displayed using Lightbox and look great.</p>
<p>Also, the resource usage is very light compared to other Lightbox plugins. Your website will continue to load fast for your visitors.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-680" src="//ryandaniels.ca/wp-content/uploads/wordpress_lightbox_plugin-WP_jQuery_Lightbox.png" alt="The Best WordPress Lightbox Plugin - WP jQuery Lightbox" width="649" height="430" /></p>
<p>&nbsp;</p>
<p>Give it a try now, with the Lightbox effect enabled. Doesn&#8217;t it look so much better than the first time you clicked on it? You can even have a caption displayed with the picture.</p>
<p><figure id="attachment_681" aria-describedby="caption-attachment-681" style="width: 300px" class="wp-caption alignnone"><a href="//ryandaniels.ca/wp-content/uploads/wordpress_lightbox_plugin-long_road-1280x720.jpg" rel="lightbox[1513]"><img loading="lazy" decoding="async" class="wp-image-681 size-medium" src="//ryandaniels.ca/wp-content/uploads/wordpress_lightbox_plugin-long_road-1280x720-300x169.jpg" alt="WordPress Lightbox Plugin - Long Road back. Much better with the WordPress Lightbox Plugin" width="300" height="169" /></a><figcaption id="caption-attachment-681" class="wp-caption-text">Lightbox effect in action. So much better!</figcaption></figure></p>
<h4>Two other alternatives:</h4>
<p><a href="https://wordpress.org/plugins/simple-lightbox/" target="_blank" rel="noopener noreferrer"> Simple Lightbox</a> (free). Also easy to use, but uses more JavaScript/code than WP jQuery Lightbox so it is heavier on resources and page loading time.<br />
<a href="https://wordpress.org/plugins/wp-lightbox-2/" target="_blank" rel="noopener noreferrer"> WP Lightbox 2</a> (free/premium). Has more options if you pay for it. Also needs more resources.</p>
<h3>These all work for pictures, but what about video?</h3>
<p>Another plugin to the rescue. <a href="https://wordpress.org/plugins/wp-video-lightbox/" target="_blank" rel="noopener noreferrer">WP Video Lightbox</a> (free) can handle youtube and vimeo videos in a Lightbox display. Is it worth adding another plugin to do this? In my opinion no, it is not needed. The built-in WordPress support for <a href="https://codex.wordpress.org/Embeds" target="_blank" rel="noopener noreferrer">embedding</a> works well enough.</p>
<h3>Notable mention</h3>
<p><a href="https://wordpress.org/plugins/grand-media/" target="_blank" rel="noopener noreferrer">Gmedia Gallery</a> (free) is another alternative which can do images and local video. The one nice thing about this plugin that I really like is the thumbnail view. <a href="http://codeasily.com/wordpress-plugins/gmedia-gallery/" target="_blank" rel="noopener noreferrer">It looks great</a>. If you need something more advanced this is the plugin to use.</p>
<p>[Tweet &#8220;Improve your website user experience. The Best #WordPress Lightbox Plugin&#8221;]</p>
<h2>Conclusion</h2>
<p>Adding the Lightbox effect to your WordPress website can really enhance your pictures and overall user experience. The best WordPress Lightbox plugin is WP jQuery Lightbox. It is easy to use, and light weight on resources and page loading time.</p>
<p>If you need something more advanced (with a very nice thumbnail view effect), try Gmedia Gallery.</p>
<p>What do you think about the Lightbox effect? Have you found a better plugin? Let me know in the comments.<br />
<div class="thebluebox">
<h2 style="text-align: center;">Need help with your website?<br /><br />
<a href="//ryandaniels.ca/contact/">How can I help you?</a></h2>
</div></p>
<p>The post <a href="https://ryandaniels.ca/blog/best-wordpress-lightbox-plugin/">The Best WordPress Lightbox Plugin</a> appeared first on <a href="https://ryandaniels.ca/">Ryan Daniels</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1513</post-id>	</item>
	</channel>
</rss>
