<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Carpe Jugular Webmaster Resource &#187; WordPress</title>
	<atom:link href="http://carpejugular.com/category/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://carpejugular.com</link>
	<description>Articles about Wordpress, CSS and issues that concern commercial webmasters</description>
	<lastBuildDate>Sat, 19 May 2007 11:34:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Monetizing Your Blog</title>
		<link>http://carpejugular.com/monetizing-your-blog/</link>
		<comments>http://carpejugular.com/monetizing-your-blog/#comments</comments>
		<pubDate>Mon, 14 May 2007 22:08:16 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
				<category><![CDATA[WordPress]]></category>
<category>blogging</category><category>blogs</category><category>inbound links</category><category>search engines</category>
		<guid isPermaLink="false">http://carpejugular.com/monetizing-your-blog/</guid>
		<description><![CDATA[Blogs can be fun and profitable, but they aren't magic bullets guaranteeing fame and fortune. The choice between blog and splog is up to you: done right, both can work so long as your strategy matches that choice. Real blogging is the way to go if you want the most out of the search engines for each of your sites, but be prepared for the work which is involved.]]></description>
			<content:encoded><![CDATA[<p>Search engines love blogs. Search engines mean traffic. Traffic means money. Instant riches.</p>
<p>Although that train of thought contains a few kernels of truth and heaven knows it is appealing, the reality is rather different. First, you are not likely to earn more than a very modest income from even a fairly popular blog and if you don&#8217;t have your own traffic source for it, you are going to need patience as well as making sure you get everything right.</p>
<h2>Splog or Blog?</h2>
<p>Search engines don&#8217;t love blogs in particular, but they do love original text-based content, lots of it, in depth. And that&#8217;s exactly what the earliest blogs were providing. Ignore this at your peril because although you <em>can</em> run splogs (minimal, sales-pitch type and/or non-original text), you will not see near the search engine benefit for which &#8220;real&#8221; blogs have become legend. There are ways in which certain strategies and circumstances might make it worthwhile accepting that loss, just don&#8217;t be under any illusion that they work as well as the model they mimic. I may cover splogs another time, this article is about making the real thing work from scratch.</p>
<h2>Hardcore Blogging</h2>
<p>Do not take on blogging lightly. Blogs are long-term projects which must be worked on consistently: you need to add at least one meaty article a day. On top of that you will need to develop (inbound) links, since that is something else the search engines value highly. And unless you are ready to have your modest earner as part of a varied empire, once you have your first blog under your belt, you will need a second, then a third and so on. A lot of work by the time you are done.</p>
<p>Don&#8217;t worry about visual content, RSS feeds and all the other tools at first. Blogging is about writing, so start by identifying a niche or angle you will be able to write about every day. How will you write? If you Google pretty much anything you will get thousands of results, so what style, personality or authority can you bring to your site to make it different, to pull in the bookmarkers and feed readers, as well as the search engines? This is something anyone building any kind of site should think about, but with blogs you cannot afford to simply pay lip service.</p>
<p>If by this point you haven&#8217;t decided that maybe you should be looking at mass-producing splogs, then the next thing is to identify who you are going to promote. If you are building a mainstream blog, Adsense might be your best bet, but if an adult blog, then you will benefit from sponsors who offer good content for affiliate use. It matters less what exactly they offer, than whether among their zips, FHG&#8217;s etc, is stuff you can write about with conviction. More than say, if you were running a TGP, it is also a good idea to pick sponsors whose sites do not disappoint. Blogs by their nature involve repeat visitors, not one-off sales shots. Promoting third-rate sites is a very bad idea.</p>
<p>Next, come up with a reasonable domain name and a theme. If you cannot afford a designer, there are hundreds of free designs out there which are relatively easy to adapt, or you can build a theme from scratch. Above all focus on usability and not gloss (<a href="http://www.smashingmagazine.com/2007/04/20/35-designers-x-5-questions/" title="Smashing Magazine">Smashing Magazine</a> recently published an article which is full of design clues) and if you do hire a designer, make sure he or she is going to deliver a table-free design which enhances and not overpowers your content. I strongly recommend either finding a site to use as a model, or sketching/roughing out the layout you want. There are <em>lots</em> of links and elements on a blog page and if your visitors cannot find what they expect easily, they will be gone.</p>
<p>Once your site is live, work especially hard to produce catchy topic-relevant titles. Create a list of keywords, but don&#8217;t overuse them, just keep the list handy as a reminder to use specific terms rather than generic ones when you can. Make sure you keep stats for both your site and your search engine, so that you can see what is popular and provide more of the same.</p>
<p>In search engine terms, hard exchanges with other sites such that your link appears in a long list with many others, are close to useless and possibly even damaging. Much easier to accomplish in mainstream than adult, you need to spend some time each day finding ways to place links back to your site from other sites. You can do that via <em>non-spammy</em> comments on other blogs, by organizing post exchanges, and by being willing to cast some bread on the water, with unconditional mentions of other blogs in your posts. By all means let the site owners know you have plugged their sites, but don&#8217;t be discouraged if most never return the courtesy. The few who do will make it worthwhile and meanwhile your visitors will appreciate being offered extra resources.</p>
<p>Sign your site up with Feedburner, make sure you are using a decent ping list and provide &#8220;chicklets&#8221;, the icons to encourage social bookmarking and feed subscriptions. If you are doing everything right and you want to speed your growth, when you begin earning money use it to buy yourself promotion (promotion, not traffic), on the search engines and/or on relevant sites.</p>
<h2>Onwards and Upwards</h2>
<p>Once you are feeling fairly confident that your site is solid and you have its maintenance under control, start over with something related but different. You can begin cross-promoting and as your network builds, you can if you wish, gradually spread into categories quite distant from your starting point. Just make sure that each new site builds on those you already have, so that you really do have a network and not just a collection of sites. That will also make it easier (with care) to use your posts on more than just one site (see below).</p>
<blockquote>
<h2>Sponsors RSS Feeds</h2>
<p>If you are lucky enough to find some good feeds relevant to your blog(s) there is absolutely no reason not to use them. If you do build a network, they will make it possible to expand further (unless you hire writers or regularly exchange posts) than would otherwise be possible.</p>
<p>So what is &#8220;good&#8221;? Well in this context it must mean that visually and textually the feeds are consistent with your site(s). True too if reusing your own posts, it is an excellent idea to at the very least swap out some keywords or even rewrite bits of imported feeds, to ensure uniqueness. <em>If you don&#8217;t have the means to edit feeds before they appear on your site, you can always set up a hidden site for importing and editing feeds and then import from there to your live site(s).</em></p>
</blockquote> 
<p>PS: mainstream oriented but relevant to everyone, <a href="http://problogger.net/" title="Make Money Online">ProBlogger</a> is an excellent resource for articles about monetizing blogs. Definitely worth subscribing to.</p>]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/monetizing-your-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Technorati Tags</title>
		<link>http://carpejugular.com/technorati-tags/</link>
		<comments>http://carpejugular.com/technorati-tags/#comments</comments>
		<pubDate>Sat, 12 May 2007 03:36:22 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
				<category><![CDATA[WordPress]]></category>
<category>keywords</category><category>navigation</category><category>tags</category><category>technorati</category>
		<guid isPermaLink="false">http://carpejugular.com/technorati-tags/</guid>
		<description><![CDATA[Tags, or "Technorati Tags" as they are often referred to, partly to distinguish them from meta tags, are useful not only to ensure correction classification in some blog directories, but for enhancing your blog in other ways. This article looks at some of the do's and don'ts of tagging.]]></description>
			<content:encoded><![CDATA[<p>Just for the record, although even WordPress refers to &#8220;Technorati Tags&#8221; in the <a href="http://codex.wordpress.org/Plugins/Technorati" title="Tag plugins for WordPress">Codex</a> offering more than a dozen related plugins, del.icio.us was actually one of the first introducers of &#8220;tags&#8221; (keywords related to and attached to or embedded in posts). And while if you use tags and ping <a href="http://www.technorati.com/" title="Technorati blog directory">Technorati</a> your posts/pages/site if added to the directory, will be classified according to your tags, there is no longer a requirement for these tags to point back to Technorati. Which is good news, because the traffic from Technorati is generally more of a trickle than a flood, not near enough to justify what used to be quite serious traffic leaks.</p>
<h2>Tag Strategy</h2>
<p>What if any value can tags serve, apart from controlling classification in some blog directories? First they <em>might</em> offer a small search engine edge if handled correctly, in that tags chosen (as they should be) from words which actually appear in your text, will in turn cause WordPress to generate pages based around those tags. Such pages by definition share at least some tags/keywords in common which <em>might</em> result in a concentration that <em>might</em> give you a decent SE placing.</p>
<p>Lots of emphasized uses of the word &#8220;might&#8221; there. Two reasons. The first is that it is near impossible to control the keyword density of those pages, so they are very unlikely to hit the ideals purely by coincidence. You could even end up being penalized for stuffing. Second, there is a growing school of opinion (I haven&#8217;t decided how credible it is) which says that if Google finds the same posts on your site via different routes (ie via category and date (and tags), as well as in their original date order, you could be penalized for duplicate content. The response to this belief is to place noindex metas (using a plugin) on all but main and single-post pages. Bye-bye any SE edge there could have been. Not everyone will agree, but in my view the best use of tags is to treat them as an extension of your categories.</p>
<p>Basic site navigation should be kept simple because too many options make it difficult for the surfer to choose. Crazy as it might sound, he may leave your site rather than make that choice. With that in mind, it is a good idea to restrict your categories to no more than a dozen, but that may well not be near enough to filter your visitors as effectively as possible, nor even give them a proper idea of all that your site has to offer. Tags to the rescue!</p>
<p>With tags, you can even say to hell with convention and apply tags to articles based on a list of keywords/phrases you have decided to use as effectively sub-categories. Don&#8217;t worry about whether or not these words appear in the text. Or you can play by the rules and restrict yourself to words from the text, still in effect creating sub-categories. Keep the tags per post between 3 and 6 (again for the sake of simple choices) and list these tags under each article (much easier) or embed them in the text (possibly more effective). Chosen wisely, you are then offering your visitors a tempting way to dig deep into your site, while at the same time allowing them a chance to define their interests more precisely. Try not to go too wild selecting different keywords for each and every post, because there really is no point in sending surfers to a page which may only contain the post we was originally reading. Even exercising some control you will likely still end up with dozens of tags on your site. Enough already :)</p>
<h2>Tag Clouds</h2>
<p>These are those collections, often of different-sized and/or different colored links, such as the one you can see on the right of this page. Tucked discretely out of the way or displayed on their own page, they serve much the same purpose as a site map: of limited interest to most visitors but a decent way to ensure search engines have short paths to all your content. To actually put them under the surfers&#8217; noses is more questionable and I do it here mainly because I want features I know I shall mention occasionally, to be built into the site so they can be seen.</p>
<p>Webmasters tend to think they are &#8220;cool&#8221; and possibly surfers did too while they were a novelty. But unless the cloud is kept small enough that it will exclude many tags anyway, it soon becomes another case of information overload. Think carefully about if and how you use them.</p>
]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/technorati-tags/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>De-mystifying WordPress</title>
		<link>http://carpejugular.com/de-mystifying-wordpress/</link>
		<comments>http://carpejugular.com/de-mystifying-wordpress/#comments</comments>
		<pubDate>Tue, 08 May 2007 12:32:39 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
				<category><![CDATA[WordPress]]></category>
<category>modify theme</category><category>themes</category><category>wordpress basics</category>
		<guid isPermaLink="false">http://carpejugular.com/de-mystifying-wordpress/</guid>
		<description><![CDATA[Even as commercial software, WordPress would be amazing. It is easy to install and easy to use. But you are almost certainly going to want your site to have its own look and when you take a look at a theme for the first time - especially if you are not overly familiar with PHP and CSS - what you see may make no sense at all. This article will try to demystify WordPress theme files and show you that they are not nearly as complex as they may first appear.]]></description>
			<content:encoded><![CDATA[<p>Even if you buy a WordPress theme, chances are that pretty soon you will want to change, add or delete something. You can dip into your wallet every time, or you can get your head around how the scripts work. At first glance, the code may seem different and confusing, but look more closely and you will begin to see just how easily adaptable WordPress is.</p>
<p><img src="http://carpejugular.com/files/article00101.gif" width="163" height="155" alt="" /></p>
<p>After you unzip your <a href="http://wordpress.org/download/">WordPress download</a> on your PC, you will see a file structure like the one above. When you have done the <a href="http://codex.wordpress.org/Installing_WordPress#Famous_5-Minute_Install">Famous 5-Minute Install</a> chmod 666 all the PHP files and the css file in the default directory, so that they can be edited. Inside your WordPress admin area, select the WordPress Default theme for editing.</p>
<p><img src="http://carpejugular.com/files/article00102.gif" width="432" height="120" alt="" /></p>
<blockquote>I do not recommend that you attempt to do more than minor editing directly into WordPress. This is an entirely personal preference, but I work from a set of files on my PC, using <a href="http://www.adobe.com/products/homesite/">my regular HTML editor</a> and after each change, copy and paste the code into WordPress. It&#8217;s more convenient than non-stop FTP&#8217;ing; I can look at the results as soon as I have saved the new code (to open your site in a new window, right-click on the &#8220;View Site&#8221; link at the top of your WordPress screen); and if I don&#8217;t like what I see, I can easily undo the changes or make more. Most importantly, at some point you will surely paste over the wrong file. Local copies make that an inconvenience and not a disaster.</blockquote>
<p>Down the right side of the screen is a list of file names: Stylesheet, 404 Template, Archives and so on. Click on the &#8220;Main Index Template&#8221; link to pull it into the editing area and (if you are working the way I do, open it in your HTML editor too). This is what you will see and it&#8217;s okay to say &#8220;Huh?&#8221;.</p>
<p><img src="http://carpejugular.com/files/article00103.gif" width="500" height="509" alt="" /></p>
<p>The good news is that although WordPress blogs are driven by PHP, you do not need to understand any PHP at all. All you must know is that <strong>&lt;?</strong> marks the beginning of a placeholder and <strong>?&gt;</strong>, the end of one. In between, is the code WordPress needs to work its magic.</p>
<p>Take a look at the areas I have highlighted in color. They are all <strong>get</strong> commands, which tells WordPress to process and then insert a template into that spot. Right now the templates are header, sidebar and footer. Look at that list on the right of your WordPress screen and there they are, templates for the top, side and bottom of all your pages. There is also <strong>searchform</strong> in that list, look down near the bottom of the code you have open in your editor, and find <strong>include blah blah&#8230; searchform.php</strong>. This is the regular PHP command with which you may already be familiar and WordPress also uses it to pull in templates.</p>
<p>Look at the code again, focusing on the styles identifiers used by the divisions. As they should, they should give you heavy clues as to what they contain: <strong>content</strong>; <strong>post</strong>; <strong>postentry</strong>; <strong>postmetadata</strong>; and <strong>navigation</strong>. Now look inside the divisions for more giveaways like <strong>the_title</strong>, <strong>the_time</strong>, <strong>the_content</strong>. After that, there isn&#8217;t much left on the page. Some conditional statements (while and if) wrapped around a few sections and that&#8217;s about it.</p>
<p><img src="http://carpejugular.com/files/article00104.gif" width="500" height="393" alt="" /></p>
<p>Take a look at your new blog and note that information about the category to which the post belongs appears below the post. Now cut the paragraph that I have highlighted above and paste it back, above <strong>div class=&#8221;entry&#8221;</strong>. Paste the whole page of code over the code in your WordPress editor and save. Look at your site again. That&#8217;s how easy it is to make changes to the &#8220;running order&#8221; of your pages.</p>
<h2 class="tutor">The Loop</h2>
<p>Look again at the last illustration, it begins with <strong>if (have_posts())</strong>. The section illustrated here is what WordPress calls <a href="http://codex.wordpress.org/The_Loop_in_Action"><strong>The Loop</strong></a> and it is exactly that: a loop within which a list of commands are repeated so that several posts can be displayed at one time. It checks whether any posts exist and if so, displays them. If not, an apology and search form are displayed. The important thing to remember about The Loop is that although you can move things around as easily as I just indicated, you must keep items which you want to display for every post inside The Loop. By extension, if you only want to show something once on a page, it must be placed outside The Loop, above the <strong>while</strong> statement or below the <strong>endwhile</strong>.</p>
<p>Examine the other templates in the same light, experiment with them if you wish. All we are doing at this point is de-mystifying the way that WordPress builds a site. WordPress is not without flaws, but it does illustrate very well how big, apparently complex sites can be made from just a few simple components. It also throughly applies the principle of separating content from design. You will not find a dimension or color anywhere in the templates: they are all contained within the single <strong>Stylesheet</strong> which shows at the top of that list of files and to which I shall return in another article.</p>
<blockquote>HINT: Some good-looking adult blog themes are on sale, but take a look at the way they are coded before you buy. Most use tables, producing a horrible porridge of old-style coding mixed with the modern (X)HTML/CSS which WordPress uses. I&#8217;m not someone from Planet Geek trying to spread the good word. This sloppy coding not only slows sites down and makes them less search-engine friendly, but should you want to change anything later, you are likely to find the job much harder. If your designer of choice is unable to use CSS, have him do your design and then either convert it to a WordPress template yourself or have someone do that for you.</blockquote>]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/de-mystifying-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Plugins</title>
		<link>http://carpejugular.com/wordpress-plugins/</link>
		<comments>http://carpejugular.com/wordpress-plugins/#comments</comments>
		<pubDate>Thu, 03 May 2007 03:16:54 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
				<category><![CDATA[WordPress]]></category>
<category>anti spam</category><category>plugins</category><category>sitemaps</category>
		<guid isPermaLink="false">http://carpejugular.com/plugins-mods/</guid>
		<description><![CDATA[No blog or message board is complete without plugins and mods. This board is no different, so here is credit to the authors who wrote the add-ins and a useful list for anyone looking to customize their own sites.]]></description>
			<content:encoded><![CDATA[<p>The cost saving involved in using open-source software is usually quite small and definitely not worthwhile for a commercial site, if it means working with an inferior product. But when a product is solid and has a huge user base providing both support and modifications, open-source software offers many advantages. WordPress is &#8220;free&#8221; software at its best and credit must also go to the people who wrote the various plugins which are used on this site.</p>
<ul>
<li><strong><a href="http://www.homelandstupidity.us/software/bad-behavior/">Bad Behavior</a></strong> stops comment spam before it starts by trapping and blocking spambots before they have a chance to post comments. <strong>Use this even if you have comments closed, to prevent direct access to the comments script.</strong></li>
<li><strong><a href="http://www.twistermc.com/shake/RSS-index.php">Chicklet Creators</a></strong> adds RSS feed subscription buttons to your blog</li>
<li><strong><a href="http://anthologyoi.com/plugins/">Dashboard Editor</a></strong> allows you to customise your admin dashboard to speed up loading.</li>
<li><strong><a href="http://ottodestruct.com/wpstuff/disableautop.zip">Disable AutoP</a></strong> is the answer if you find WordPress entering paragraph tags where you don&#8217;t want them.</li>
<li><strong><a href="http://seologs.com/duplicate-content-cure/">Duplicate Content Cure</a></strong> is a solution to the concerns some have that the search engines might penalize blogs for showing the same content on multiple pages (index, archives, single, etc).</li>
<li><strong><a href="http://www.feedburner.com/fb/a/help/wordpress_quickstart">Feedsmith</a></strong> (formerly known as &#8220;Feedburner Feed Replacement&#8221;) this forwards regular feed traffic to the Feedburner version of your feed, while letting some (SE) User-Agents see your feed directly on your site. <em>I strongly recommend the use of Feedburner, as a free way to extend your feeds compatibility and and also to get some useful exposure via Feedburner&#8217;s directory. Nice stats too!</em></li>
<li><strong><a href="http://www.arnebrachhold.de/2005/06/05/google-sitemaps-generator-v2-final">Google Sitemaps Generator</a></strong> will create a Google compliant sitemap of your WordPress blog</li>
<li><strong><a href="http://elasticdog.com/2004/09/optimal-title/">Optimal Title</a></strong> mirrors the function of wp_title() exactly, but moves the position of the separator to after the title rather than before. Much more friendly for those scanning SE directories.</li>
<li><strong><a href="http://gmurphey.com/2006/10/05/wordpress-plugin-page-link-manager/">Page Link Manager</a></strong> lets you choose which pages appear in your site navigation.</li>
<li><strong><a href="http://mtdewvirus.com/code/wordpress-plugins/">Recent Posts</a></strong> displays a customizable list of recent posts (with/without extracts).</li>
<li><strong><a href="http://wasabi.pbwiki.com/Related%20Entries">Related Entries</a></strong> uses full indexing to display a list of posts similar to the one being viewed. Good for visitors, good for keeping older posts exposed.</li>
<li><strong><a href="http://dancameron.org/wordpress/">Search Everything</a></strong> improves dramatically on the default search script, by allowing pages and comments to be searched if desired.</li>
<li><strong><a href="http://www.thunderguy.com/semicolon/wordpress/search-meter-wordpress-plugin/">Search Meter</a></strong> logs what people are searching for on your site.</li>
<li><strong><a href="http://www.dagondesign.com/articles/secure-form-mailer-plugin-for-wordpress/">Secure Form Mailer</a></strong> secure php form mailer script.</li>
<li><strong><a href="http://www.dagondesign.com/articles/sitemap-generator-plugin-for-wordpress/">Sitemap Generator</a></strong> generates a customizable sitemap containing all posts and pages.</li>
<li><strong><a href="http://push.cx/sociable">Sociable</a></strong> automatically add links on your posts to popular social bookmarking sites</li>
<li><strong><a href="http://www.duechiacchiere.it/wp-slimstat/">Slim Stat</a></strong> produces useful stats for your blog.</li>
<li><strong><a href="http://unknowngenius.com/blog/wordpress/spam-karma/">Spam Karma</a></strong> stops all forms of automated blog spam effortlessly, while remaining as unobtrusive as possible to regular commenters. <em>Combined with Bed Behaviour (above) Spam Karma will allow you to keep comments open, unmoderated and yet free of spam.</em></li>
<li><strong><a href="http://orderedlist.com/wordpress-plugins/wp-tiger-administration/">Tiger Admin</a></strong> changes your WP Admin interface to a quicker and more friendly version. <em>Only works with fully CSS2-compliant browsers.</em></li>
<li><strong><a href="http://www.neato.co.nz/ultimate-tag-warrior/">Ultimate Tag Warrior</a></strong> allows tags to be used either as a navigation aid and/or for SEO. Tons of functions, not such great documentation.</li>
<li><strong><a href="http://mnm.uib.es/gallir/wp-cache-2/">WP-Cache</a></strong> is a very fast cache module which can manage the whole sites. <em>Once installed, make sure it is working, otherwise your blog will actually run more slowly.</em></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/wordpress-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3-Column, Search-Engine Friendly Layout</title>
		<link>http://carpejugular.com/3-column-search-engine-friendly-layout/</link>
		<comments>http://carpejugular.com/3-column-search-engine-friendly-layout/#comments</comments>
		<pubDate>Sun, 29 Apr 2007 18:05:44 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
				<category><![CDATA[WordPress]]></category>
<category>3 columns</category><category>search engine friendly</category><category>SEO</category>
		<guid isPermaLink="false">http://carpejugular.com/3-column-search-engine-friendly-layout/</guid>
		<description><![CDATA[With the advent of higher resolutions, bigger screens and blogs, 3-column layouts have become increasingly popular. Unfortunately there is no single perfect solution which satisfies everyone's requirements. This solution is one to use when search engine appeal is your priority. But be warned, there are snags!]]></description>
			<content:encoded><![CDATA[<p>With the advent of higher resolutions, bigger screens and blogs, 3-column layouts have become increasingly popular. But wanting and achieving are often not the same thing and the perfect answer to 3-column layouts is, as some describe it, <a href="http://www.alistapart.com/articles/holygrail/">&#8220;The Holy Grail&#8221;</a>. You don&#8217;t want to mess around with absolute settings which require pixel-perfect placing. You do want the columns to appear to be the same length. You would like to be able to place the columns in any order within your HTML, so that you can tempt the search engines by placing your content-rich column at the top of your code. Unfortunately there are <a href="http://css-discuss.incutio.com/?page=ThreeColumnLayouts">many attempted solutions</a> but I am not aware of any which fulfil all those requirements.</p>
<p><img src="http://www.carpejugular.com/files/article00401.gif" width="500" height="160" alt="" /></p>
<p>This solution (I should probably be crediting someone with it, but it&#8217;s cobbled together from observation and experience over the years) is the one to use when search engine appeal is your priority. It has a major drawback, which is that unless you can dispense with a footer, you must know which is going to be the longest column. Your page will look horrible if you get it wrong. Nor does it attempt to equalize the columns, so if your design demands that they appear to be the same length, you will have to resort to the use of a background image to fake your columns (aka &#8220;faux columns&#8221;).</p>
<p>Otherwise it is a very neat solution which uses only one CSS &#8220;hack&#8221; (to compensate for Explorer&#8217;s strange treatment of margins). Tested in IE6 and FireFox, it provides fixed-width columns for navigation or whatever, plus a fluid center column which expands and contracts to fill whatever resolution your visitors are using. You may copy the code below and adapt it for your own use.</p>
<pre class="tutor wide">
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;

&lt;head&gt;
&lt;title&gt;3-Column, Search-Engine Friendly Layout&lt;/title&gt;
&lt;style type="text/css"&gt;
/* globals */
body {
	margin: 10px;
	padding: 0;
	background: #FFFFFF;
	font: 12px Verdana, Geneva, sans-serif;
	color: #000000;
	}
p,pre {
	margin: 0 10px 10px 10px;
	}
h1 {
	margin: 0;
	padding: 10px;
	font-size: 14px;
	}		
			
/* structure */
#header {
	height: 40px;
	}
#leftcolumn {
	position: absolute;
	left: 10px;
	top: 50px;
	width: 200px;
	}
#centercolumn {
	margin-left: 200px;
	margin-right: 200px;
	padding-bottom: 10px;
	}
#rightcolumn {
	position: absolute;
	right: 10px;
	top: 50px;
	width: 200px;
	}
*html #rightcolumn {
	right: 9px;
	}
#footer {
	height: 40px;
	}

/* fonts etc */
#leftcolumn p, #rightcolumn p {
	font-size: 10px;
	}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="header"&gt;&lt;h1&gt;3-Column, Search-Engine Friendly Layout&lt;/h1&gt;&lt;/div&gt;

&lt;div id="centercolumn"&gt;
&lt;h1&gt;centercolumn&lt;/h1&gt;
&lt;pre&gt;
#centercolumn {
margin-left: 200px;
margin-right: 200px;
padding-bottom: 10px;
}
&lt;/pre&gt;
&lt;p&gt;The big plus of this layout is that, within your HTML, the columns can appear in any order, which means you may place your most content-rich block at the top of your code: the best place for search engines to find it. But it also has a serious limitation, namely that unless you can dispense with a footer, you must know which is going to be the longest column and adjust the code accordingly. In this example, the center (content) column is assumed to be the longest.&lt;/p&gt;
&lt;/div&gt;

&lt;div id="leftcolumn"&gt;
	&lt;h1&gt;leftcolumn&lt;/h1&gt;
&lt;pre&gt;
#leftcolumn {
position: absolute;
left: 10px;
top: 50px;
width: 200px;
}
&lt;/pre&gt;
&lt;/div&gt;

&lt;div id="rightcolumn"&gt;
	&lt;h1&gt;rightcolumn&lt;/h1&gt;
&lt;pre&gt;
#rightcolumn {
position: absolute;
right: 10px;
top: 50px;
width: 200px;
}
*html #rightcolumn {
right: 9px;
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;div id="footer"&gt;
	&lt;h1&gt;footer&lt;/h1&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>In this example, we want a 10-pixel margin around the page and we have a 40-pixel tall header. Thus the left column is placed 10 pixels from the left of the screen and 10+40=50 pixels from the top. The right column is placed according to the same principle. If your header is a different size, or you want different margins or column widths, just change the numbers accordingly.</p>
<p>Because the center column is intended to be fluid, no width is stated for it, only left and right margins, which in this example, are the widths of the side columns (200 pixels). If you want to create a space between the center column and those on either side, simply increase the size of those margins.</p>
<p>And that is all there is to it. In another article I shall cover a less finicky 3-column layout, albeit one with less SEO appeal.</p>
<blockquote>I don&#8217;t like having to remember to put left and right margins on every element, so that paragraphs and the like do not butt up against column borders. Therefore normally I would use padding applied to the block as a whole. However, because that introduces cross-browser compatibility issues which would have confused this presentation, I decided to sidestep them here and leave that topic for another article.</blockquote>]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/3-column-search-engine-friendly-layout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convert a 2-column WP Theme</title>
		<link>http://carpejugular.com/convert-a-2-column-wp-theme/</link>
		<comments>http://carpejugular.com/convert-a-2-column-wp-theme/#comments</comments>
		<pubDate>Fri, 27 Apr 2007 02:42:37 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
				<category><![CDATA[WordPress]]></category>
<category>3 columns</category><category>float</category><category>theme</category>
		<guid isPermaLink="false">http://carpejugular.com/convert-a-2-column-wp-theme/</guid>
		<description><![CDATA[As a way to help you become familiar with both the HTML and CSS of a WordPress theme, this exercise will turn a 2-column WordPress theme into a 3-column version. It is also intended to illustrate that with a systematic approach, even quite dramatic changes are very simple to achieve.]]></description>
			<content:encoded><![CDATA[<p>As a useful exercise in its own right, but also as a way to become familiar with both the HTML and CSS of a WordPress theme, this exercise will turn a 2-column WordPress theme into a 3-column version. Because the default theme is tricky in certain ways, I am using instead <a href="http://lucmar.com/the-journalist/">Journalist</a>, although the principles described here involved apply to any.</p>
<p><img src="http://carpejugular.com/files/article00501.gif" width="500" height="411" alt="" /></p>
<p>One of the easiest ways to see how a template is structured, is to open the <strong>Main Index Template</strong> in my HTML editor and replace sections like <strong>&lt;?php get_header(); ?&gt;</strong> with its template. Once I have done this for header, sidebar and footer (in the case of this theme), I can look at the code of what would be a complete page in my blog. Then I paste the whole thing onto a new page and strip out everything which is not related to the basic page structure. What remains in this case is:</p>
<pre class="tutor wide">
&lt;div id="container"&gt;

	&lt;div id="content"&gt;&lt;/div&gt;

	&lt;div id="right"&gt;&lt;/div&gt;

	&lt;div id="footer"&gt;&lt;/div&gt;
	
&lt;/div&gt;
</pre>
<p>Now I can open the <strong>stylesheet</strong> (style.css) and see how those blocks are handled (I have removed references to fonts etc to simplify this illustration):</p>
<pre class="tutor wide">
#container {
width:950px;
}

#content {
float:left;
width:700px;
border-left:#999 1px solid;
margin:0 0 0 20px;
padding:0 0 0 10px;
}

#right {
float:left;
width:180px;
border-left:#999 1px solid;
margin:0 0 0 20px;
padding:0 0 10px 10px;
}

#footer {
width:700px;
border-left:#999 1px solid;
margin:0 0 20px 20px;
padding:5px 0 5px 10px;
}
</pre>
<p>The whole structure is held within the 950-pixel <strong>container</strong> block. There is no header as such, just an <strong>h1</strong> tag. The <strong>content</strong> block is 700 pixels wide and the <strong>right</strong> is 180 pixels wide. Both have 10 pixels left-padding and 20 pixel left-margin. There are also two 1-pixel borders, so the total width of the layout is 700+10+20+180+10+20+1+1=942 pixels, leaving 8 pixels as a right margin.</p>
<p>180 pixels is a fairly common width to use for a sidebar, so we shall stick with it. The new sidebar will therefore need 180+10+20+1=211 pixels. To keep this illustration simple, we will not change the overall width, so to accomodate the new block, the width of the <strong>content</strong> block must be reduced by 211 pixels (to 489 pixels). With this design, the footer is not full-width, so it must also be narrowed to 489 pixels and for safety, scan through the <strong>stylesheet</strong> looking for any elements within the <strong>content</strong> block which are greater than this width. This theme has a <strong>textarea</strong> which is 500 pixels wide, so reduce that to 400 pixels.</p>
<p>The easiest way to create the second sidebar is to open the original in your editor. Since we are only working on the structure right now, we can ignore the content. All we need to do is change the <strong>&lt;div id=&#8221;right&#8221;&gt;</strong> at the very top of the file to <strong>&lt;div id=&#8221;right2&#8243;&gt;</strong>, then save it as <strong>sidebar2.php</strong>. FTP the new file to your server into the theme directory and <strong>CHMOD 666</strong> it for editing later.</p>
<p>To recap, in the <strong>stylesheet</strong> we have changed <strong>#content { width:700px; }</strong> to <strong>#content { width:489px; }</strong>, <strong>textarea { width:500px; }</strong> to <strong>textarea { width:400px; }</strong> and <strong>#footer { width:700px; }</strong> to <strong>#footer { width:489px; }</strong>, we have created and uploaded <strong>sidebar2.php</strong>. Since we have created a new block &#8211; <strong>#right2</strong> &#8211; we need some styles for it. Again, since this is about structure and not design, locate the block of <strong>#right</strong> parameters in the <strong>stylesheet</strong>, copy and paste them below their original position and make them all refer to <strong>#right2</strong> thus:</p>
<pre class="tutor wide">
#right2 {
float:left;
width:180px;
font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
font-size:12px;
border-left:#999 1px solid;
margin:0 0 0 20px;
padding:0 0 10px 10px;
}

#right2 h3 {
font-size:14px;
margin:20px 0 5px 0;
}

