• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

WP Realm

WordPress news, community news, reviews and more from all over the world

  • News
  • Reviews
  • Tutorials
  • eCommerce
  • About
  • Contact

Code Snippets

Optimizing Your Shopp Page Titles for SEO

7 September 2010 by Remkus de Vries 2 Comments

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.

Filed Under: Code Snippets Tagged With: SEO titles, SHOPP, WordPress webshop

Conditional Logic and Filters for the Genesis Framework

3 August 2010 by Remkus de Vries Leave a Comment

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.

Filed Under: Code Snippets Tagged With: Conditional Logic, Genesis

Primary Sidebar

SUBSCRIBE

Our posts to your inbox. It's a wonderful thing.

Recent Comments

  • Remkus de Vries on Building a Multilingual Website? These are the Questions to Ask.
  • Tuba on Building a Multilingual Website? These are the Questions to Ask.
  • Remkus de Vries on Adding Pages to Your RSS Feed in WordPress
  • Kris on Adding Pages to Your RSS Feed in WordPress
  • WPML, qTranslate eller Polylang: hvilken du skal velge og hvorfor? (2020) - My Blog on Building a Multilingual Website? These are the Questions to Ask.
Copyright © 2012 – 2022 WP Realm
Have you seen how fast Servebolt serves this site?