Kempwire.com

By Jonathan Kemp

Remove Unwanted Tags From Your WordPress Header

The function wp_head; found in the header.php template file adds unnecessary tags to your WordPress template. These tags are the RSD, or Really Simple Discovery, link, the Windows Live Writer Link and the WordPress version number. I wanted to add this important function to my themes, but I don’t want those tags that WordPress adds by default.

So I created another WordPress plugin to strip these tags out. This plugin will stop all 3 tags from being automatically added to your WordPress header. The WordPress Head Cleaner page is here, and you can download the plugin here.

Nofollowing Your Archives in WordPress

I recently wrote my first WordPress plugin. I was looking for a way to add the “nofollow” rel attribute to archive links in WordPress. I needed to be able to use them in my theme without giving them any pagerank value.

I found that the best way to do it was to create a plugin so that I wouldn’t have to modify the core files. Any way the Nofollow Archives page is here, and you can download the plugin here.

How to Fix Tags in Elgg

Update: My changes have been rolled into the current development version of Elgg, so they should be in the next release. So if you don’t want to implement these changes yourself, you should be ok waiting for the upgrade.

Tags are a really good way to organize content in Elgg. You can add tags to any piece of content you create, and the tags help you organize that content by grouping it together, however you see fit. But when I looked at the underlying code for the tags, I noticed that it wasn’t following the specification for the tag microformat. Not that big a problem, but not a hard problem to solve either.

To explain, here is an example of how Elgg currently formats tags.

<a href="http://www.example.com/search/?tag=elgg">Elgg</a>

According to the microformat specification, here is how tags should be formatted.

<a href="http://www.example.com/tag/elgg" rel="tag">Elgg</a>

So how do we correctly format tags in Elgg? Well, we can use an .htaccess rewrite rule to correctly format the url to the specification. Edit your .htaccess file in Elgg and insert this code at line #120.

RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9\+-]+)/?$ search/?$1=$2

That handles the url, but we need to rewrite the code in Elgg that displays the tags, so when you click on the tag, it goes to that url. To do this, open views/default/output/tags.php and edit line #49 to read like this.

$tagstr .= "<a rel=\"tag\" href=\"{$vars['url']}tag/".urlencode($tag) . "{$type}{$subtype}{$object}\">{$tag}</a>";

That should be it. It’s pretty simple actually. Now your tags should be correctly formatted to the tag microformat specification.

One important thing to note is that I have again modified core Elgg files, which means if I upgrade my install these changes will be overwritten. So if you follow these instructions, you should realize that. Yes, this is a no no, so I have again submitted a change to the Elgg core files in the bug tracker here. Hopefully, the developers will incorporate my code, or something like it so modifying the core files will no longer be needed. Or, if someone would write a plugin or create some decent plugin documentation on how to create something like this, it would also be appreciated.

I hate continually modifying the core Elgg files, but these are problems more mature software packages, like WordPress, have already solved. Yes, I believe Elgg is still in it’s infancy, but it’s fixes like this that will make people notice that this is serious software.

Popularity Contest No Longer Supported, Use WordPress Popular Posts

Popularity Contest is a WordPress plugin that keeps a count of your post, category and archive views, comments, trackbacks, etc. and uses them to determine which of your posts are most popular. I have used it for almost as long as I have used WordPress, and it was a great plugin in its time. But it is time to declare it on life support at least, if not dead in the water.

The problem with Popularity Contest is that was last updated on Dec. 16th, 2007, and it is only compatible up to WordPress 2.3.1. The current version of WordPress is 2.7. If you have had Popularity Contest installed since then, the plugin functions fine. The problem is that it will no longer connect to the database for anything else other than to record information. If you try to reset values, which is a feature, it fails.

If you try to install it on a new version of WordPress, it fails because it will not create a new database, if one doesn’t already exist. You have to manually create the database on your own. Even then it may still have problems. Although there is a fix for those problems, there is no fix for the database connectivity problems other than manually modifying the database yourself.