#right2 a {
color:#222;
text-decoration:none;
border-bottom:#ccc 1px solid;
}

#right2 a:hover {
color:#222;
text-decoration:none;
border-bottom:#777 1px solid;
}

#right2 ul {
list-style:none;
}

#right2 ul ul {
margin:5px 0 0 10px;
}

#right2 ul ul ul {
margin:5px 0 0 10px;
}

#right2 ul li {
padding:0 0 5px 0;
}
</pre>
<p>Paste the revised <strong>stylesheet</strong> over the one WordPress is currently using and finally call up the <strong>Main Index Template</strong>. Scroll to the very bottom and above the line <strong>&lt;?php get_sidebar(); ?&gt;</strong> add <strong>&lt;?php include (TEMPLATEPATH . &#8216;/sidebar2.php&#8217;); ?&gt;</strong>. This is the result:</p>
<p><img src="http://carpejugular.com/files/article00502.gif" width="500" height="411" alt="" /></p>
<p>And with that under your belt you are well on your way to creating your own, original templates.</p>
<blockquote>In case you attempt this exercise using the same Journalist theme, be aware that I cheated slightly. The theme includes a stylesheet called <strong>style-ie.css</strong> which has a couple of hacks for coping with Explorer&#8217;s vagaries and those hacks include dimensions which will need changing in line with this article. Since a second stylesheet is fairly unusual and this article is for the illustration of general principles, I did not want to clutter it with such details.</blockquote>]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/convert-a-2-column-wp-theme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress header.php</title>
		<link>http://carpejugular.com/wordpress-headerphp/</link>
		<comments>http://carpejugular.com/wordpress-headerphp/#comments</comments>
		<pubDate>Tue, 17 Apr 2007 14:30:45 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
				<category><![CDATA[WordPress]]></category>
<category>header</category><category>header php</category><category>theme editor</category>
		<guid isPermaLink="false">http://carpejugular.com/wordpress-headerphp/</guid>
		<description><![CDATA[The key to making changes to WordPress themes is to work methodically. First identify the relevant HTML; second identify all the CSS which relates to it; and third, understand what the CSS is actually doing. Initially make changes by commenting parts out rather than by deleting them. Comment what you have changed and test each batch of changes before moving on to the next.]]></description>
			<content:encoded><![CDATA[<p>This is the first in a series which will dissect a WordPress theme. Logically enough, it begins with a look at <strong>the header</strong> and its related CSS. To illustrate this I am using the <a href="http://www.headsetoptions.org/2006/08/22/blix-redux-released/">Blix Redux</a> theme because the header includes an image used as a background, with text showing on top of it.</p>
<p><img src="http://carpejugular.com/files/article00801.jpg" width="500" height="310" alt="" /></p>
<p>Note: Add your site title and a brief description of your blog inside your WordPress admin.</p>
<p><img src="http://carpejugular.com/files/article00802.gif" width="500" height="174" alt="" /></p>
<p>In WordPress&#8217; theme editor open up the <strong>Header</strong> file and look for the HTML for the header block itself. Then open up the <strong>Stylesheet</strong> and look for the CSS relating to the header block and the entries within in. And we hit the first gotcha: this author has separated structure and decoration to the point that he uses two separate CSS files and calls them from within the &#8220;official&#8221; WordPress stylesheet. This &#8220;wrinkle&#8221; makes no difference to the principles involved.</p>
<pre class="tutor wide">
In Header (header.php):
&lt;!-- header ................................. --&gt;
&lt;div id="header"&gt;
&lt;h1&gt;&lt;a href="&lt;?php bloginfo('url'); ?&gt;"&gt;&lt;?php bloginfo('name'); ?&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;h3&gt;&lt;p class="description"&gt;&lt;?php bloginfo('description'); ?&gt;&lt;/p&gt;&lt;/h3&gt; 
&lt;/div&gt; &lt;!-- /header --&gt;


In Stylesheet (style.css):
@import "layout.css";
@import "shadesofgray.css";


In layout.css:

/* reset
--------------------------------------------------*/
body,h1,h2,h3,h4,h5,h6,p,form,fieldset {margin:0;padding:0;}

/* body
--------------------------------------------------*/
body {
  font-family:Arial, Helvetica, sans-serif;
  font-size:75%;
  line-height:1.6em;
}

/* headings
--------------------------------------------------*/
h1 {font-size:30px;}

/* links
--------------------------------------------------*/
a {text-decoration:none;}

/* paragraphs, lists, etc
--------------------------------------------------*/
p {
  margin:0;
  padding:0 0 18px 0;
}

/* header
--------------------------------------------------*/
#header {
  height:150px;
  padding:0 0 0 18px;
}
#header h1 {
 /* display:none; This will hide the text in your header */
  padding-top:50px;
}


In shadesofgray.css:

body {
  color:#414141; /* provides the color for the description line */
}

/* headings  hso: all headings &#038; mouse over
--------------------------------------------------*/
h1, h1 a, h1 p
  {color:#FFF;}
h1 a:hover
  {color:#FFF;}

#header {
  background-color:#fff;
  background-image:url(images/shadesofgray/logo.jpg);
}
</pre>
<p>The HTML of the header block is very simple. It contains an <strong>h1</strong> tag around the blog title which is linked to the site&#8217;s base URL. Then there is an <strong>h3</strong> tag with a <strong>paragraph</strong> tag inside it, which holds the description of the site.</p>
<p>Hopefully I have identified all the relevant CSS entries. I tend to feel that while this style of CSS presentation may be technically correct, it does nothing for ease of use. Anyway to summarise: the <strong>header</strong> block is 150 pixels tall (to match the background image) and it has white (#FFF) as a background color, for those who have images turned off. 50 pixels padding has been applied to the top and 18 pixels to the bottom. As it happens, the choice of background color might be a poor one, because the h1 tag has been set with no margins or padding, 30-pixel font size, no underline, and also white in color. The <strong>h3</strong> tag has no margins or padding, the <strong>paragraph</strong> (p) tag within it has no zero margins but an 18-pixel bottom padding. The site&#8217;s <strong>description</strong> is going to take its size and color from the default body settings and both <strong>h1 and h3</strong> will be bold by default.</p>
<p>The most simple change would be to use another image of the same dimensions (690&#215;150) and either overwrite the orginal or save it as you like and change the path in the <strong>background-image</strong> parameter. We could use a smaller image, say 670 x 150 and give it a colored border:</p>
<pre class="tutor wide">
/* header hso: header backgound color --------------------------------------------------*/
#header {
  background-color:#4E7F01;
  background-image:url(images/shadesofgray/logo.jpg);
  background-repeat: no-repeat;
  background-position: center center;
}
</pre>
<p><img src="http://carpejugular.com/files/article00803.jpg" width="500" height="124" alt="" /></p>
<p>Changing colors is easy. Let&#8217;s alter the <strong>h1</strong> display and give the color of size of <strong>h3</strong> specific settings. We shall also have h3 show as non-bold and while we are there, let&#8217;s move the text right and down some:</p>
<pre class="tutor wide">
In layout.css add to:
/* headings
--------------------------------------------------*/
#header h3 {
	font-size: 1.4em;
	font-weight: normal;
	}
	
In layout.css:
/* header
--------------------------------------------------*/
#header {
  padding:0; /* change so the lowered text does not push the bottom of the block down */
  }
#header h1 {
  padding-top:100px; /* change from 50 */
  padding-left: 120px; /* add */
}
#header h3 {	/* add */
  padding-left: 120px;
}
#header p { /* add to prevent the block being expanded */
	padding-bottom: 0;
	}
	
	
