php代码:
通过这个接口,微信小程序就能直接访问调用网站的所有栏目信息,也可以指定调用某个栏目或者子栏目的信息,小程序代码:
- /**
- ** 栏目调用接口,栏目相关信息
- ** catid 栏目id ,catid为空调用全部栏目
- ** parentid 父栏目id 为0是调用一级栏目 为-1时调用全部栏目
- ** catid和parentid 不能同时存在
- ** 如果存在catid则调用当前栏目信息,否则调用全部栏目信息
- ** 版权:石头建站 http://www.sootou.com
- ** 时间:2017-12-18
- */
- defined('IN_PHPCMS') or exit('No permission resources.');
- pc_base::load_app_func('util','content');
- $siteid = 1;
- $r = array();
- $wxid = trim($_GET['wxid']) ? trim($_GET['wxid']) : '';
- $catid = intval($_GET['catid']); //用来接收请求的栏目id
- $parentid = trim($_GET['parentid']) ? intval($_GET['parentid']) : -1; //父栏目
- $CATEGORYS = getcache('category_content_'.$siteid,'commons');
- $category_db = pc_base::load_model('category_model');
- /*正式逻辑*/
- if($wxid == "" || empty($wxid)){
- echo "微信id填写错误,请修改app.json配置";
- }else{
- $xiao_db = pc_base::load_model('xiaochengxu_model');
- $xiao = $xiao_db->get_one(array('wxid'=>$wxid, 'status'=>"1"));
- if($xiao){
- /*-----------读取开始------------------*/
- if(isset($catid) && $catid !=''){
- $r = $category_db->get_one(array('catid' => $catid));
- $childid = $r['arrchildid'];
- $arrchildid = explode(',',$childid);
- $childs = array();
- foreach($arrchildid as $arr){
- if($arr != $catid){
- $childs[] = $arr;
- }
- }
- //$r['arrchildid'] = implode(',',$childs);
- $r['arrchildid'] = $childs;
- }else{
- if($parentid == '-1' ){
- $r = $CATEGORYS;
- }else{
- $r = $category_db->select(array('parentid' => $parentid),'*','','lisrotder desc');
- }
- }
- //转换为json类型 $r = json_encode($r); //格式:{{..},{..},{..}}
- $r = json_encode(array_reverse(array_reverse($r))); //两次倒置数组,转成json数组,否则会出现无法排序的情况,格式[{..},{..},{..}]
- //jsonp请求的固定写法,可以解决跨域问题,引入callback回调函数
- echo $_GET['jsoncallback'] .$r;
- /*-------------读取结束-----------------------*/
- }else{
- echo "您的小程序不存在或者已关闭" ;
- }
- }
获取到栏目信息,最好是存储到缓存,这样可以方便以后随时调用!
- wx.request({
- url: 'https://www.cnzhixiao.wang/api.php?op=get_category',
- data: {
- wxid:wxid//必填,用于验证小程序合法性
- },
- method: 'GET',
- header: {
- 'content-type': 'application/json' // 默认值
- },
- success: function (res) {
- const categorys = res.data;
- try {
- categorys.unshift(Date.now());//为了后期方便调用
- wx.setStorageSync('categorys', categorys)
- } catch (e) {
- }

文章点评