As a result of these problems, I sought out a more current plugin that does the same thing. The plugin I found is called WordPress Popular Posts. I’ve been using it, and I am really satisifed with how it works. You can call it directly from your theme, or it has a widget, if your theme is widget enabled. It is also more configurable, but very simple to install. It does create a new table in your database, however, to track page views, but I had no problems with it. It uses the existing WordPress data for everything else.

I am continuing to use Popularity Contest where I already have it installed and it is working sufficiently. I am using it on this blog, in fact. But for any new installs, I am using WordPress Popular Posts. That is unless Popularity Contest ever gets updated to work with the current version of WordPress. If anyone else has abandoned it, I would like to hear what you are using instead.

Update: I’m so pleased with how WordPress Popular Posts works, I’m using it on all my sites now, and getting rid of Popularity Contest.

Elgg SEO: How to Fix Your Title Tags

Update #1: My changes have been rolled into the current development version of Elgg, so they should be in the next release. So if you don’t want to implement these changes yourself, you should be ok waiting for the upgrade.

Update #2: The title tag for pages and files did make it into Elgg 1.5, but the blog title tag change got regressed somehow. If it was not an accident, then they did it on purpose. Either way, it is very amateurish in my opinion, which continues to be one of my complaints about Elgg. Anyway, you can still apply the fix below exactly as described, and it will work.

I’ve been writing about recently, and more importantly, how to improve it. I have said that Elgg needs some attention to SEO to be a serious solution. Even though Elgg developers have taken my suggestions recently, I couldn’t wait any longer and took it upon myself to dig into the Elgg source code.

My goal was to improve Elgg SEO by creating unique title tags within the content. I was able to create unique title tags for blog posts, pages and files, by adding the post title to title tag in the header, so that each title tag is formatted like this, “Site Name : Title.”

Here’s how you can do the same thing step by step.

To give your blog posts a unique title tag, go to mod/blog/read.php and uncomment line 38. Here’s how it should read.

$title = sprintf(elgg_echo("blog:posttitle"),$page_owner->name,$blogpost->title);

Now your blog post title tags should read, “Site Name: username’s blog: Post title.”

Next up is pages. To give your pages a unique title tag, go to mod/pages/view.php and insert this code on line 40.

$title = $pages->title;

Now your page title tags should read, “Site Name: Page title.”

Changing the file title tags was a lot harder, because there is not really a file view. You have to change it in the entity view. Up to this point, we have been modifying plugins files, which is fine because we are not modifying the core Elgg files. This means those changes won’t get erased by upgrading your Elgg installation.

But modifying the entity view requires modifying core Elgg files, so proceed at your own risk. To make the change, open up entities\index.php. Insert this code on line 40.

$title = $entity->title;

Modify line 57 to look like this.

page_draw($title, $body);

Then on line 60 insert this code.

echo $title;

Now your file title tags should read, “Site Name: File title.”

These were small improvements, but hopefully it will pay off in more search engine traffic to your Elgg site. I’ve submitted these changes to the Elgg code base here, here and here. Hopefully, the developers will consider integrating these improvements into the actual code.

I’ve tested this code, and it works. But I am not a developer, so if I’ve made any mistakes, I welcome suggestions for improvement. If this would be better done as plugin, I would love to have someone come up with an Elgg SEO plugin, as well.

Elgg and SEO

Update: I’ve posted a solution for fixing your title tags in Elgg.

So as I’ve written, I’ve been using a social networking software package called Elgg. So far I’m really pleased with how it works. In addition, it is open source with the ability to develop plugins for it.

However, Elgg is not without its problems. In fact, I recently posted a development wishlist for Elgg. Besides releasing an upgrade path to upgrade your 0.x Elgg installation to 1.x (a glaring error), at the top of my list is lack of SEO.