In shadesofgray.css add to:
/* headings  hso: all headings &#038; mouse over
--------------------------------------------------*/
#header h1 a {
	color: #FF2E37;
	}
#header h1 a:hover {
	color: #FF2E37;
	}
#header h3 {
	color: #4AF017;
	}
</pre>
<p><img src="http://www.carpejugular.com/files/article00804.jpg" width="309" height="176" border="0" alt=""></p>
<p>The result is hardly aesthetic, but it does illustrate the ease of making changes, providing you approach them methodically. All changes in size, color, positioning (both of foreground text and background image) follow the same principles.</p>
<p>There are two tricks which come in useful if you do not want your image sullied with foreground text, but you want to keep the text in your code for its search engine potential. The first is simply to make it not display, which is easier, but removes the link back to your root URL which &#8211; for better or worse &#8211; many blog surfers have got used to. The second, although you will need to remove the <strong>h3</strong> tag completely for this to work properly, involves moving the <strong>h1</strong> tag off-screen while leaving the whole header image linked:</p>
<pre class="tutor wide">
To leave all the text but make it invisible to visitors, in layout.css add:
/* header
--------------------------------------------------*/
#header h1 {
  display: none;
}
#header h3 {
  display: none;
}

To have an invisible h1 but leave the whole header image clickable, in header.php comment out (or delete) the h3 line:
&lt;!-- header ................................. --&gt;
&lt;div id="header"&gt;
&lt;h1&gt;&lt;a href="&lt;?php bloginfo('url'); ?&gt;"&gt;&lt;?php bloginfo('name'); ?&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;!-- &lt;h3&gt;&lt;p class="description"&gt;&lt;?php bloginfo('description'); ?&gt;&lt;/p&gt;&lt;/h3&gt; --&gt;

