微信分享

页面标题、SEO 与微信分享操作说明

适用:系统管理员、前端/WAP 维护人员
相关更新方案页面标题、SEO 与微信分享统一方案(2026-07-10)
旧版分享分析微信分享功能使用说明

一、核心原则(必记)

  1. 页面 <title> = 微信分享标题(WAP 端统一,不允许两套规则)。
  2. 列表页:标题格式为 网站名 + 版块名(如「合肥市法律服务网资讯」)。
  3. 详情页:标题为 内容本身标题(文章标题、招标标题、活动标题等)。
  4. 商家主页:标题为 商家名称
  5. 商家子版块:标题为 商家名称(版块名)(如「XX律所(地址)」)。
  6. 无分享图时:按 微信分享功能使用说明 — 页面首图 → 裁剪 API → /attachs/wx.jpg

二、总站后台操作

2.1 SEO 模板管理

路径:系统后台 → 设置 → SEO模板/backstage/seo/index

项目说明
标签 seo_key格式:模块小写_方法小写,如 news_indexshop_indexlife_index
SEO标题支持变量 {sitename}{city_name}{title}{cate_name} 等(与页面 seodatas 对应)
作用范围主要用于 固定列表页;商家详情、文章详情等 动态页由程序自动生成,不必在 SEO 表重复配置
搜索顶部可按标签搜索,如 shop_detail
分页列表按 seo_key 字母序排列,便于查找

优先级(程序自动)

  1. Action 显式设置的页面标题(商家名、文章标题等)— 最高
  2. SEO 模板(by_seo 表,键 module_action
  3. 站点默认名称(site.sitename

2.2 清理无效 SEO 模板

路径:SEO模板列表页左上角 → 清理无效模板

点击后系统自动删除:

  • 空的 seo_key 或空的 seo_title
  • 重复的 seo_key(保留 ID 最小的一条)

等价 SQL 迁移:docs/sql/migrations/V20260710_002_seo_prune_invalid.sql(法律站 myfalvfuwuw、保安站 mybaoanfuwuw 各库执行一次)。

建议:清理后刷新列表,删除仍指向已下线栏目的无效模板(手动勾选 → 批量删除)。

2.3 微信分享默认设置

路径:系统后台 → 设置 → 微信相关(或站点配置中的微信项)

配置项说明
启用微信分享默认设置开启后,未单独配置的页面会使用后台默认标题/描述/图片
默认分享标题/描述/图片全站兜底;商家页、详情页已在代码中强制使用页面标题forcePageShare),不受此项覆盖
JS-SDK需正确配置 appidappsecret,否则微信内分享无效

三、各版块标题与分享规则

3.1 商家版块(WAP /wap/shop//wap/company/

页面URL 示例页面标题 / 分享标题
商家主页shop/detail/shop_id/810.html商家名称
地址shop/gps/shop_id/810.html商家名称(地址)
资讯列表shop/news/shop_id/810.html商家名称(资讯页)
资讯详情shop/news_detail/article_id/1938.html文章标题
活动列表shop/activity/shop_id/810.html商家名称(活动)
预约shop/book/shop_id/810.html商家名称(预约)
评价 / 相册 / 介绍 / 商城等各子路径商家名称(对应版块名)

员工详情员工名 - 商家名称

AI 助手(带 shop_id)商家名称(AI助手)

3.2 全站版块(WAP)

版块列表页标题详情页标题
资讯网站名+资讯文章标题
招标采购网站名+招标采购招标标题
招聘求职网站名+招聘求职(或 Hub 自定义名)分类信息/职位标题
活动网站名+活动活动标题
分类信息网站名+频道名信息标题
职业人才网站名+职业人才职业名 - 昵称
附近招聘网站名+附近招聘职位标题
首页网站名称

四、微信分享无图 / 多图规则(前端)

详细说明微信分享逻辑与流程详细说明(含无图、多图、sharethumb 全流程)。

脚本static/default/wap/js/wechat-share.js

  1. 服务端传入 imgUrl优先使用(PHP 已指定则不再扫页面其他图)。
  2. 未传图 → 取 DOM 顺序第一张 有效 <img>(跳过 data: / blob:)。
  3. /wap/api/sharethumb?size=300&src=... 居中裁成 300×300 JPEG。
  4. 仍无图 → /attachs/wx.jpg

多图:不会自动选最大/最合适的一张;详情页请在 PHP 显式传配图。

标题回退:服务端 wechatShare.title → 否则 document.title(因此页面 <title> 必须正确)。


五、开发与维护逻辑(技术人员)

5.1 数据流

Action 设置 mobile_title + setWechatShare
        ↓
CommonAction::display() → seo() 强制分享标题 = mobile_title
        ↓
WAP header:<title><{$mobile_title}></title>
        ↓
footer_share → wechat-share.js

5.2 常用方法(Wap CommonAction / ShopAction)

方法用途
applySiteSectionShare($版块名, $链接参数)全站列表页
applyContentDetailShare($标题, $链接, $描述, $图片)全站详情页
applyShopSectionShare($shop_id, $版块名)商家子版块
initShopWechatShare($shop_id, $覆盖项)商家主页或自定义分享
wap_shop_section_title($商家名, $版块名)生成「商家名(版块名)」
wap_site_section_title($版块名, $网站名)生成「网站名+版块名」

5.3 新增 WAP 页面检查清单

  • [ ] Action 中设置 $this->mobile_title 或调用上述方法
  • [ ] 详情页使用 forcePageShare => true
  • [ ] 模板使用 public:header(已统一读 $mobile_title
  • [ ] 列表页标题符合「网站名+版块名」
  • [ ] 商家页符合「商家名(版块名)」
  • [ ] 无图分享走 wx.jpg 规则
  • [ ] 改动同步保安站 ba(见 Cursor 规则 sync-to-ba-security-site

5.4 关键文件

文件作用
themes/default/Wap/public/header.htmlWAP 页面 <title>
Banyan/Lib/Action/Wap/CommonAction.class.phpseo()、分享辅助方法
Banyan/Lib/Action/Wap/ShopAction.class.php商家版块分享
static/default/wap/js/wechat-share.js微信 JS-SDK 分享
Banyan/Lib/Service/WechatShareService.class.php分享配置构建
Banyan/Backstage/seo/index.htmlSEO 模板后台

六、生成 / 更新本帮助页

Markdown 源文件位于 docs/,注册于 Banyan/Lib/Service/Help/help_ops_manifest.php

更新帮助 HTML 后请执行(项目根目录):

php tools/build_help_pages.php

成功输出 built=N;若报错 file not found,检查 manifest 中 file 路径是否与 docs/ 下文件名一致。

访问:/home/help/article/slug/page-title-seo-wechat-share-ops.html


七、验证清单(上线前)

URL期望 <title>
/wap/shop/detail/shop_id/8.html商家名称
/wap/shop/gps/shop_id/8.html商家名(地址)
/wap/shop/news/shop_id/810.html商家名(资讯页)
/wap/news/index.html网站名+资讯
/wap/tender/index.html网站名+招标采购
/wap/recruit/index.html网站名+招聘求职

微信内打开上述页面 → 分享给朋友 → 卡片标题应与 <title> 一致。


八、保安站(ba)说明

逻辑与法律站相同;SEO 清理、迁移在 mybaoanfuwuw 库单独执行。帮助文档中「律师/律所」示例在保安站对应为「保安员/安保公司」,代码路径一致。

copyright 2013-2113 www.banyanfw.com All Rights Reserved 7766智慧生活版权所有
皖ICP备2021016109号-1