WordPress Shopp插件使用了wordpress的一个页面来动态输出网店内容,默认的Title带着SHOP这个词,感觉很多余,所以要想办法去掉。

去掉的方法就是在模板的functions.php文件中添加钩子函数修改Title输出,因为其它的SEO插件可以覆盖掉PAGE Title的格式,所以要保证Wordpress Shopp使用的页面title规则不被其它SEO插件控制。

修改方法如下,打开functions.php,在最后添加如下代码

function shopp_catalog_titles ($title) {
  global $Shopp;  // Access the Shopp data structure
  $titles = array(); // A list to keep track of our title elements
 
  if (shopp('catalog','is-category')) // Build category page titles
   $titles = array($Shopp->Category->name, get_bloginfo('name'));
 
  if (shopp('catalog','is-product')) {
   if (!empty($Shopp->Category->name)) {
    // Use category name, if available
    //get the name of the first category
    shopp('product','found');    
    $cat = shopp('product','category','return=true');
    
     $titles = array(
     $Shopp->Product->name,
     $cat
    );
   } else {
    // Category not available, just the product name
    $titles = array($Shopp->Product->name, get_bloginfo('name')); 
   } 
  } 
 
  return join(" | ",$titles);
 }
 
 add_action('wp', 'forsite_change_titles_on_shopp_pages');
 function forsite_change_titles_on_shopp_pages(){
  if ( is_page('X')) {
 //用Shopp使用的页面ID替换X
  add_filter('wp_title', 'shopp_catalog_titles',11,2);
  }
 }

修改后的TITLE格式为

Category页面:Category Name | Website Name

Product页面:Product Name | Category Name(一个产品可以属于多个目录,这里只显示第一个目录)

注意代码中这两句话

 shopp('product','found');    
 $cat = shopp('product','category','return=true');

这是用来获取某个茶品所属的第一个目录名的语句,本以为用第二句话就够了,经过实验发现必须加上第一句话shopp('product','found'); ,不知道为什么。
 

2条留言

  1. 你好,WooCommerce 插件使用后同样也想优化 title,请问怎么修改,谢谢

评论功能已关闭