Why I Choose The Genesis Theme Framework

A while back I wrote about WordPress Theme Frameworks and whether you had taken a look at them yet. Today I’d love to share with you why I have used the Genesis Framework by StudioPress the last couple of months..

In my previous post on the topic I discussed the pros and cons and came to this conclusion:

For me personally, I’m all about options. I love working with a WordPress Theme Framework that allows me to have a very high level of control over how specific I want to be in what I want my theme to output. I don’t mind the learning, in fact I love learning, and when you know your way around the forums you’ll be able to either find what you were looking for or get a working answer of your fellow developers. Plus, having a Parent Theme that is continuously updated is big plus for me.

So even though you could argue a framework is bloat and adds a lot of stuff that you perhaps won’t ever need, to me that’s irrelevant because you only load what is needed and I could care less about how much kB the themes take up on the server.
[Read more...]

Optimizing Your Shopp Page Titles for SEO

WordPress webshop with ShoppI’ve been a very content Shopp plugin user for my wife’s webshop based on WordPress and the recent upgrade to the much awaited version 1.1 has made me even more content. I love the way the way the plugin is setup and how it behaves. The only thing I’m not very fond of how it outputs the page titles in the browser title bar.

As a webshop owner you want to have your product name and categories before the actuall site title. Now, Shopp does do exactly that but it also adds ‘Shop’ in front of it, plus it sticks that to the product and category title. Luckily there is a solution.

In your theme functions.php you need to add a few lines of code.

[php]//Optimizing Shopp pages for SEO
function forsite_seo_shopp_titles ($title,$sep=" — ") {

global $Shopp; // Access the Shopp data structure
$titles = array(); // An array to keep track of the title elements

if (shopp(‘catalog’,’is-category’)) // Build the category page titles
$titles = array($Shopp->Category->name);

if (shopp(‘catalog’,’is-product’)) // Build the product page titles
$titles = array($Shopp->Product->name);

return join($sep,$titles);
}

add_action(‘wp’, ‘forsite_change_titles_on_shopp_pages’);
function forsite_change_titles_on_shopp_pages(){
if ( is_page(‘X’)) {
add_filter(‘wp_title’, ‘forsite_seo_shopp_titles’,11,2);
}
}[/php]

The code is pretty self-explanatory with the inline comments but just in case it’s a bit fuzzy I’ll explain a bit more. The first code harvests the titles of the categories and products and puts them in an array called $titles which will be returned joined with the separator ($sep). Now in itself this first function works great, but if we were to use the add_filter code with just this one function in place we would lose the proper titles on your regular WordPress pages and posts. Not something we want, right?

To make sure this filter is only applied to Shopp related pages, remember Shopp uses one particular page as a base, we need to apply the add_filter code to only that one page. So, look up the page_id of that particular code and replace the X with that ID number and you’ll be fixed. The filter will only be applied if we’re on a Shopp related page and that’s exactly how we wanted it.

WP Polyglots Takes The Lead and Moves From Mailinglist to Site

Over on Webdesignerdepot John O’Nolan just published a nice overview of what’s happening with the reorganization of WordPress.org. It’s a nice overview where we get an insight in what’s going on right now and what the WordPress 3.org project is all about. It’s great to see WordPress moving forward in this way but there’s an area not spoken of that I’d love to see included; the mailing lists.

I know, at some point in time those mailinglist (WP Hackers, WP Testers, WP Polyglots) were the best and easiest solution to deal with a lot of issue, but personally I think it’s time to move on. I’m mostly active in the Dutch WordPress community as a forum moderator, site admin and responsible of the translation commits and in that capacity I’ve had to work a lot with the WP Polyglots mailing list lately. Not a perfect solution at all when you have a lot of questions and get a lot of answers.

