设为首页收藏本站

豆壳DouPHP开发者社区

 找回密码
 立即注册

[已解决] SEO神器之TAG功能

[复制链接]
cuihaifeng1234 发表于 2018-8-4 09:36:38 | 显示全部楼层 |阅读模式
关于TAG标签的作用请移步https://blog.csdn.net/jarvan_/article/details/80948542

具体实现细节,未单独整理,请有技术能力的东西自行实现。

1、复制一份文章模块,命名为tag【主要是为了能更好的使用伪静态】
2、在需要标签的模块表中增加一个tag_id字段,并在页面中把所有的标签读取出来
3、处理下前端代码,在这里我是使用jquery.multi-select 这个插件,选择标签部分的前端代码如下:
  1.       <tr>
  2.        <td align="right">选择标签</td>
  3.        <td>
  4.         <select id='tag_options' multiple='multiple' name="tag_id[]">
  5.          {foreach from=$tag_list item=tag}
  6.          <option value='{$tag.cat_id}' {if $article}{if $tag.cat_id|in_array:$article.tag_array}selected{/if}{/if}>{$tag.cat_name}</option>
  7.          {/foreach}
  8.         </select>
  9.         <script type="text/javascript">
  10.             {literal}
  11.             $('#tag_options').multiSelect();
  12.             {/literal}
  13.         </script>
  14.        </td>
  15.       </tr>
复制代码
在编辑文章的时候,article.php?rec=edit中的处理逻辑,增加下面的代码

  1. $article['tag_array'] = explode(',',$article['tag_id']);
复制代码
插入以及更新数据库的处理,将$_POST[tag_id]入库就好:

  1.     if (is_array($_POST['tag_id'])) {
  2.         $_POST['tag_id'] = implode(',', $_POST['tag_id']);
  3.     }else{
  4.         $_POST['tag_id']="";
  5.     }
复制代码


4、前端页面处理,重点是SQL,示例如下:
  1. $sql = "SELECT * FROM ".tablename('需要查询的模块')." WHERE FIND_IN_SET('{标签ID}',tag_id) ORDER BY sort ASC,id DESC";
复制代码
5.完成图




回复

使用道具 举报

 楼主| cuihaifeng1234 发表于 2018-8-4 09:37:16 | 显示全部楼层
生成的URL
http://localhost/theme/demo/tag/test
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|DouCo.Com ( 闽ICP备07031922号  

GMT+8, 2018-12-13 04:09 , Processed in 0.496679 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.|Style by Coxxs

快速回复 返回顶部 返回列表