In my opinion, Elgg seriously needs SEO to be considered a useful product. I’m really not asking all that much here. The main thing it needs is unique title tags. This is a basic SEO requirement, and continues to be overlooked in Elgg.

For example, any item you create in Elgg, blog post, page, file, etc., lacks a unique title tag. In fact, they all have the same title tag, which is only the site name. This is bad for SEO because when your items show up in a search engine, there will be no descriptive text for that item. In addition, if your page shows up with other pages from your site, there is no way to tell them apart because the title tags are all the same.

The interesting thing is that this feature was present in Elgg 0.x but not in the new version of Elgg 1.x. All you would have to do to give each item a unique title tag would be to have the name of the site followed by the title of the item, i.e. the blog post title. This would make items posted in Elgg much easier to find in search engines, and as a result, bring more search engine traffic to each site. It seems like a simple thing, and, being that this feature actually exists in the groups and forums, it doesn’t seem that hard to add to the rest of the site.

The second thing that would be useful is search engine friendly url’s for pages. Search engine friendly urls are being used for blog posts and files but not for pages. This was something that was not present in Elgg 0.x but was added in 1.x.

I recently wrote a post about how to make the Elgg plugin directory more useful, and the developers followed every one of my suggestions. So I am writing this hoping that someone over there is still paying attention. At the least, it would be simple to write a plugin to solve this problem, or incorporate it into themes.

For you Elgg users and developers out there, what are some other ways SEO can be improved in Elgg?

Getting Overflow Hidden to Work in IE

This is an easy fix, but I thought it was worth a post anyway, in case someone comes across it.

Setting overflow: hidden on a block element does not work in IE, if width and height are not set. But, it does in other standards aware browsers.

You may come across this situation if you have an element nested inside another element where width and height are set, and the nested element is inheriting the dimensions of the parent element. In that case, there is no need to set width and height usually. Well, in IE, overflow: hidden will not work if no dimensions are specified.

So as you may have already guessed, the fix is pretty simple. Setting a width and height on the element, or even just a width, will cause IE to obey the property.

I’m not sure if IE is doing the correct thing or not, in this case. It does make sense that you would have to specify dimensions, so that the browser will know where to cut it off at. It seems though, that IE is dumb here, as other browsers assume the inherited dimensions. I’ll leave that up to you to decide.

Elgg Plugins Need Better Organization and Navigation

Update: See the comments. Not too long after I wrote this, we noticed big changes in the Elgg Plugin site. What changed? Every one of my five suggestions was incorporated making huge improvements in the Elgg Plugin site. Thanks guys.

A few days ago, I wrote a post on how to improve Elgg. Something else that is needed to help make it better is improved plugin organization.

The way that Elgg plugins are organized leaves much to be desired. You can see what I am talking about here. Plugins are listed in order of most recently added to the site, and you can browse them 20 at a time. So to find a plugin, you have to go through page after page, and there’s no way to tell whether or not the plugin might be useful.

So here is what needs to be added to improve plugin organization on Elgg.

1. A way to rate plugins. Plugin ratings would be useful to help developers determine whether the plugin works well or not. Then you could organize plugins by popularity.

2. How many times a plugin has been downloaded. This would also help you to know if a plugin is useful, and you could sort plugins by this option.

3. Plugin search. There is no way to search plugins on the site. What?

4. A plugin description displaying in the listing. The only thing you can view in the listings is the plugin title. These are not very descriptive sometimes, so it is hard to tell what the plugins are for based on the titles alone.

5. Better versioning. Old versions of plugins stay in the listings, which is fine. But plugin organization by version would be helpful.

Basically, Elgg plugin organization is almost useless in that you have to page through the list of most recent plugins and without descriptions you have to click through to find out what they do. Adding things from the list of above would greatly improve the organization and help developers better find plugins to improve their sites. This would also help improve the usefulness of Elgg itself. All of these suggestions are obvious, so it’s a mystery why the developers haven’t implemented anything like this yet.