In layout.css:
/* header
--------------------------------------------------*/
#header h1 {
  /* padding-top:100px; comment out this line */
  /* padding-left: 120px; comment out this line */
}
#header a { /* add */
  display: block;
  height: 100%;
  text-indent: -500em;
} 
</pre>
<p>That last technique might be most useful when any header graphic already included your site name and other details. The first technique, although easier to implement, might work best if only the <strong>h3</strong> tag were rendered invisible. Once you are happy with your changes, delete any code which so far you have only commented out.</p>
<p>Obviously a lot more changes are possible and it isn&#8217;t practical to attempt to anticipate them all. The key to making such changes is: first identify the relevant HTML; second identify all the CSS which relates to it; and third, understand what the CSS is actually doing. Initially make changes by commenting parts out rather than by deleting them. Comment what you have changed (I haven&#8217;t done this thoroughly here, wanting to keep what you are seeing relatively uncluttered) and test each group of changes before moving on to the next. Nothing is worse than changing a whole page, seeing the layout has been thrown out of whack and not knowing where to start looking for the problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/wordpress-headerphp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stop Comment Spam</title>
		<link>http://carpejugular.com/stop-comment-spam/</link>
		<comments>http://carpejugular.com/stop-comment-spam/#comments</comments>
		<pubDate>Sun, 08 Apr 2007 14:13:10 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
				<category><![CDATA[WordPress]]></category>
