如何修改phpcms v9的文章和栏目标题seo

如何修改phpcms v9的文章和栏目标题seo,第1张

以下举一个简单例子:

在v9安装下v9\phpcms\libs\functions\global.func.php 修改函数:

/**

* 生成SEO

* @param $siteid 站点ID

* @param $catid栏目ID

* @param $title标题

* @param $description 描述

* @param $keyword 关键词 */ function seo($siteid, $catid = '', $title = '', $description = '', $keyword = '') { if (!emptyempty($title))$title = strip_tags($title) if (!emptyempty($description)) $description = strip_tags($description) if (!emptyempty($keyword)) $keyword = str_replace(' ', ',', strip_tags($keyword)) $sites = getcache('sitelist', 'commons') $site = $sites[$siteid] $cat = array() if (!emptyempty($catid)) { $siteids = getcache('category_content','commons') $siteid = $siteids[$catid] $categorys = getcache('category_content_'.$siteid,'commons') $cat = $categorys[$catid] $cat['setting'] = string2array($cat['setting']) } //$seo['site_title'] =isset($site['site_title']) &&!empty($site['site_title']) ? $site['site_title'] : $site['name'] $seo['site_title'] = $site['name'] //区分首页和站点的标题$seo['keyword'] = !emptyempty($keyword) ? $keyword : $site['keywords'] $seo['description'] = isset($description) &&!emptyempty($description) ? $description : (isset($cat['setting']['meta_description']) &&!emptyempty($cat['setting']['meta_description']) ? $cat['setting']['meta_description'] : (isset($site['description']) &&!emptyempty($site['description']) ? $site['description'] : '')) //$seo['title'] = (isset($title) &&!empty($title) ? $title.' - ' : '').(isset($cat['setting']['meta_title']) &&!empty($cat['setting']['meta_title']) ? $cat['setting']['meta_title'].' - ' : (isset($cat['catname']) &&!empty($cat['catname']) ? $cat['catname'].' - ' : '')) ////这里只是使用网站做标题,而去掉栏目名称。$seo['title'] = (isset($title) &&!emptyempty($title) ? $title.' - ' : '').(isset($cat['setting']['meta_title']) &&!emptyempty($cat['setting']['meta_title']) ? $cat['setting']['meta_title'].' - ' : '') foreach ($seo as $k=>$v) { $seo[$k] = str_replace(array("\n","\r"),'', $v) } return $seo }

针对一个网站的页面,我们一般分为 首页、栏目列表页、(文章)内容页,那么,我们就从这三个方面分别看下在phpcms v9里怎样设置title标题使其更加符合SEO规则。

首先,网站首页:

因为首页是网站中独立唯一的,那么它的title在后台有针对性的单独设置。后台设置位置:后台 - 设置 - 站点管理 -(对应站点)修改 - SEO设置 - 站点标题。

另外,如果没有设置seo的站点标题,那么上侧的“站点名”会作为首页title来显示。

当然,以上是表面上系统使用起来后台设置首页title的操作方法,从程序的角度,首页title的调用是通过首页的“标签”来调用的,默认模板的调用如下:

{if isset($SEO['title']) && !empty($SEO['title'])}{$SEO['title']}{/if}{$SEO['site_title']}

那么,你可以更改此处的代码来自由调用你想放入的内容,并结合if判断灵活显示。另外,其中的$SEO数组由phpcms全局函数库中的seo()方法生成,可对此方法进行二次开发来定制你自己的生成机制。

栏目列表页:

同样,先来看下栏目列表页的title内容在后台的操作位置:

后台 - 内容 - 管理栏目 -(栏目列表选择对应的栏目右侧)修改 - SEO设置选项卡 - 栏目标题。

在栏目列表页的title内容优先显示此处的内容,如果此处没有设置,那么显示栏目名称+首页title内容。

在默认模板中栏目列表页的title调用标签同上,只是内容会根据seo()方法传入的$catid参数不同而自动变化。

当然,你也可以使用其他标签自由调用你想要的内容或修改定制你的调用规则。

内容页:

内容页的title内容即添加文章内容时的“标题”+网站名称。默认模板中的调用标签写法仍然同上,也是由seo()方法自动调用。可自定义修改。

综上所述,除了到后台对应位置设置你的title内容外,在页面模板中主要通过标签调用数组$SEO中的内容,而$SEO中的内容是seo()方法调用后台你填写的对应title内容产生的。可通过修改标签规则或seo方法的php程序来定义你的调用内容。

估计是模板的问题,不应该是字段里数据的问题。

1、你去后台对应栏目里去看一下栏目设置中的SEO设置里的关键词和描述有没有问题,是否有html代码,如果没有就是模板的问题。

2、如果有的话,这个信息存于

你的表前缀_category

表的

setting字段中,批量修改比较麻烦,如果多余的html代码有规律可以尝试修改。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/645530.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-21
下一篇2023-07-21

发表评论

登录后才能评论

评论列表(0条)

    保存