Your Propeller-Head’s Tips & Tricks

Loaded with "FREE" Internet Marketing, Wordpress Design, Website Development and Seo Tips, Tricks & Tools!

Security Alert for WordPress Standalone Using Caching Plugins

If you are running a caching plugin update it now!

Heck – there is never an excuse not to update your site, plugins and theme; that is unless you WANT to be HACKED.

Update WP Super Cache and W3TC Immediately – Remote Code Execution Vulnerability Disclosed

Remember to backup your database first.

Don’t know how? - Contact your Webmaster or Virtual Assistant immediately

And, if you don’t have one, we would be happy to help backup and update your WordPress installation!

Responding to a Canned SEO Spam Pitch

If anything truly irritates me it’s spam email about how I can improve my SEO and all the business I’m loosing. I mean seriously, if you want those pitches to sound credible don’t send them to companies versed in SEO.

What makes these violations of the Can Spam act so horrible is that they don’t even bother to do the basic research they claimed to have done in the email.

Being that the website they are attempting to pitch services for is a search engine friendly redirect to another one of my websites, isn’t visible in browsers and has no content on it – there is no way the sender of these messages could have done the research they claimed. Even if they had attempted it, they would notice a different domain name and gone to a site that isn’t even completed yet; ironically justifying the portion of their marketing pitch that says I need to do my SEO.

The following is my response to one of these boneheads in India (uses the TLD .in) and his two original messages.

Hi David,

Thanks for this opportunity to create a great post on my SEO blog. It’s not often I receive unsolicited emails for SEO services that have gone to lengths of research you have!

It’s absolutely amazing how you were able to determine I have a great design, but don’t rank well organically for my keywords/terms with saeler.com.

Without your incredibly detailed research, I’d never have known how much business I’m missing out on.

In fact I’m so impressed I was wondering if you could answer a simple question for me; what mind blowing technique have you developed that enables you to analyze both the design and optimization of saeler.com?

The fact that you are able to analyze this information, even though saeler.com is a 301 redirect which instantaneously redirects browsers and search engines to another domain, is beyond mind blowing.

Take the hint and stop the spam.

Regards
Jason
SEO EXPERT

From: info@rankingplus.in [mailto:info@rankingplus.in]
Sent: Monday, December 17, 2012 8:17 AM
To: info@saeler.com
Subject: Re:Web Listing

Hi,
Hope you are doing well.
I was expecting your response on my email for SEO Services as was mailed you yesterday.
Let me know if you are interested and we can discuss this further.

Regards
David
SEO Coordinator

From: info@rankingplus.in [mailto:info@rankingplus.in]
Sent: Friday, December 14, 2012 11:45 PM
To: info@saeler.com
Subject: Web Listing

Hi

I hope that you are well. Whilst browsing the internet earlier I came across your website “www.saeler.com” and following a bit of analysis I have discovered that even though you have a great design you are missing out on a lot of business because you do not rank naturally that well for many relevant search terms in Google.We are partnered with one of the best SEO / Online marketing companies who could definitely rectify this problem.
If you are interested in finding out more about this offer then please email me back with your contact details and I will get someone to contact you as soon as possible.

I look forward to hearing from you shortly.

Regards
David
SEO Coordinator

 

WordPress Google Analytics Plugins Down for The Count

If you like the convenience of viewing your Google Analytics data in WordPress – your out of luck, at least for now.

Google recently updated it’s API to version 3 which, in plain English, means if you have an application on your website that talks to Google it needs to be updated to keep working. Unfortunately that means no Google Analytics stats in WordPress until the plugins are updated.

The two Analytics Plugins I run across most often are Google Analyticator and Google Analytics Dashboard; Analyticator is no longer being updated and Analytics Dashboard hasn’t been updated in well over a year.

If you have  installed Google Analyticator you can tell it’s not functioning by looking on your dashboard for the following error:

No Analytics account selected. Double check you are authenticated with Google on Google Analyticator’s settings page and make sure an account is selected.

If using the Googel Analytics Dashboard, go to settings and the select it in the drop down menu; the following error will most likely be displayed on that page:

Error gathering analytics data from Google: Error 404 (Not Found)!!1 *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}} 404. That’s an error. The requested URL /analytics/feeds/accounts/default was not found on this server. That’s all we know.

As soon as we locate an Analytics plugin that functions, we’ll update this post; until then, if you know of a solution, feel free to comment below.

