Stolen content is the bane of every blogger who provides a publicly available RSS feed. By delivering your content via feed, you make it easy for scrapers to assimilate and re-purpose your material on their crap Adsense sites. It’s bad enough that someone would re-post your entire feed without credit, but to use it for cheap money-making schemes is about as pathetic as it gets. If you’re lucky, the bastards may leave all the links intact, so at least you will get a few back-links (if you have been linking internally) and get notified of the stolen content as well (via pingback or Google Alert). Lately, however, many of the scraper sites that I have seen are completely removing all links within the stolen content. Incidentally, there are some tell-tale signs that the site you are visiting is a scraper site:
- No RSS feed available
- Many quality posts that contain no links
- Many quality posts but very low subscriber count
- Great content but with zero comments on any posts
- Lots of good content but with lots of Adsense or other ads
- No “About” page or business information
- And the number one brain-dead giveaway: no contact form or email address
If you pay attention as you surf around, you may want to keep an eye out for some of these dead giveaways. If it looks like the site is profiting from stolen content, it is advisable to leave immediately and locate an original source of information (you could even be cool and report the scraper site to the original author). I.e., help strengthen the legit blogging community and don’t support scrapers in any way. But avoiding scraper sites is merely an afterthought. The real challenge is to have a solid strategy in place that will help you identify, eliminate and prevent stolen content. Unfortunately, there is no “magic cure” that will stop the scrapers from stealing your hard work — apart from running a private site or not providing a feed — but there are many great tools that have proven quite effective in fighting the war against stolen content. While not completely exhaustive, here are some powerful tips and tricks that have served me well over the years:
Continue Reading
When developing the colorful Quintessential Theme (opens in new tab), I initially planned on displaying five random posts from each of my most popular tags and categories in the super-slick sliding-panel sidebar. Because I am running an older version of WordPress, however, this task proved to be quite the educational experience.
In newer versions (from 2.5 I think) of WordPress, the query_posts() function enables users to display posts in random order using the orderby=rand parameter. This would have made my life easy, as I could have included the following code for each of my random post lists:
Continue Reading
Getting the best possible web hosting is for obvious reasons something that all website owners aim to do. However, you might know what type of web hosting you are looking to get but still do not know what provider to partner up with. Many of the web hosting top lists you find on the web today look the same as they all take the same things into account. These guides usually take into account similar factors and cost usually is weighted highly. While many people do simply look for the cheapest host with decent reviews, there are others who seek slightly more from their provider. Below are some of the most sought after hosting types (dedicated, shared, vps, green) and some of the providers within those categories who may be overlooked by users but provide some excellent service.
Continue Reading
In my article, Associate Extensionless Files with Notepad, I explain how to navigate the labyrinthine maze of Windows dialogue menus to assign Microsoft’s Notepad text editor as the opening application for files without extensions. In this post, I’ll show you how to associate any file type with any program (including Notepad) in less than five seconds.
Ready? Don’t blink, you’ll miss it.. ;)
Modify any file extension association in five seconds
Open the Windows command prompt and enter the following command:
assoc .extension=fileType
It’s that easy. What is happening here? Let’s break it down, just for fun:
assoc — Windows file-association command
.extension — the extension of the file for which you would like to associate
fileType — the type of file that you would like to associate with your extension
Continue Reading
Our recent quest to find a publisher has finally paid off. After spending a few weeks checking out different publishers and myriad publishing options, Chris Coyier and I have decided to go the DIY-route and publish the book ourselves as a PDF. The book is titled “Digging into WordPress,” and is due out late Summer or early Fall of this year. It’s going to be packed full of juicy WordPress goodness and I hope that you check it out when it’s released.
In the meantime, while we are busy working behind the scenes to make the book the best it can be, we have launched an accompanying DiW website that focuses on WordPress, the book, and how to take your WordPress-powered sites to the next level. Here is a screenshot of the site, which is located at DiggingIntoWordPress.com:
Continue Reading
I finally broke down and uninstalled Alex King’s once-great “Popularity Contest” plugin for WordPress.
The plugin had been installed here at Perishable Press for over two years, and had provided fairly consistent and apparently accurate statistics.
Unfortunately, there were serious errors involved with the plugin way back during the WordPress-2.3 upgrade that were never addressed by the plugin author. There was an interim version of the plugin that had patched the error until an official update was released, but sadly and almost two years later this has not happened. I don’t know about you, but I really don’t like running abandoned plugins on my site.
Continue Reading
Normally, when visitors post a comment to your site, specific types of client data are associated with the request. Commonly, a client will provide a user agent, a referrer, and a host header. When any of these variables is absent, there is good reason to suspect foul play. For example, virtually all browsers provide some sort of user-agent name to identify themselves. Conversely, malicious scripts directly posting spam and other payloads to your site frequently operate without specifying a user agent. In the Ultimate User-Agent Blacklist, we account for the “no-user-agent” case in the very first directive, preventing a host of anonymous visitors from hitting the site.
In addition to empty user-agent strings, malicious requests for site content frequently fail to provide any referrer information. Unless special privacy software is being used, the web page from which a visitor has arrived at your site will be specified in the header information for that request. Likewise, when a visitor posts a comment at your site, the referrer string for that post request will be the URL of that particular page. Thus, as with blank user-agent requests, no-referrer requests are frequently indicative of spam and other malicious behavior.
Another important piece of information provided by all legitimate clients is the host request header. The host header specifies the Internet host and port number of the requested resource. This information is required for all clients making HTTP/1.1 requests. Thus, requiring the host request-header field for all posts to your site safely eliminates illicit requests from hitting your server.
Continue Reading
When designing sites, it is often useful to identify different pages by adding an ID attribute to the <body> element. Commonly, the name of the page is used as the attribute value, for example:
<body id="about">
In this case, “about” would be the body ID for the “About” page, which would be named something like “about.php”. Likewise, other pages would have unique IDs as well, for example:
<body id="archive">
<body id="contact">
<body id="subscribe">
<body id="portfolio">
..again, with each ID associated with the name of the page. This identification strategy is useful for a variety of reasons, including the following:
- Page-specific control over CSS via descendant selectors
- Page-specific DOM manipulation via JavaScript
- Page-specific control over the navigational interface, current-page highlighting et al
- Page-specific content-inclusion via conditional PHP
if() statements
For page-specific control over your design, using the current page name as the body ID will certainly do the trick. The question is, what is the best way to go about defining the different attributes? For static sites or for sites with only a few pages, it might be easiest to just add the IDs manually. For larger, dynamic sites, however, you can automate the process with the magical powers of PHP.
Continue Reading
The other day, my server crashed and Perishable Press was unable to connect to the MySQL database. Normally, when WordPress encounters a database error, it delivers a specific error message similar to the following:
Continue Reading
Importing and displaying external RSS feeds on your site is a great way to share your online activity with your visitors. If you are active on Flickr, Delicious, Twitter, or Tumblr, your visitors will enjoy staying current with your updates. Many social media sites provide exclusive feeds for user-generated content that may be imported and displayed on virtually any web page. In this article, you will learn three ways to import and display feed content on your WordPress-powered website — without installing yet another plugin.
Update: This article applies to older versions of WordPress (less than 2.8). For WordPress 2.8 and better, please check out this post at Digging into WordPress. Thanks!
On the menu for this tutorial:
- Importing and displaying feeds with WordPress & Magpie (simple method)
- Importing and displaying feeds with WordPress & Magpie (advanced method)
- Importing and displaying feeds with SimplePie (WordPress not required)
Continue Reading
After several months of working diligently behind the scenes, I am officially announcing my latest project: a new book on WordPress. Without giving away too much at this time, here are some facts about it:
- It’s focused on WordPress
- It’s co-authored between Chris Coyier and myself
- It’s going to be awesome
Chris and I have been working on the book for several months now and are very pleased with the results. Both of us have some — albeit limited — knowledge of the publishing world. Truth be told, we don’t have a publisher yet and aren’t quite sure about how to go about finding one.
Does anyone happen to know more about finding a good publisher? Are there any publishers out there interested in talking about this book? Any other folks have any ideas or advice? Please share your ideas in the comments area below or contact me directly.
In addition to your choice collection of “Share This” links, you may also want to provide visitors with a link that enables them to quickly and easily send the URL permalink of any post to their friends via email. This is a great way to increase your readership and further your influence. Just copy & paste the following code into the desired location in your page template:
<a href="mailto:?subject=Fresh%20Linkage%20@%20Perishable%20Press&body=Check%20out%20<?php the_permalink(); ?>%20from%20Perishable%20Press" title="Send a link to this post via email" rel="nofollow">Share this post via email</a>
Within the code, you will need to edit both instances of the string “Perishable%20Press” to reflect your own site name. Note that the “%20” is the encoded equivalent of a blank space, and is required to ensure validation of parameterized query strings. As is, the code will generate an email that is populated with the following information:
Continue Reading
I checked my Feedburner subscriber count on April 2nd and was surprised to see that the number of RSS subscribers had dropped from around 1800 to around 1100. The next day, my subscriber count decreased again, this time to around 700. Today, my Feedburner statistics increased slightly to around 1000 subscribers. So, in the course of three days I lost around 40% of my loyal readers, according to Google Feedburner. Will I get these subscribers back? Will my Google subscriber count return to normal? Why did my Feedburner count drop in the first place? Let’s explore the issue and try to answer these critical questions.
Continue Reading
WordPress for Business Bloggers by Packt Publishing was a pleasure to read because it approaches many of the important aspects of WordPress from a slightly different perspective: that of the “business blogger”. The book is aimed at the aspiring business blogger who wants to use WordPress to run a successful business blog. The book claims to skip the basics and jump right into the meat of transforming WordPress into a lean, mean business blogging machine. While this may be true for the book’s target audience, the technical aspects of WordPress covered in the book are familiar ground to the seasoned WordPress user.
Digging into the book, readers will find the expected WordPress topics explored from a business-blogging point of view. The books moves along at a quick pace, and quickly makes the case for using WordPress to achieve their business blogging goals. The book then presents a case-study that serves as a working example throughout the remainder of the book. After a quick romp through some basic design and coding principles, the book covers the essentials on integrating image and video content into your blog. The following chapter emphasizes the importance of content in general, and provides some timeless advice on using WordPress to deliver superior content.
Continue Reading
Here at Perishable Press, the number of posts listed in my archives is rapidly approaching the 700 mark. While this is good news in general, displaying such a large number of posts in an effective, user-friendly fashion continues to prove challenging. Unfortunately, my current strategy of simply dumping all posts into an unordered list just isn’t working. I think it’s fair to say that archive lists containing more than like 50 or 100 post titles are effectively useless and nothing more than a usability nightmare. With growing numbers of blogs building up massive collections of posts, finding better ways to display vast quantities of archived material becomes increasingly important.
One solution that seems popular involves breaking the archives down into various categories, tags, and time periods. This provides meta-context to each list of titles and usually eliminates the need for any hideously long post listings. This solution works well, especially when the different category lists are displayed adjacently in multiple vertical columns. For example, a blog with three categories would do well to display each category’s archive listings in its own vertical column. Something like this:
Continue Reading
After hearing about the recently released “premium” version of Dyasonhat’s Smart Sort Plugin for WordPress, I just had to give it a try. Occasionally working on projects requiring customized ordering of posts, I like to keep my utility belt well-equipped with any plugins or code techniques that will facilitate the process of man-handling post order. In this article, I discuss my experience with WP Smart Sort Premium.
Continue Reading
Several months after the release of the Arabic and Spanish versions of Contact Coldform, I am pleased to announce the release of a French translation of the plugin. The new French translation is graciously provided by Tony Tohme, who is also helping with the upcoming Russian translation of the Coldform. Thank you, Tony! :)
To download the French version of Contact Coldform, check out the plugin’s home page, where you will find additional information, future updates, and much more.
Continue Reading