【WordPress】发布文章时自动通过机器人推送到钉钉

news/2025/2/26 5:38:22

在您的主题下functions.php中添加如下代码:

function wpso_dingding_publish_notify($post_ID) {
    // 获取文章对象
    $post = get_post($post_ID);
    
    // 检查是否是文章首次发布(即不是修订版)
    if (get_post_status($post_ID) == 'publish' && !get_post_meta($post_ID, '_wpso_dingding_sent', true)) {
        // 文章的标题、人工摘要和链接
        $title = get_the_title($post_ID);
        $excerpt = $post->post_excerpt;  // 获取文章的人工设置摘要
        if (empty($excerpt)) {
            // 如果没有设置摘要,使用文章内容的前20个字作为摘要
            $excerpt = wp_trim_words(get_post_field('post_content', $post_ID), 20);
        }
        $url = get_permalink($post_ID);
        
        // 发送的消息内容
        $text = get_bloginfo('name') . ' 上有新的文章发布啦!!';
        $desp = '文章标题:' . $title . "\n" . '文章摘要:' . $excerpt . "\n" . '文章链接:' . $url;

        // 钉钉机器人的 Access Token
        $access_token = '你的Token';
        
        // 构造发送数据
        $data = array(
            'msgtype' => 'text',
            'text' => array(
                'content' => $text . "\n" . $desp
            )
        );
        
        // 将数据编码为JSON格式
        $json_data = json_encode($data, JSON_UNESCAPED_UNICODE);
        
        // 配置HTTP请求
        $opts = array('http' => array(
            'method'  => 'POST',
            'header'  => 'Content-type: application/json',
            'content' => $json_data
        ));
        
        // 创建HTTP上下文
        $context = stream_context_create($opts);
        
        // 发送钉钉推送
        $result = file_get_contents('https://oapi.dingtalk.com/robot/send?access_token=' . $access_token, false, $context);
        
        // 标记文章已发送,避免重复发送
        update_post_meta($post_ID, '_wpso_dingding_sent', true);
    }
}
add_action('publish_post', 'wpso_dingding_publish_notify');

即可实现自动推送,推送内容包括文章标题、文章设置的人工摘要(若无则提取文章内容前20个字)、文章链接。测试效果如下:
测试案例


http://www.niftyadmin.cn/n/5868069.html

相关文章

Jupyter Notebook中使用GPU进行计算

要在Jupyter Notebook中使用GPU进行计算,请按照以下步骤操作: 检查GPU可用性 在终端/Anaconda Prompt中运行以下命令以确认是否有可用的GPU: nvidia-smi安装所需的库 首先,在终端/Anaconda Prompt中,依次安装PyTorch及…

Windows前端开发IDE选型全攻略

Windows前端开发IDE选型全攻略 一、核心IDE对比矩阵 工具名称最新版本核心优势适用场景推荐指数引用来源VS Code2.3.5轻量级/海量插件/跨平台/Git深度集成全栈开发/中小型项目⭐⭐⭐⭐⭐14WebStorm2025.1智能提示/框架深度支持/企业级调试工具大型项目/专业前端团队⭐⭐⭐⭐47…

Deepseek 实战全攻略,领航科技应用的深度探索之旅

想玩转 Deepseek?这攻略别错过!先带你了解它的基本原理,教你搭建运行环境。接着给出自然语言处理、智能客服等应用场景的实操方法与代码。还分享模型微调、优化技巧,结合案例加深理解,让你全面掌握,探索科技…

树莓派4基于Debian GNU/Linux 12 (Bookworm)系统安装

1. 安装驱动程序和系统烧录软件 有两个软件,一个负责驱动安装,一个负责系统烧录。 1. 点击rpiboot_setup.exe进行驱动程序的安装 安装成功后: 2. 点击imager_1.8.5.exe进行系统烧录软件的安装 安装成功后: 2. 将电脑和树莓派连…

Apache IoTDB: 物联网时序数据库的分布式核心技术与实际应用

随着物联网(IoT)的快速发展,时序数据管理成为了一个重要的技术挑战。Apache IoTDB,作为Apache基金会的顶级项目,提供了一种高效、可扩展的解决方案来应对这一挑战。本文将深入探讨Apache IoTDB的分布式核心技术和其在实…

Java 设计模式 面试题及答案整理,最新面试题

Java中单例设计模式有哪些实现方式? Java中单例设计模式主要有以下几种实现方式: 1、懒汉式(线程不安全): 这种实现方式支持延迟加载,但是在多线程环境下不能保证单例的唯一性。 2、懒汉式(线…

论文阅读笔记:Deep Face Recognition: A Survey

论文阅读笔记:Deep Face Recognition: A Survey 1 介绍2 总览2.1 人脸识别组件2.1.1 人脸处理2.1.2 深度特征提取2.1.3 基于深度特征的人脸对比 3 网络结构和损失函数3.1 判别损失函数的演化3.1.1 基于欧式距离的损失3.1.2 基于角度/余弦边距的损失3.1.3 Softmax损失…

理解 AI IDE 中的代码库索引:深入探讨 Cursor 的实现

人工智能(AI)正在改变众多行业,软件开发也不例外。像 Cursor 这样的 AI 驱动的集成开发环境(IDE)正在改变开发者编写、理解和维护代码的方式。这些工具超越了传统 IDE 的功能,通过利用机器学习技术提供智能…