thinkphp项目如何自定义微信分享描述内容

yizhihongxing

下面是详细讲解。

1. 准备工作

首先,你需要准备好以下的工具:

  • 微信公众平台账号
  • ThinkPHP项目
  • jssdk扩展包(可使用官方提供的扩展包)

2. 创建自定义分享函数

在项目中创建一个自定义的分享函数,用来设置微信分享的标题、描述和链接等信息。可以创建一个公共控制器 BaseController,例如:

namespace app\common\controller;
use think\Controller;

class BaseController extends Controller
{
    /**
     * 自定义设置微信分享的标题和描述
     * @param string $title 分享标题
     * @param string $desc 分享描述
     * @param string $link 分享链接
     * @param string $imgUrl 分享图片链接
     */
    protected function setShare($title, $desc, $link, $imgUrl)
    {
        $this->assign('wxTitle', $title);
        $this->assign('wxDesc', $desc);
        $this->assign('wxLink', $link);
        $this->assign('wxImgUrl', $imgUrl);
    }
}

上述示例中,我们通过 setShare 函数,将分享的四个参数(标题、描述、链接和图片链接)设置到了基类控制器中。

3. 在视图文件中使用

在需要分享的视图文件中,调用 BaseController 中的 setShare 函数来设置分享属性。在视图文件尾部添加如下代码:

<script>
wx.ready(function () {
    wx.onMenuShareAppMessage({
        title: '{:$wxTitle|default=$site_title}',
        desc: '{:$wxDesc}',
        link: '{:$wxLink}',
        imgUrl: '{:$wxImgUrl}'
    });
});
</script>

其中,{$wxTitle}、{$wxDesc}、{$wxLink} 和 {$wxImgUrl} 均为在 BaseController 中设置过的分享属性,也可自己定义。

4. 示例

以下举两个示例。

示例 1

假设要在文章内容页中设置微信分享属性。在 Article 控制器的 detail 操作中,通过获取文章信息,调用 setShare 函数设置分享属性。示例代码如下:

namespace app\index\controller;

use app\common\controller\BaseController;
use app\common\model\Article as ArticleModel;

class Article extends BaseController
{
    /**
     * 文章内容页
     */
    public function detail($id)
    {
        // 获取文章信息
        $article = ArticleModel::get($id);
        if(!$article) {
            abort(404, '文章不存在');
        }

        // 设置微信分享属性
        $wxTitle = $article->title;
        $wxDesc = $article->summary;
        $wxLink = url('index/article/detail', array('id' => $id), true, config('is_https'));
        $wxImgUrl = $article->cover_image;
        $this->setShare($wxTitle, $wxDesc, $wxLink, $wxImgUrl);

        $this->assign('article', $article);
        return $this->fetch();
    }
}

在对应的 detail.html 视图页面中,引入 jssdk 扩展包并设置分享属性。示例代码如下:

{include file="public/jssdk" /}

{extend name="public/base" /}
{block name="title"}{$article.title}{/block}
{block name="content"}
    <div class="article-content">
        <h1>{$article.title}</h1>
        <div class="article-body">
            {$article.content}
        </div>
    </div>

    <script>
    wx.ready(function () {
        wx.onMenuShareAppMessage({
            title: '{:$wxTitle|default=$site_title}',
            desc: '{:$wxDesc}',
            link: '{:$wxLink}',
            imgUrl: '{:$wxImgUrl}'
        });
    });
    </script>
{/block}

示例 2

假设要在首页中设置微信分享属性。在 Index 控制器的 index 操作中,直接调用 setShare 函数设置分享属性。示例代码如下:

namespace app\index\controller;

use app\common\controller\BaseController;

class Index extends BaseController
{
    /**
     * 首页
     */
    public function index()
    {
        // 设置微信分享属性
        $wxTitle = '网站首页';
        $wxDesc = '欢迎访问我的网站';
        $wxLink = url('index', '', true, config('is_https'));
        $wxImgUrl = config('site_url') . 'static/images/logo.png';
        $this->setShare($wxTitle, $wxDesc, $wxLink, $wxImgUrl);

        return $this->fetch();
    }
}

在对应的 index.html 视图页面中,引入 jssdk 扩展包并设置分享属性。示例代码如下:

{include file="public/jssdk" /}

{extend name="public/base" /}
{block name="title"}网站首页{/block}
{block name="content"}
    <h1>欢迎访问我的网站</h1>

    <script>
    wx.ready(function () {
        wx.onMenuShareAppMessage({
            title: '{:$wxTitle|default=$site_title}',
            desc: '{:$wxDesc}',
            link: '{:$wxLink}',
            imgUrl: '{:$wxImgUrl}'
        });
    });
    </script>
{/block}

