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

下面是详细讲解。

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 2023年5月30日
    00
  • php对关联数组循环遍历的实现方法

    PHP 中的关联数组是一种键值对的数据结构,键和值之间使用 => 符号定义。PHP 提供了多种方法来遍历关联数组,常用的方式包括 foreach 循环和 array_* 函数。 方法一:使用 foreach 循环PHP 中的 foreach 循环是最常用的遍历数组的方式,可以遍历索引数组、关联数组、以及混合数组。对于关联数组,foreach 循环的格式…

    PHP 2023年5月26日
    00
  • PHP使用流包装器实现WebShell的方法

    使用流包装器可以将任意的输入/输出以流的形式统一处理,包括文件、网络等。利用这种特性,可以使用PHP实现WebShell的功能,也就是通过Web界面控制目标服务器的命令执行。 准备工作 在使用流包装器实现WebShell功能之前,需要了解以下知识点。 流包装器 命令执行 shell命令的输出和错误信息 实现流程 设置表单,获取用户输入的命令 利用stream…

    PHP 2023年5月26日
    00
  • php+mysql写的简单留言本实例代码

    下面将为大家介绍“php+mysql写的简单留言本实例代码”的完整攻略。 简介 留言本是一个常见的交互功能,用户可以通过留言板给站点提出问题、反馈意见、留言等等。此次我们将使用php和mysql实现一个简单的留言本功能。 准备工作 搭建环境 首先,我们需要安装apache、mysql和php的开发环境,以及一个支持php的网站服务器,如Apache、Ngin…

    PHP 2023年5月23日
    00
  • thinkPHP中多维数组的遍历方法

    对于thinkPHP中的多维数组,我们可以使用递归方法来进行遍历,以便逐层查找和处理数组数据。下面是使用递归方法遍历thinkPHP多维数组的示例代码: function recursive($array){ foreach($array as $key => $value){ if(is_array($value)){ recursive($valu…

    PHP 2023年5月26日
    00
  • PHP获取php,mysql,apche的版本信息示例代码

    获取PHP、MySQL、Apache等软件的版本信息,可以使用相应的PHP函数实现。 获取PHP版本信息 通过PHP函数phpversion()可以获取当前所使用的PHP版本信息。 示例代码如下: <?php echo "当前PHP版本为:" . phpversion(); ?> 该示例代码将输出类似以下内容的信息: 当前PH…

    PHP 2023年5月23日
    00
  • php二维数组排序方法(array_multisort usort)

    PHP中的二维数组通常在数据处理中使用。在有些情况下,我们需要对二维数组进行排序以满足需求。PHP提供的二维数组排序方法有array_multisort和usort两种。 array_multisort函数 array_multisort() 函数可以同时对多个数组进行排序,还可以按照不同的方式排序。下面是一个对二维数组按照某个键值进行排序的例子: $dat…

    PHP 2023年5月26日
    00
  • 如何写php守护进程(Daemon)

    下面是完整攻略: 准备工作 在开始写PHP守护进程之前,你需要先了解一些必要的基础知识: 守护进程是什么:一个在系统后台运行并保持持续活动状态的程序,常用于服务器或应用的自动化运维,能够长时间运行并响应外部事件。 Linux进程基础知识:了解如何查看进程、启动进程、停止进程、监控进程等基础知识。 PHP基础知识:熟悉PHP的基本语法和函数库。 守护进程原理 …

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