What’s great about the guys behind WordPress is that most of the time you come with a decent suggestions they are willing to listen and that’s exactly what happened this weekend. As soon as Peter suggested it and agreed upon it being a good idea the site was born. That’s how swiftly it can go. The WP Polyglot mailinglist got ‘rerouted’ to a dedicated site on WordPress.com called WPPolyglots.wordpress.com. Again, another great example of how wonderfully the P2 theme works in these kinds of settings.

All questions regarding the translation of WordPress, BuddyPress, bbPress but also questions concerning setting up a country site and forum should now be addressed here. And the great thing about it is that it’s so much easier to share the knowledge in this way. I’m working on a Resources page where all the proper Codex pages will be listed plus a list with the best course of actions to make translating a happier process.

Conditional Logic and Filters for the Genesis Framework

WordPress CodeOn a recent project using a Genesis child theme I found myself in a situation where I wanted to use a filter, but only on certain views, namely the category view and the homepage view. Adding a filter is pretty straight forward, but using that filter in combination with conditional tags you need to add a bit extra instead of just the tags themselves.

Now, the example is for the Genesis Framework, but really the logic behind will work on any child theme using filters. What I wanted to filter was the output of the post meta area, which normally displays both the categories and the tags. I wanted to use a slightly different post meta on the homepage where the tags would be replaced with a Continue reading link.

This is what the filter looks like:

[php]//Customizing Post Meta
function forsite_post_meta_filter($post_meta) {
$post_meta = ‘[post_ categories], <a href="’. get_permalink() .’" title="’. the_title_attribute(‘echo=0′) .’">Continue Reading</a>';
return $post_meta;
}[/php]

As you can see I am just adding a permalink with a ‘Continue Reading’ text. Nothing too fancy. Normally you would add your filter and you’d be all done. Like so:

[php]//Customizing Post Meta
function forsite_post_meta_filter($post_meta) {
$post_meta = ‘[post_ categories], <a href="’. get_permalink() .’" title="’. the_title_attribute(‘echo=0′) .’">Continue Reading</a>';
return $post_meta;
}

add_filter(‘genesis_post_meta’, ‘forsite_post_meta_filter’);[/php]

Using Conditial Tags with this filter actually requires the use of an add_action statement. The way to do is by declaring another function which handles the conditional tags. Something like this

[php]function forsite_post_meta_conditionals() {
if( is_home() || is_category() ) {
add_filter(‘genesis_post_meta’, ‘forsite_post_meta_filter’);
}
}

add_action(‘wp’, ‘forsite_post_meta_conditionals’);[/php]

The if statement determines to actually use this filter only whether you are looking at the home page or the category view. Combined the full code looks like this:

[php]//Customizing Post Meta
function forsite_post_meta_filter($post_meta) {
$post_meta = ‘[post_ categories], <a href="’. get_permalink() .’" title="’. the_title_attribute(‘echo=0′) .’">Continue Reading</a>';
return $post_meta;
}
function forsite_post_meta_conditionals() {
if( is_home() || is_category() ) {
add_filter(‘genesis_post_meta’, ‘forsite_post_meta_filter’);
}
}
add_action(‘wp’, ‘forsite_post_meta_conditionals’);[/php]

On all occasions where I used post_categories in these code snippets I’ve added an extra blank space between the underscore and categories for it otherwise shows the actual content. So when implementing this code, be sure to delete that extra space!

More info on conditional tags can be found in the Codex, and more information on WordPress filters. Have you worked with conditional tags and / or filters before?

This article first appeared on Devlounge.

How To: Serve Better RSS Feeds To Your Subscribers

RSSMost of your focus on optimizing your WordPress sites is probably on the look and feel of your design and the layout of specific things. Getting that content to display as perfectly as possible. Given that fact it’s a shame we spend as close to none time on optimizing our RSS Feed output. Sure, we hook our feeds up to Feedburner, but most don’t even select the ‘Optimize Feed’ option. Which is strange considering the ratio of people that view your content via RSS versus the actual site.

RSS is supposed to deliver your content as clean as possible, but there are however a few things you can do to optimize the output of your RSS. Here a few plugins that can help you out: [Read more...]