• ecshop 全站自定义title标题


    对于SEO来说,能让标题自定义的将会大大增加SEO效果,提高独立商城的流量,今天小编就收集从网上弄来ecshop全站自定义代码,很全哦!

    1、Ecshop商品分类页如何实现自定义Title
    最近发现很多人都在寻求“如何自定义ECSHOP商品分类页(列表页)TITLE”的修改方法。下面提供一种二次开发教程。
    第1步、
    修改 ecs_category 数据表的结构,新加一个字段

     
    进入 后台 》数据库管理》SQL查询,执行下面SQL语句

     
    ALTER TABLE `ecs_category` ADD `cat_title` VARCHAR( 255 ) NOTNULLAFTER `cat_desc` ;
    第2步、

     
    打开后台模板文件 admin/templates/category_info.htm (最好使用EDITPLUS打开)
    找到下面代码
     <tr>
            <td class="label">{$lang.keywords}:</td>
            <td><input type="text" name="keywords" value='{$cat_info.keywords}' size="50">
            </td>
          </tr>

     
    在它上面增加
    <tr>
            <td class="label">自定义TITLE:</td>
            <td>
             <input type="text" name="cat_title" value='{$cat_info.cat_title}' size="50">
            </td>
          </tr>
     
    第3步、
    继续打开文件 admin/category.php

     
    查找下面代码 
    $cat['cat_desc']     = !empty($_POST['cat_desc'])     ? $_POST['cat_desc']           : '';

     
    总共能找到两处,在每处的后边添加代码
    $cat['cat_title']     = !empty($_POST['cat_title'])     ? $_POST['cat_title']           : '';
    第4步、

     
    下面来修改前台程序文件 /category.php

     
    找到
    return $GLOBALS['db']->getRow('SELECT cat_name, keywords, cat_desc, style, grade, filter_attr, parent_id FROM ' . $GLOBALS['ecs']->table('category') .

     
    将之修改为
     return $GLOBALS['db']->getRow('SELECT cat_name, cat_title, keywords, cat_desc, style, grade, filter_attr, parent_id FROM ' . $GLOBALS['ecs']->table('category') .
    第5步、
    继续找到

     
    $smarty->assign('page_title',       $position['title']);

     
    将之修改为
    $smarty->assign(‘page_title’, $cat['cat_title'] ? $cat['cat_title'] : $position['title']);
    有自定义内容则显示自定义内容。没有则显示默认的。
    使用方法:进入 后台 》商品管理 》商品分类,编辑某个分类即可。
    2、Ecshop文章分类列表页如何自定义Title
    关于“商品列表页、商品详情页如何自定义TITLE”的文章教程都有了,唯独没有讲解“文章分类列表页如何自定义TITLE”的。
    下面以 ecshop2.7.2 版本官方默认模板为基础进行一下讲解。
    1)、首先我们来修改数据库结构,给数据表 ecs_article_cat  增加一个字段 “page_title”
    进入ECSHOP后台 》数据库管理 》SQL查询,输入下面SQL语句,并提交。这里要注意数据表前缀,我这里使用的是默认前缀。
    ALTER TABLE `ecs_article_cat` ADD `page_title` VARCHAR( 255 ) NOT NULL
    2)、修改后台模板和程序
    打开  /admin/templates/articlecat_info.htm 找到 
    <tr>
        <td class="label">{$lang.sort_order}:</td>

     
    在它前面增加如下的代码段

     
    <tr>
        <td class="label">自定义TITLE:</td> <td>
          <input type="text" name="page_title" value="{$cat.page_title|escape}" size="50" />
        </td>
      </tr>

     

     
    接着打开 /admin/articlecat.php
    将 
    $sql = "INSERT INTO ".$ecs->table('article_cat')."(cat_name, cat_type, cat_desc,keywords, parent_id, sort_order, show_in_nav)
               VALUES ('$_POST[cat_name]', '$cat_type',  '$_POST[cat_desc]','$_POST[keywords]', '$_POST[parent_id]', '$_POST[sort_order]', '$_POST[show_in_nav]')";

     
    修改为
    $sql = "INSERT INTO ".$ecs->table('article_cat')."(cat_name, cat_type, cat_desc,keywords, parent_id, sort_order, show_in_nav,page_title)
               VALUES ('$_POST[cat_name]', '$cat_type',  '$_POST[cat_desc]','$_POST[keywords]', '$_POST[parent_id]', '$_POST[sort_order]', '$_POST[show_in_nav]','$POST[page_title]')";

     
    继续,将
     
    $sql = "SELECT cat_id, cat_name, cat_type, cat_desc, show_in_nav, keywords, parent_id,sort_order FROM ".
               $ecs->table('article_cat'). " WHERE cat_id='$_REQUEST[id]'";

     
    修改为 
    $sql = "SELECT cat_id, cat_name, cat_type, cat_desc, show_in_nav, keywords, parent_id,sort_order,page_title FROM ".
               $ecs->table('article_cat'). " WHERE cat_id='$_REQUEST[id]'";

     
    继续向下将 
    if ($exc->edit("cat_name = '$_POST[cat_name]', cat_desc ='$_POST[cat_desc]', keywords='$_POST[keywords]',parent_id = '$_POST[parent_id]', cat_type='$cat_type', sort_order='$_POST[sort_order]', show_in_nav = '$_POST[show_in_nav]'",  $_POST['id']))

     
    修改为
    if ($exc->edit("cat_name = '$_POST[cat_name]', cat_desc ='$_POST[cat_desc]', keywords='$_POST[keywords]',parent_id = '$_POST[parent_id]', cat_type='$cat_type', sort_order='$_POST[sort_order]', show_in_nav = '$_POST[show_in_nav]',page_title='$_POST[page_title]'",  $_POST['id']))

     
    3)、修改文章列表页前台程序

     
    打开 article_cat.php 文件
    找到
    $meta = $db->getRow("SELECT keywords, cat_desc FROM " . $ecs->table('article_cat') . " WHERE cat_id = '$cat_id'");
    修改为
    $meta = $db->getRow("SELECT keywords, cat_desc,page_title FROM " . $ecs->table('article_cat') . " WHERE cat_id = '$cat_id'");
    找到
    $smarty->assign('keywords',    htmlspecialchars($meta['keywords']));
    在它下面增加一行代码
    $smarty->assign('page_title',    htmlspecialchars($meta['page_title']));
    3、关于Ecshop品牌页如何自定义Title的方法
    闲话少叙,下面就以2.7.2版官方默认模板为例讲解一下“在Ecshop品牌页如何自定义Title的方法”。 
    1)、
    第一步,修改数据库结构,在 ecs_brand 表里增加一个新字段 page_title
    依次进入 后台 》数据库管理 》SQL查询,输入下面的SQL语句,并执行。
    ALTER TABLE `ecs_brand` ADD `page_title` VARCHAR( 255 ) NOT NULL 
    注意:我的数据库是用的默认前缀,请针对你的数据库前缀,自行修改。
    2)、
    第二步,修改模板文件 /admin/templates/brand_info.htm
    <tr>
        <td class="label">{$lang.sort_order}</td>
        <td><input type="text" name="sort_order" maxlength="40" size="15" value="{$brand.sort_order}" /></td>
      </tr>
    下面增加
    <tr>
        <td class="label">自定义TITLE:</td>
        <td><input type="text" name="page_title"  size="60" value="{$brand.page_title}" /></td>
      </tr>
    3)、
    修改 /admin/brand.php 文件
    找到(大概在88行左右)
    $sql = "INSERT INTO ".$ecs->table('brand')."(brand_name, site_url, brand_desc, brand_logo, is_show, sort_order) ".
               "VALUES ('$_POST[brand_name]', '$site_url', '$_POST[brand_desc]', '$img_name', '$is_show', '$_POST[sort_order]')";
        $db->query($sql);
    将它修改为
    $sql = "INSERT INTO ".$ecs->table('brand')."(brand_name, site_url, brand_desc, brand_logo, is_show, sort_order,page_title) ".
               "VALUES ('$_POST[brand_name]', '$site_url', '$_POST[brand_desc]', '$img_name', '$is_show', '$_POST[sort_order]'),'$_post[page_title]'";
        $db->query($sql);
    继续找到(大概在113行左右)
     $sql = "SELECT brand_id, brand_name, site_url, brand_logo, brand_desc, brand_logo, is_show, sort_order ".
                "FROM " .$ecs->table('brand'). " WHERE brand_id='$_REQUEST[id]'";
        $brand = $db->GetRow($sql);
    将之修改为
    $sql = "SELECT brand_id, brand_name, site_url, brand_logo, brand_desc, brand_logo, is_show, sort_order,page_title ".
                "FROM " .$ecs->table('brand'). " WHERE brand_id='$_REQUEST[id]'";
        $brand = $db->GetRow($sql);
     
    继续向下找到
    /* 处理图片 */
        $img_name = basename($image->upload_image($_FILES['brand_logo'],'brandlogo'));
        $param = "brand_name = '$_POST[brand_name]',  site_url='$site_url', brand_desc='$_POST[brand_desc]', is_show='$is_show', sort_order='$_POST[sort_order]' ";
    将它修改成下面代码
    /* 处理图片 */
        $img_name = basename($image->upload_image($_FILES['brand_logo'],'brandlogo'));
        $param = "brand_name = '$_POST[brand_name]',  site_url='$site_url', brand_desc='$_POST[brand_desc]', is_show='$is_show', sort_order='$_POST[sort_order]',page_title='$_POST[page_title]' ";
    4)、
    修改前台程序文件 /brand.php 
    $smarty->assign('page_title',     $position['title']);   // 页面标题
    修改为 
    $smarty->assign('page_title',     htmlspecialchars($brand_info['page_title']));   // 页面标题
    5)、大功告成,可以看看效果了。
    4、ECSHOP商品详细页自定义TITLE方法
    修改教程牵涉到的修改文件
    /admin/templates/goods_info.htm
    /admin/goods.php
    /goods.php

     
    修改步骤:
    1:后台运行sql语句,admin后台->左侧导航->数据库管理->SQL查询
    运行下面的语句(只能运行一次,小心): 
    alter table ecs_goods add seo_title text not null 

     
    2:修改 admin/templates/goods_info.htm
    在此文件的第44行后面,加上下面几行 
              <tr>
                <td class="label">自定义title</td>
           <td>

     
                  <input type="text" name="seo_title" value="{$goods.seo_title}" size="30" />

     
                </td>

     
              </tr>

     
    3:修改admin/goods.php
    搜索“rank_integral”在SQL语句那里修改,
    需要修改四处,在833行找到
      "is_on_sale, is_alone_sale, is_shipping, goods_desc, add_time, last_update, goods_type, rank_integral, seo_title,suppliers_id)" .
    修改成
    "is_on_sale, is_alone_sale, is_shipping, goods_desc, add_time, last_update, goods_type, rank_integral, seo_title,suppliers_id)" .
    找到839行找到
        " '$_POST[goods_desc]', '" . gmtime() . "', '". gmtime() ."', '$goods_type', '$rank_integral','$suppliers_id')";
    修改成
      " '$_POST[goods_desc]', '" . gmtime() . "', '". gmtime() ."', '$goods_type', '$rank_integral', '$_POST[seo_title]','$suppliers_id')";
    847行找到
    "is_on_sale, is_alone_sale, is_shipping, goods_desc, add_time, last_update, goods_type, extension_code, rank_integral)" .
    修改成
    "is_on_sale, is_alone_sale, is_shipping, goods_desc, add_time, last_update, goods_type, extension_code, rank_integral,seo_title)" .
    853行
    " '$_POST[goods_desc]', '" . gmtime() . "', '". gmtime() ."', '$goods_type', '$code', '$rank_integral')";
    修改成
    " '$_POST[goods_desc]', '" . gmtime() . "', '". gmtime() ."', '$goods_type', '$code', '$rank_integral','$_POST[seo_title]')";
    搜索
    "rank_integral = '$rank_integral', " .
    在下方加代码
    "seo_title='$_POST[seo_title]',".
    4:修改根目录goods.php的第242行
    搜索// 页面标题
    把代码
    $smarty->assign('page_title',          $position['title']);                    // 页面标题
    替换成
    $smarty->assign('page_title',         trim($goods['seo_title'])?$goods['seo_title']:$position['title']);  // 页面标题
    清除缓存大攻造成!
    转载:http://www.68ecshop.com/article-694.html
  • 相关阅读:
    Nacos配置失败(java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/instance after all server)
    数据库事务
    Consider defining a bean of type 'redis.clients.jedis.JedisPool' in your configuration.
    Mybatis+SpringBoot 项目All elements are null
    docker安装Sentinel
    docker安装nacos
    Docker 配置 Seata 集成 Nacos
    mybatis转义反斜杠_MyBatis Plus like模糊查询特殊字符_、、%
    在linux上配置Maven环境变量
    spring cache 学习——整合 redis 实现声明式缓存配置
  • 原文地址:https://www.cnblogs.com/wawahaha/p/4687903.html
Copyright © 2020-2023  润新知