总结

通过以上的示例,你可以自定义设置微信分享的标题、描述、链接和图片链接。在需要分享的页面中,调用 setShare 函数设置分享属性,将分享属性绑定到对应的视图文件中,即可实现微信分享功能。

祝你好运!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:thinkphp项目如何自定义微信分享描述内容 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • 在PHP世界中选择最合适的模板与使用方法

    在PHP开发中,模板引擎扮演着非常重要的角色,其决定了应用程序的整体性能和用户体验。因此,在选择最合适的模板引擎时,需要权衡各种因素,包括性能、易用性、可定制性等等。 以下是一些可以帮助你在PHP世界中选择最合适的模板引擎的攻略: 1. 明确需求 在选择一个适合自己的模板引擎之前,必须明确自己的需求。需要考虑的问题包括:使用场景、应用程序的规模、访问量、对模…

    PHP 2023年5月23日
    00
  • 基于php-fpm的配置详解

    基于 php-fpm 的配置详解 什么是 php-fpm PHP-FPM(FastCGI Process Manager),是 PHP 官方提供的一个 FastCGI 进程管理器。它可以管理运行 PHP 的 FastCGI 进程,以便更好地使用服务器的资源并提高 PHP 应用程序的响应速度。 安装和启动 php-fpm 安装 php-fpm 可以通过包管理器…

    PHP 2023年5月27日
    00
  • 微信小程序 WebSocket详解及应用

    微信小程序 WebSocket详解及应用 WebSocket是一种在Web应用程序中提供双向通信的协议,它是一种客户端/服务器协议,可以在单个TCP连接上进行全双工通信。在微信小程序中,我们可以使用WebSocket来实现小程序和服务器之间的实时双向通信。 WebSocket基本用法 在小程序中使用WebSocket需要注意以下几点: 前提条件:需要后端提供…

    PHP 2023年5月23日
    00
  • php实现rc4加密算法代码

    下面我就给你详细讲解一下“php实现rc4加密算法代码”的完整攻略。 什么是RC4算法 RC4加密算法是一种对称密钥加密算法,由美国工程师罗恩·里夫斯(Ron Rivest)于1987年创建,最早应用于RSA安全公司的密钥加密系统中。RC4算法采用了变换密钥流的技术,是一种流加密算法,并被广泛应用于SSL、WEP以及WPA等网络安全协议中。 RC4算法的实现…

    PHP 2023年5月23日
    00
  • PHP定时执行计划任务的多种方法小结

    PHP 定时执行计划任务的多种方法小结 在 web 开发过程中,有些程序需要在特定的时间执行一些任务,比如在每天凌晨重新生成缓存、导出数据、删除过期数据等。这个时候就需要使用定时执行计划任务的方法来实现。 本文将介绍 PHP 定时执行计划任务的几种方法,并提供示例说明。 1. 使用 Cron Job Cron Job 是一种常用的自动任务管理工具,它可以在指…

    PHP 2023年5月27日
    00
  • PHP读取配置文件类实例(可读取ini,yaml,xml等)

    首先我们需要了解一下这个问题涉及到的一些概念。 概念介绍 PHP读取配置文件类 在 PHP 中,我们可以通过自定义一个 PHP 读取配置文件类来方便地读取配置文件中的配置信息。这些类通常会支持读取格式丰富多样的配置文件,如 ini、yaml、xml 等。 INI 文件格式 INI 是一种简单的配置文件格式,其基本格式如下: ; 注释 key1=value1 …

    PHP 2023年5月26日
    00
  • php简单检测404页面的方法示例

    下面是关于“php简单检测404页面的方法示例”的完整攻略。 1. 什么是404页面? 在Web开发中,当用户请求不存在的页面或资源时,服务器会返回HTTP状态码为404的页面,这就是404页面。通俗点说,404页面告诉了用户请求的页面不存在。 2. 检测404页面的必要性 在Web开发中,404页面是常见且不可避免的。但是,当用户访问不存在的页面时,服务器…

    PHP 2023年5月26日
    00
  • PHP遍历文件夹与文件类及处理类用法实例

    作为网站作者,我很高兴为您介绍“PHP遍历文件夹与文件类及处理类用法实例”的完整攻略。 概述 在 PHP 中,我们常常需要对文件夹及其文件进行操作。为了方便实现这种操作,我们可以使用 PHP 自带的遍历文件夹及文件类实现相关功能。PHP 中提供了 DirectoryIterator、RecursiveDirectoryIterator、SplFileInfo…

    PHP 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部