纯代码实现wordpress文章摘要功能

AI 概述
PHP 代码使用方法方法 1:直接输出摘要方法 2:获取摘要并自定义处理方法 3:自定义参数主要特点 WordPress 本身就提供非常多的功能函数,为二次开发和拓展都提供了良好的接口,但是也有很多的功能属于隐藏性的,如果想要实现某种功能大家不妨先查询 WordPress 自带的函数,比如我最近遇到的,我想要在...
目录
文章目录隐藏
  1. PHP 代码
  2. 使用方法
  3. 主要特点

WordPress 本身就提供非常多的功能函数,为二次开发和拓展都提供了良好的接口,但是也有很多的功能属于隐藏性的,如果想要实现某种功能大家不妨先查询 WordPress 自带的函数,比如我最近遇到的,我想要在页面文章内显示摘要内容,而 WordPress 后台文章编辑是有“摘要”模块的,我想要的是将摘要内容用于做网页中的 description 描述内容,可以帮助访客快速了解文章内容,并吸引他们继续阅读。

我个人不是太喜欢用插件,能自己撸代码就尽量不要使用 wordpress 插件,所以撸起袖子加油干。

再开始实现前,补充一下,如果你的 WordPress 后台编辑文章页面没有看到“摘要”的编辑模块,那么可能是因为你的没有显示摘要模块而已,按照下图码云笔记提供的截图开启即可。

纯代码实现 wordpress 文章摘要功能

我这里将代码封装成一个可以在 functions.php 中使用的公共方法,包含:如果你手动输入了摘要则页面直接显示,如果你没输入则会根据文章内容自动获取摘要并显示到页面。

PHP 代码

你可以将以下代码添加到你的 WordPress 主题的 functions.php 文件中:

/**
 * 获取文章摘要的公共方法
 * 
 * @param int|WP_Post $post 文章 ID 或 WP_Post 对象
 * @param int $length 截取长度(默认 170 字符)
 * @param string $more 截取后的替代文本(默认"……")
 * @return string 处理后的文章摘要
 */
function get_custom_post_excerpt($post = null, $length = 170, $more = "……") {
    // 获取当前文章对象
    $post = get_post($post);
    
    if (!$post) {
        return '';
    }
    
    $description = '';
    
    // 检查是否有自定义摘要
    if (has_excerpt($post->ID)) {
        $description = get_the_excerpt($post->ID);
    } else {
        // 获取文章内容并处理
        $content = apply_filters('the_content', $post->post_content);
        $content = strip_tags($content); // 去除 HTML 标签
        $description = mb_strimwidth($content, 0, $length, $more);
    }
    
    return $description;
}

/**
 * 直接输出文章摘要的模板标签
 * 
 * @param int|WP_Post $post 文章 ID 或 WP_Post 对象
 * @param int $length 截取长度(默认 170 字符)
 * @param string $more 截取后的替代文本(默认"……")
 */
function the_custom_post_excerpt($post = null, $length = 170, $more = "……") {
    echo get_custom_post_excerpt($post, $length, $more);
}

使用方法

在你的显示文章内容的模板文件中,通过以下方式调用。

方法 1:直接输出摘要

<?php the_custom_post_excerpt(); ?>

方法 2:获取摘要并自定义处理

<?php 
$excerpt = get_custom_post_excerpt();
echo '<p class="post-excerpt">' . esc_html($excerpt) . '</p>';
?>

方法 3:自定义参数

<?php 
// 自定义长度和结尾文本
the_custom_post_excerpt(null, 200, '...'); 

// 或者指定特定文章 ID
the_custom_post_excerpt(123); // 显示 ID 为 123 的文章摘要
?>

主要特点

  1. 灵活性:支持自定义截取长度和结尾文本;
  2. 安全性:使用 esc_html () 进行输出过滤;
  3. 兼容性:适用于各种文章类型和模板文件。

以上方法通用,只是样式和结构需要大家根据自己的 wordpress 主题来定制化。

以上关于纯代码实现wordpress文章摘要功能的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。

「点点赞赏,手留余香」

1

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 纯代码实现wordpress文章摘要功能

发表回复