Genesis and WP 3.4 Theme Editor Header Errors

If you run the Genesis Theme Framework and have recently updated to WordPress 3.4 you might have noticed some header errors when trying to edit your theme; while these errors don’t have an impact on your ability to edit the theme, they are irritating to look at. 

Warning: preg_grep() expects parameter 2 to be array, null given in /home/account/public_html/wp-content/themes/genesis/lib/admin/editor.php on line 39

Warning: Illegal offset type in /home/account/public_html/wp-content/themes/genesis/lib/admin/editor.php on line 39

Warning: Illegal offset type in /home/account/public_html/wp-content/themes/genesis/lib/admin/editor.php on line 40

Warning: preg_grep() expects parameter 2 to be array, null given in /home/account/public_html/wp-content/themes/genesis/lib/admin/editor.php on line 40

Warning: Illegal offset type in /home/account/public_html/wp-content/themes/genesis/lib/admin/editor.php on line 40

The Genesis Development Team is aware of these errors and the issue will be corrected in the next release of Genesis. Unfortunately it could be a little while and you may not want clients seeing the error messages.

Fortunately there is a simple fix to disable the error messages until Genesis releases the next update.

Go to your theme editor, open your functions.php and insert the following code (Standard warnings: always backup your theme and if you don’t know what you are doing, get a professional to help).

remove_action( 'admin_notices', 'genesis_theme_files_to_edit' );

 

For detailed information on what causes the errors, visit Nick The Geek’s Blog.

iPhone App for Smart Blogging

Tired of hauling around that laptop or tablet? Try downloading the official WordPress App for iPhone or Android. It’s a great tool for blogging on the go, but a text to speech function would make it easier on the hand and wrist.

www.wordpress.org

Sample CSS for the WP-Snap Glossary Plugin

WP-Snap Glossary PluginMany Glossary Plugins were tested on this website; all except for WP-Snap failed to make the grade. Eeven though WP-Snap requires CSS and Template configuration, it’s the only glossary that works well for this website.

Once installed the WP-Snap plugin needs some configuration or your Snap Glossary will display vertically in a very unattractive ordered list.

Below is a sample of the code used on this website to configure our Glossary page.

