首页 » 开源CMS » Discuz » 正文

Discuz门户文章添加自定义关键词

  Discuz门户发布文章时,没有给文章设置关键词这个功能,默认调用的是文章标题,这样对于Discuz门户seo很不好,保哥今天写了这个教程 告分享给Discuz门户文章添加keywords字段的方法。

  第1步、首先在数据中找到”pre_portal_article_title”表,pre是表的前缀,这个因网站而异,默认安装Discuz的数据表前缀就是pre_。找到”pre_portal_article_title”表后,在结构中添加1个字段”diy_keywords”,类型varchar,长度/值填64,默认为空,排序规则选择gbk_chinese_ci,其它不填。

  第2步 、 在/template/default/portal目录下找到文件portalcp_article.htm,编辑器打开模板后,找到如下代码:

<!--{if $category[$catid][allowcomment]}-->
<dt>{lang article_comment_setup}</dt>
<dd><label for="ck_allowcomment"><input type="checkbox" name="forbidcomment" id="ck_allowcomment" class="pc" value="1"{if isset($article['allowcomment']) && empty($article['allowcomment'])}checked="checked"{/if} />{lang article_forbidcomment_description}</label></dd>
<!--{/if}-->

  在上面代码下方,大约第209行下,添加以下代码:

<dt>关键词</dt>
<dd><input type="text" name="diy_keywords" class="px p_fre" value="$article[diy_keywords]" size="80" /></dd>

  如图所示:

  添加html标签后,在发布文章的页面,我们可以看到如下显示:

  第3步 、 模板中的表单字段添加完毕后,我们需要做入库操作了。在/source/include/portalcp目录下找到文件portalcp_article.php,在文件的中找到$setarr数组,复制下面代码到数组中

'diy_keywords' => $_POST['diy_keywords'],

如下图

增加这个变量后,发文和编辑文章的功能中diy_keywrods都能正常入库

  第4步 、 以上操作完成后,通过测试,diy_keyword可以正常入库

  第5步 、 接下来就是如何让发布后的文章在meta的keywords中如何显示刚才添加的diy_keyword,在/template/default/common目录下找到文件header_common.htm,

  在meta的keyword上进行修改:

<meta name="keywords" content="{if !empty($article[diy_keywords])}{echo dhtmlspecialchars($article[diy_keywords])}{elseif !empty($metakeywords)}{echo dhtmlspecialchars($metakeywords)}{/if}" />

  总结:由于discuz的head是公用的一个模板,所以为了保持频道列表也能正常显示后台设置的keywod,保哥只增加了一个条件判断,不影响频道列表的keyword设置。

   最后附上本教程修改后的演示案例地址:https://www.qizhou.com.cn/article-6344-1.html

发表评论