Firefox 2 Does Not Support inline-block

Those familiar with CSS 2.1 may be familiar with the CSS property display: inline-block. This property allows an object to have the properties of both an inline object and a block object. What this means is that the object can be displayed inline but have height and width qualities of a block object.

This is a property that can be very useful when applying certain layouts. I was using it on a project recently when I discovered that Firefox 2 lacks support for display: inline-block. This was quite shocking to me because I assumed that Firefox 2 had full support of CSS 2.1. After all, Firefox was the number one Mozilla browser until only recently.

Anyway, in searching for a work around, I discovered that there is a similar Mozilla-specific CSS property that works in the same way, display: -moz-inline-box. All you have to do is add that property to your CSS and you will get the same effect in Firefox 2.

However, I discovered another problem with this in that once you apply display: -moz-inline-box to an object you can no longer use position: absolute on any objects contained within that object. I continued to be amzaed by Firefox 2′s misbehavior.

I finally discovered a solution to this as well, although not ideal. After searching a bit more, I found that if you add an second div inside the object, you can apply position: relative to that, which will then allow you to position objects absolutely within that div. Make sense?

In case you were wondering, the reason it is not ideal is that you are adding an unnecessary div to your code for simply presentational purposes. It is never good to do this, but sometimes the trade off is worth it for full cross browser support, when your layouts are more complex.

Elgg Development Wishlist

Elgg is an open source software package that allows you to create and host your own social network. I discovered it last year while looking for this type of software. It is free and because it is open source there is a community of developers that can create plugins to help improve the software.

First, let me say how pleased I am with Elgg. It is the best open source social network software out there that I have been able to find. In fact, I would say there is nothing else like it. I also like the fact that it is open source and extendible with plugins and themes. There is a community site where users can upload plugins and themes.

However, there are several drawbacks to Elgg. First, I would say it is in its infancy now. In fact, in 2008, a new 1.0 version was built from scratch. While the 1.0 version is a great improvement, several features were left out of the new version that existed in the old version that software like this should have in my opinion.

The good thing is that development is continuing on Elgg with 2 major releases planned per year. I am afraid though that the features that are most needed are not on the radar of the developers. Here is my list of features that I feel Elgg needs in the next version or two to be much more useful.

1. SEO – Elgg needs basic SEO. Currently, blog posts, pages and files do not even have unique title tags. This is a basic rule of SEO the developers have ignored. The funny thing is that this was not a problem in the earlier version.

Update: I’ve posted a solution for fixing your title tags in Elgg.

2. An Upgrade Path – When version 1.0 was launched, there was no way to upgrade your installation without losing your data. This is a serious mistake that has not been corrected yet. If you were already using it, you can’t use the new version unless you want to start over from scratch. Why was this even considered and why hasn’t it been corrected yet?

3. The Wall – The classic version had a wall feature just like Facebook. In the new version, they got rid of it. Please bring back the wall.

4. RSS Import – Classic Elgg had a built in feature that could import RSS feeds and even create blog posts from the RSS feed. I’m not sure why they got rid of it, as that is a pretty cool feature that simlar blog platforms need a plugin for. Please bring this back as well.

These are my main concerns, but the list doesn’t stop there. It seems like the developers are using WordPress as a model. While this is a good thing, the developers should pay closer attention to the development of WordPress. I can think of a few things WordPress has that Elgg should have.

WordPress has better documentation. WordPress also has better access to support. Another cool feature would be ratings on plugins and stats on how many times plugins have been downloaded. If you haven’t noticed a pattern yet, WordPress also has this.

Hopefully, this post will start the Elgg developers thinking about these things. If not or in the mean time, maybe some sharp plugin developer will take it upon himself to find a solution to these problems. In any case, I am patiently waiting for Elgg to get better over time. It’s not there yet.

Page 3 of 1612345...Last »

Copyright © 2005-2010. XHTML | CSS