/***** WP-Snap ********************
ol.snap_nav {
        background: #f4f4f4;
        display: inline;
        margin: 4px 4px 30px 4px;
        padding: 6px;
	float: left;
	clear: both;
	list-style: none;
        border: 1px dashed #000080;
}

ol.snap_nav li {
	display: block;
        background: #fff;
	float: left;
	padding: 0 5px 0 5px;
        margin: 4px;
        text-align: center;
        border: 1px solid #c00136;
        color: #333;
        font-weight: bold;
}

ol.snap_nav li a {
        text-align: center;
        color: #0e1b92;
}

ol.snap_nav li a:hover {
        text-align: center;
        color: #c00136;
}

ol.snap_nav li.snap_selected a {
	cursor: text;
}

ol.snap_titles {
	clear: both;
	display: block;
	border: 0;
	list-style: none;
}

Keep It Clean, Watch Your Divs and CSS

Broken Div Tags and CSSThe most important lesson one can learn about website design, especially WordPress based websites where non-developers add content on a regular basis, is to preview or at least look at your new content before going about your merry way; far too often, simple mistakes make for bad fist impressions.

Take a look at the screen shot to the right from the Washington Post (the error was corrected in the time it took to create the screen shot). Notice how the left column is floating below the right column and the actual content of the blog post is below that.

Modern website designs and platforms like WordPress rely heavily on the use of CSS to determine the look and feel of the presentation by controlling the positioning of elements like columns, images, hyperlinks and headings. Div tags are used by HTML to then tell the browser when to load which element of a page.

When the CSS assigns too much/too little width to an element or an extra Div tag opens or prematurely closes an element in the website’s design, columns and backgrounds can become misaligned. Think of it like having a one gallon bucket and tossing in several books of varying sizes, if they aren’t organized correctly the books will extend above the lip of the bucket.

So what’s the lesson to take home here?

When changing the structure of your website or adding new content, take a moment and preview each change. Also, don’t forget to backup your files before making too many changes; repairing a damaged theme or template can take up a lot of valuable time.

wp-Snap and the Genesis Theme Framework

The wp-Snap plugin is (in our humble opinion) the best Glossary plugin for WordPress, even with the need to manually edit your WordPress theme’s category template. In fact, Saeler.com has used the plugin since before converting from the standard StudioPress Church Theme to the Genesis Theme Framework and custom Child Theme. 

When Genesis first launched there was a lot to learn; frameworks require different way of thought than standard themes. Many of the design elements that required theme template pages are no longer necessary. With a theme framework you only need to modify the way the templates files interact using hooks filters and functions.

Since Genesis had just launched and the new simpler way of modifying themes was’t making sense, the original attempt to merge wp-Snap and Genesis was extremely sloppy and overly complicated. Instead of simply using a hook, an elaborate hybrid of standard and framework code was used to create a category template for the Glossary category.

Sloppy wp-Snap and WordPress Integration

Once the “Sloppy code” was used to create a category template it was out of sight out of mind, until today. A couple years out of date; it was time for some clean up.


Now The Clean, Easy Way to Integrate wp-Snap with Genesis


First download/install and activate Genesis Simple Hooks, then under Genesis in your sidebar menu select Simple Hooks.

Next scroll down the page and look for “Loop Hook”, “genesis_before_loop Hook”

genesis_before_loop Hook

Check the box “Execute PHP on this hook?”, then paste in the following line of code; change in_category from X to the category ID.

Finally, customize the way wp-Snap displays by adding/editing the CSS.

ol.snap_nav {
	display: inline;
	float: left;
	clear: both;
	list-style: none;
}

ol.snap_nav li {
	display: block;
	float: left;
	padding: 0 10px 10px 0;
        text-align: center;
}

ol.snap_nav li a {
	font-weight: bold
}

ol.snap_nav li.snap_selected a {
	cursor: text;
}

ol.snap_titles {
	clear: both;
	display: block;
	border: 0;
	list-style: none;
}

Sermon Audio & WordPress Integration

SermonAudio.com is the largest and probably the best known audio streaming service for MP3 audio sermons from conservative churches and ministries worldwide. With a whole suite of tools for churches to store, broadcast and deliver their message online Sermon Audio would seem to be the ideal solution for any church to have an online outreach.

Unfortunately, there is a slight problem for churches with their own WordPress based websites —  repetition of labor because there isn’t a Sermon Audio Plugin for WordPress. Basically, if you want to list sermons on your own website you will have to list the sermon details on the website and in the Sermon Audio website. While there are options to using Sermon Audio, they have their drawbacks when it comes to backing up your sermon files, storage space and bandwidth requirements.

For example you could use the Sermon Browser Plugin and store the audio files on your own website; that would require that you have a hosting plan which can handle the storage, bandwidth and server load needed to deliver a minimum of 52 sermons a year. In a smaller church that might not be such a thing, but in a larger church with more people simultaneously accessing your sermon files it could get expensive compared to Sermon Audio’s low monthly rate.

Not to mention that, after a couple of years, those audio files start to take up a bit of storage space and maintaining backups becomes more difficult. Most hosting companies will restore a website for you at a minimal cost, or allow you to backup your site in a gzip file that they can restore for you at no cost. Since hosting companies have large numbers of websites to maintain, it’s not feasible for them to maintain backups that go back more than a few days at most; sometimes a restored website will have the same issues that were meant to be corrected by restoring the backup. If you decide to backup the site yourself, you will likely need to invest heavily in flash drives as the gzip files can easily exceed the storage capacity of a DVD or Blue Ray.

This brings us full circle, how to have your sermons on your own website and not have to send people to Sermon Audio without duplicating your effort? The Sermon Browser Plugin is pretty awesome, but just like Sermon Audio, you will need to fill out the sermon title, the sermon giver, any supporting materials, so that’s out.


 Integrate & Automate Sermon Audio and Your WordPress Website


WordPress Sermon Audio Widget Since we’ve established the benefits of using Sermon Audio and we know that there isn’t a direct plugin for it, let’s think outside of the box. By using the functionality that Sermon Audio provides in conjunction with a couple of unrelated WordPress Plugins we can actually automate updating a church’s WordPress based website (the basic principles can be used on other types of websites as well).

There are a couple of options to automate WordPress with your Sermon Audio account that can be used independently or in conjunction. The first is to use the Sermon Audio widget  and force it to work with WordPress the second is to use the Sermon Audio RSS Feed for your Church and have it generate posts for each sermon added to the feed.

Integrating Sermon Audio Widget and WordPress

There are basically four ways to integrate the widget with WordPress:

  1. Create a page that looks like your website and insert the widget code
    — Way to much work
      
  2. Code the widget directly into your WordPress theme
    — Still way to much work
     
  3. Upload the widget to your website and use an inline frame to load it
    — Fairly easily done with the IFrame Embedder plugin
    1. Get the Widget Code from Sermon Audio.
    2. Paste the widget code into a text file and upload it to the root web directory of your website, then rename the file to something like “sermon.php“.
    3. In the admin menu under “Settings” choose the settings you want to use with IFrame Embedder; the default settings should be fine for most people.
    4. Copy the shortcode sample from the settings page and paste it into a new page or post.
    5. Edit the shortcode to display the url to your sermon.php file and the height and width to fit within your WordPress theme. 
        
  4. Place widget code directly in your page/post
    — What’s easier than simply pasting the code into your page or post?
    1. Open/Create the post/Page you want to place the Sermon Audio Widget on.
    2. Click on the HTML tab in the MCE Editor
    3. Paste in the Sermon Audio Widget Code
    4. * Important! Always Save/Update or Publish while on the HTML tab; doing so while on the Visual tab could result in your Sermon Audio Code widget breaking.

 Integrating Sermon Audio RSS Feed and WordPress

Using the Sermon Audio RSS Feed with the RSS Plugin FeedWordPress is a bit more difficult than simply using the widget, but it’s well worth the trouble for the SEO value. Basically, FeedWordPress will create a post with the information from your RSS feed in your predefined categories with your predefined tags. 

Installing FeedWordPress is simple enough, but configuration is a bit more complex than this article has room for. Keeping it simple: 

  1. Configure your RSS Feed by replacing “USERNAME in the following code with your Sermon Audio Username; for more Feed options log into Sermon Audio.
    http://www.sermonaudio.com/rss_source.rss?sourceid=USERNAME&filter=mp3
      
  2. Add the feed to FeedWordPress and specify your publishing options.

Using Sermon Audio RSS Feed Or Widget Integration With WP


Which method of WordPress integration is ideal for your church depends upon your website and congregations needs. The Widget can be installed much more quickly and presents an aesthetically pleasing interface to browse your sermons. On the other hand, using the RSS Feed will have more SEO value.

Perhaps both methods have value for your church;

if that’s the case — use both!

Hiding WP Categories in Archives, Search & RSS

There are times when you may need to hide some of your content from displaying in certain elements of your WordPress website. Many people would use a plugin to accomplish what they want, but why make your server work harder than it needs to by loading a plugin when you can do it with a simple function?

This simple code snippet when placed in your theme’s functions.php file can be used/edited to remove specific categories from being displayed in archives, searches, RSS or any other aspect of WordPress that pulls multiple posts together.

Remember to backup your theme’s files prior to editing your functions.php so you don’t get stuck with a t-string error

T-String Parse Error

Function Code To Exclude a Category From The WordPress Search

// Exclude from search
function SearchFilter($query) {
     if ($query->is_search) {
        $query->set('cat','-4') ;
     }
     return $query;
}
add_filter('pre_get_posts','SearchFilter');

Breaking Down The Function Code Snippet

First the arbitrary description of what the function does.

 // Exclude from search

Next Define The Function by giving it a name. In this case “SearchFilter” because the snippet applies to, then filters the search results.

function SearchFilter($query) {

Tell the function what to query using WordPress Conditional Tags, in the current example we are filtering the search.

if ($query->is_search) {

Define the category/categories you wish to exclude by using the category id; comma separated for multiple categories and negative symbol to remove from search result,  otherwise the query will only show results from that category.

$query->set('cat','-4') ;

Filter the function so that it runs prior to pulling posts.

add_filter('pre_get_posts','SearchFilter');

WordPress Snippet Decoded — Now For More Examples

Exclude From RSS Feeds

// Exclude from feeds
function myFeedExcluder($query) {
 if ($query->is_feed) {
   $query->set('cat','-4');
 }
return $query;
}
add_filter('pre_get_posts','myFeedExcluder');

Exclude From Category Pages

// Exclude From Category
function CatFilter($query) {
     if ($query->is_category) {
        $query->set('cat','-4') ;
     }
     return $query;
}
add_filter('pre_get_posts','CatFilter');