首页 > 运营 > 帮助中心 > 正文

解决PHPCMS V9添加{$perfix}自定义html文件名功能

2019-10-17 22:31:43
字体:
来源:转载
供稿:网友

用过2008版的网友都知道,内容模型在发布内容的时候可以自定义生成的HTML文件名,这个功能对于SEO来说非常有好处,但是到了V9之后却很遗憾,这个功能却没有了,现在你只要对V9进行一个小小的修改即可令V9重新拥有08版的自定义HTML文件名的功能,操作方法如下:

1、修改你需要设置的模型,添加一个字段,配置如下:
解决PHPCMS V9添加{$perfix}自定义html文件名功能

2、打开/phpcms/modules/content/create_html.php,找到代码
    $urls = $this->url->show($r['id'], '', $r['catid'],$r['inputtime']);
共三处 批量替换成
   $urls = $this->url->show($r['id'], '', $r['catid'],$r['inputtime'], $r['prefix']);

3、打开/phpcms/modules/content/classes/url.class.php,找到代码
  $day = date('d',$time);

在其下方插入
  $tmp_id = $content_ishtml && $prefix ? $prefix : $id;   //增加自定义HTML文件名支持

找到
  $urls =   str_replace(array('{$categorydir}','{$catdir}','{$year}','{$month}','{$day}','{$catid}','{$id}','{$page}'),array($categorydir,$catdir,$year,$month,$day,$catid,$id,$page),$urlrule);

  修改为

   $urls =   str_replace(array('{$categorydir}','{$catdir}','{$year}','{$month}','{$day}','{$catid}','{$id}','{$page}'),array($categorydir,$catdir,$year,$month,$day,$catid,$tmp_id,$page),$urlrule);


有的修改方法是这样的,
第一步相同,
第二步:

  在phpcms/modules/content/classes/url.class.php 文件的 public function show函数,即55行的array添加$prefix查询。

  $urls = str_replace(array('{$categorydir}','{$catdir}','{$year}','{$month}','{$day}','{$catid}','{$id}','{$page}'),array($categorydir,$catdir,$year,$month,$day,$catid,$id,$page),$urlrule);

  修改成以下代码注意有两个,一个是{$prefix},一个是$prefix。

  $urls = str_replace(array('{$categorydir}','{$catdir}','{$year}','{$month}','{$day}','{$catid}','{$id}','{$prefix}'

  ,'{$page}'),array($categorydir,$catdir,$year,$month,$day,$catid,$id,$prefix,$page),$urlrule);

  第三步:

  在url规则中使用,扩展 > URL规则管理 > 添加或修改URL规则时候添加{$prefix},例如我就添加了一个用于伪静态的url规则:

  {$catdir}-{$catid}/{$prefix}-{$id}.html|{$catdir}-{$catid}/{$prefix}-{$id}-{$page}.html

  因为新版的phpcms V9的show页面有catid参数,如果像我习惯使用rewrite伪静态的朋友要考虑添加

  {$catid},而生成html的话无需考虑这个参数。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表