<category>anti spam</category><category>spam blocker</category><category>spam protection</category>
		<guid isPermaLink="false">http://carpejugular.com/stop-comment-spam/</guid>
		<description><![CDATA[According to some estimates, over 90% of comments posted on blogs may be spam. Many webmasters react by switching comments off, but this reduces the value of blogs both to their operators and their visitors. Spam can be handled without such drastic action being necessary.]]></description>
			<content:encoded><![CDATA[<p>It has been claimed that over 90% of blog comments are spam, so it is a major problem. But the best response is not to switch comments off, because that denies you the chance of all the extra content which others could be writing for you. Particularly for some mainstream blogs, interactivity is part of their appeal.</p>
<p>WordPress does have built-in spam protection, but not near enough to outsmart the pro spammers. Fortunately there are three popular comment-spam blocker plugins which will do the job. They can be used separately or in combination, and there are other measures you can take.</p>
<ul class="tutor">
<li><strong><a href="http://akismet.com/">Akismet</a></strong> is currently bundled with WordPress. It is an off-site service, storing profiles of spam attempts and checking whether comments posted to your blog match any of these profiles. It works extremely well, but any off-site service introduces the possibility of slowdowns and it is a commercial service. If you use the free version, you get a slower service than those who pay.</li>
<li><strong><a href="http://www.ioerror.us/software/bad-behavior">Bad Behavior</a></strong> is a very useful plugin (actually it is also a standalone solution which can be used with any php script such as message boards or guest books). It protects not only against comment spam but also again email harvesters. Its main strength is in blocking automated spammers and it does not protect fully against people with the patience to sit and type comments one at a time. <strong>Use this even if you have comments disabled, to prevent direct access to the comments script.</strong></li>
<li><strong><a href="http://unknowngenius.com/blog/wordpress/spam-karma">Spam Karma</a></strong> is another proven suite of scripts which works uobtrusively in the background to block virtually all spam. There are numerous settings which can be tweaked to enhance its performance. <strong>Using both Spam Karma <em>and</em> Bad Behavior will allow the vast majority of sites to leave comments open and unmoderated, but still spam free.</strong></li>
</ul>
<p>One of the hallmarks of bot spammers is that they target older posts because it takes them time to identify posts and harvest the forms needed to comment. Options in Spam Karma (above) cover this, but if you are using another plugin you might find <a href="http://codex.wordpress.org/Plugins/Auto_shutoff_comments">Auto-Shutoff Comments</a> useful. A setting of 15 days will exclude a lot of spam from your site(s).</p>
<p>Using just one or two of these measures, you can block almost all automated spam and a lot of human-entered spam too, while retaining the full advantages of the blog format and its appeal to your visitors. There will be very little spam left for you to deal with by hand. However, you can require comment posters to register and there are some other tweaks available.</p>
<p>For example, in your <strong>Theme Editor</strong>, open up <strong>comments.php</strong> and find this:</p>
<pre class="tutor">
&lt;?php comment_author_link() ?&gt;
and change it to:
&lt;?php comment_author() ?&gt;
</pre>
<p>That will stop the comment author&#8217;s name being linked back to his site or email address. But before doing this, think about the potential negative reaction of genuine commenters. You can also prevent links in comments being made clickable with either a plugin or by modifying WordPress&#8217; core files, this is even more likely to impact negatively on genuine visitors.</p>
]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/stop-comment-spam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Sidebar</title>
		<link>http://carpejugular.com/wordpress-sidebar/</link>
		<comments>http://carpejugular.com/wordpress-sidebar/#comments</comments>
		<pubDate>Sun, 25 Mar 2007 00:51:05 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
				<category><![CDATA[WordPress]]></category>
<category>conditional statements</category><category>sidebar</category><category>theme editor</category>
		<guid isPermaLink="false">http://carpejugular.com/wordpress-sidebar/</guid>
		<description><![CDATA[WordPress sidebar code can look confusing the first time you check it out. But that's because WordPress is smart, can sense which page is being displayed and show different content to match. But once you see past the conditional code, what remains is both simple and flexible.]]></description>
			<content:encoded><![CDATA[<p>When you venture through <strong>Presentation</strong> to <strong>Theme Editor</strong> and then open up <strong>Sidebar</strong> in your WordPress Dashboard, the code can be a little intimidating at first. Panic not, that is only because there are lots of conditional statements so that different things display on different pages.</p>
<p><img src="http://carpejugular.com/files/article01701.gif" width="212" height="451" alt="" /></p>
<p>Let&#8217;s start at the top and work down:</p>
<pre class="tutor">
&lt;div id="sidebar"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;?php include (TEMPLATEPATH . '/searchform.php'); ?&gt;
&lt;/li&gt;
&lt;!-- Author information is disabled per default. Uncomment and fill in your details if you want to use it.
&lt;li&gt;&lt;h2&gt;Author&lt;/h2&gt;
&lt;p&gt;A little something about you, the author. Nothing lengthy, just an overview.&lt;/p&gt;
&lt;/li&gt;
--&gt;
</pre>
<p>You will find <strong>searchform.php</strong> in the list down the right of your edit screen and it will need editing separately if you want to change its appearance. Although in the default (Kubrick) theme the author information is disabled, it is actually something blog surfers expect to see, so let&#8217;s enable that section and move it to the top.</p>
<pre class="tutor">
&lt;div id="sidebar"&gt;
&lt;ul&gt;
&lt;?php /* If this is the frontpage */ if ( is_home() || is_page() ) { ?&gt;
&lt;li&gt;&lt;h2&gt;Author&lt;/h2&gt;
&lt;p&gt;A little something about you, the author. Nothing lengthy, just an overview.&lt;/p&gt;
&lt;/li&gt;
&lt;?php } ?&gt;
&lt;li&gt;
&lt;?php include (TEMPLATEPATH . '/searchform.php'); ?&gt;
&lt;/li&gt;
</pre>
<p>But we don&#8217;t want that short bio showing on every page, so as well as removing the comment to enable it and cut/pasting that block higher up, it has been surrounded by <strong>if ( is_home())</strong>. WordPress has the ability to know <a href="http://codex.wordpress.org/Conditional_Tags">which page is being delivered</a> and showing or hiding blocks accordingly. If you think about that ability, it presents options such as being able to display your copyright notice and credits on your main page, but an alternate footer on other pages.</p>

<pre class="tutor">
&lt;li&gt;
&lt;?php /* If this is a 404 page */ if (is_404()) { ?&gt;
&lt;?php /* If this is a category archive */ } elseif (is_category()) { ?&gt;
&lt;p&gt;You are currently browsing the archives for the &lt;?php single_cat_title(''); ?&gt; category.&lt;/p&gt;

&lt;?php /* If this is a yearly archive */ } elseif (is_day()) { ?&gt;
&lt;p&gt;You are currently browsing the &lt;a href="&lt;?php bloginfo('home'); ?&gt;/"&gt;&lt;?php echo bloginfo('name'); ?&gt;&lt;/a&gt; weblog archives
for the day &lt;?php the_time('l, F jS, Y'); ?&gt;.&lt;/p&gt;

&lt;?php /* If this is a monthly archive */ } elseif (is_month()) { ?&gt;
&lt;p&gt;You are currently browsing the &lt;a href="&lt;?php bloginfo('home'); ?&gt;/"&gt;&lt;?php echo bloginfo('name'); ?&gt;&lt;/a&gt; weblog archives
for &lt;?php the_time('F, Y'); ?&gt;.&lt;/p&gt;

      &lt;?php /* If this is a yearly archive */ } elseif (is_year()) { ?&gt;
&lt;p&gt;You are currently browsing the &lt;a href="&lt;?php bloginfo('home'); ?&gt;/"&gt;&lt;?php echo bloginfo('name'); ?&gt;&lt;/a&gt; weblog archives
for the year &lt;?php the_time('Y'); ?&gt;.&lt;/p&gt;

		 &lt;?php /* If this is a monthly archive */ } elseif (is_search()) { ?&gt;
&lt;p&gt;You have searched the &lt;a href="&lt;?php echo bloginfo('home'); ?&gt;/"&gt;&lt;?php echo bloginfo('name'); ?&gt;&lt;/a&gt; weblog archives
for &lt;strong&gt;'&lt;?php echo wp_specialchars($s); ?&gt;'&lt;/strong&gt;. If you are unable to find anything in these search results, you can try one of these links.&lt;/p&gt;

&lt;?php /* If this is a monthly archive */ } elseif (isset($_GET['paged']) &#038;&#038; !empty($_GET['paged'])) { ?&gt;
&lt;p&gt;You are currently browsing the &lt;a href="&lt;?php echo bloginfo('home'); ?&gt;/"&gt;&lt;?php echo bloginfo('name'); ?&gt;&lt;/a&gt; weblog archives.&lt;/p&gt;

&lt;?php } ?&gt;
&lt;/li&gt;
</pre>
<p>In the next block shown above are conditionals with a vengeance, mainly worth looking over to understand how to build conditionals with more than a yes/no option. But note too that you could highlight this whole block up and either delete it, move it from the sidebar into the main body of your pages, or &#8211; for a 3-column design &#8211; move it into your second sidebar. In short, the functions in it are not location dependent. Providing you ensure you move the whole block, <strong>most</strong> blocks will function perfectly well in any template.</p>
<pre class="tutor">
&lt;?php wp_list_pages('title_li=&lt;h2&gt;Pages&lt;/h2&gt;' ); ?&gt;

&lt;li&gt;&lt;h2&gt;Archives&lt;/h2&gt;
&lt;ul&gt;
&lt;?php wp_get_archives('type=monthly'); ?&gt;
&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;&lt;h2&gt;Categories&lt;/h2&gt;
&lt;ul&gt;
&lt;?php wp_list_cats('sort_column=name&#038;optioncount=1&#038;hierarchical=0'); ?&gt;
&lt;/ul&gt;
&lt;/li&gt;
</pre>
<p>The section of code for displaying links to your blog&#8217;s pages, archives and categories (remember these can be deleted or swapped around as you choose) hints at the way parameters can be used with <a href="http://codex.wordpress.org/Template_Tags/wp_list_pages">wp_list_pages</a>, <a href="http://codex.wordpress.org/Template_Tags/wp_get_archives">wp_get_archives</a> and <a href="http://codex.wordpress.org/Template_Tags/wp_list_cats">wp_list_cats</a> (and also with <a href="http://codex.wordpress.org/Template_Tags/get_links_list">get_links_list</a> in the next section). Each one gets a full page in the WordPress Codex, so rather than turn this into War and Peace, I have linked to those pages. It is worth checking them out because you can narrow what is shown, the order of the display and many other parameters.</p>
<pre class="tutor">
&lt;?php /* If this is the frontpage */ if ( is_home() || is_page() ) { ?&gt;
&lt;?php get_links_list(); ?&gt;

&lt;li&gt;&lt;h2&gt;Meta&lt;/h2&gt;
&lt;ul&gt;
&lt;?php wp_register(); ?&gt;
&lt;li&gt;&lt;?php wp_loginout(); ?&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://validator.w3.org/check/referer" title="This page validates as XHTML 1.0 Transitional"&gt;Valid &lt;abbr title="eXtensible HyperText Markup Language"&gt;XHTML&lt;/abbr&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://gmpg.org/xfn/"&gt;&lt;abbr title="XHTML Friends Network"&gt;XFN&lt;/abbr&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wordpress.org/" title="Powered by WordPress, state-of-the-art semantic personal publishing platform."&gt;WordPress&lt;/a&gt;&lt;/li&gt;
&lt;?php wp_meta(); ?&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;?php } ?&gt;

&lt;/ul&gt;
&lt;/div>
</pre>
<p>The final section is wrapped in another conditional (which you may remove or change) such that your links list(s) and &#8220;meta&#8221; links will only appear on the front page. It is quite possible you may want to remove some or all of these meta links (although if you do, be nice to WordPress and move their credit somewhere else) or add others. I do recommend that even if you don&#8217;t keep the validator link up once your site is live, you keep it during testing, so that you can check all your pages. And to that end, I would (temporarily) comment out the conditional.</p>
<p>Once you have your layout as you want it, cosmetic changes are made via the theme&#8217;s <strong>Stylesheet</strong>. In the default theme note that there are no special classes anywhere in the sidebar: all the styling is controlled by the single <strong>div id=&#8221;sidebar&#8221;</strong> at the top of the code. So when you turn to the Stylesheet, you will be looking for entries such as <strong>#sidebar h2</strong> and <strong>#sidebar ul</strong>, <strong>#sidebar ul ol</strong> plus whole blocks like <strong>/* Begin Sidebar */</strong>. If your editor can search on <strong>#sidebar</strong> that is one of the surest ways of locating all the relevant entries.</p>
<blockquote>Always remember to keep a clean copy of your theme&#8217;s files so that you can back up and check each change as you go along, rather than making lots of changes at once. If you bear those thoughts in mind, I strongly recommend you move things around and play with the styles, just so you can see the effect of each change and get used to how it all works.</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/wordpress-sidebar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Not Buttons &#8211; Chicklets!</title>
		<link>http://carpejugular.com/not-buttons-chiclets/</link>
		<comments>http://carpejugular.com/not-buttons-chiclets/#comments</comments>
		<pubDate>Mon, 19 Mar 2007 02:15:59 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
				<category><![CDATA[WordPress]]></category>
<category>bookmarking</category><category>chicklets</category><category>sociable</category>
		<guid isPermaLink="false">http://carpejugular.com/not-buttons-chiclets/</guid>
		<description><![CDATA[Those buttons you see sprinkled around blogs may be a little irritating, but they can be a useful way to encourage new and repeat visitors. Oh and by the way, they are not called buttons: in blogeze they are known as chiclets.]]></description>
			<content:encoded><![CDATA[<p>You see those buttons down the right side of the screen, the ones which say MyYahoo, MyMSN and so on? Well they are not buttons, they are <strong>chicklets</strong>. On this and many other blogs  you will see three types of chicklets. They can all get you readers and/or traffic, so despite the silly name, they are worth taking seriously.</p>
<p>The first type is just graphics in place of the text links to your own feeds that most themes provide. Blogging scripts routinely auto-generate RSS feeds and if you decide you prefer graphic links to text, grab an appropriate image and insert it into your templates the same way you have always added images to HTML.</p>
<p><img src="http://carpejugular.com/files/article01901.gif" width="360" height="20" alt="" /></p>
<p>Next come the &#8220;social&#8221; chicklets, so-called because they allow your visitors to bookmark articles in their social network. But unlike regular browser bookmarks, social bookmarks generally work online and are public. So if your site gets social bookmarked regularly, scores a high rating or a favorable comment, other people in that network may come and check you out, adding their own bookmarks, ratings and comments in turn. If you are lucky, you could even get someone blogging about your site.</p>
<p>Obviously this group of chicklets need special links to function properly and why insert them manually around your templates, when they can be placed automatically. Plugin-wise there are quite a few options: the one I like best is simply called <strong><a href="http://push.cx/sociable">Sociable</a></strong>. Installation is the usual procedure: unzip the files and FTP the whole directory to wp-content/plugins and then activate from your Dashboard. Then look under Options &#8211;> Sociable to decide which chicklets you want to show and where. That&#8217;s a personal choice but don&#8217;t overdo them so they become distracting. There are more networks than you are likely to want to provide links to, so either look around to see which are popular, or check out <a href="http://quimble.com/poll/view/224">the results of a poll</a>.</p>
<p><img src="http://carpejugular.com/files/article01902.gif" width="96" height="125" alt="" /></p>
<p>If you think regular bookmarking is a good thing to try to persuade your visitors into, the third type of chicklet is like bookmarking on steroids. These chicklets are for those visitors who use services like MyYahoo for their homepage. All they have to do is click on the relevant chicklet and a few seconds later your site&#8217;s RSS feeds have been added to their home page. What more could you ask?</p>
<p>The <a href="http://www.twistermc.com/shake/wordpress-chicklet.php">Chicklet Creator</a> plugin works really well for this and includes all the chicklets as well as the code you need. One word of warning on this one: although the code works, it generates invalid output. You may want to install the plugin, validate a page and update the script. It is a simple job of just a few minutes.</p>]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/not-buttons-chiclets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
