博客 / WordPress/ WordPress截取文章内容字数和文章标题字数

WordPress截取文章内容字数和文章标题字数

WordPress截取文章内容字数和文章标题字数

这篇文章主要讲述截取文章标题字数和文章内容字数的WordPress代码标签。该标签主要用于首页和分类目录页,通过控制文章摘要字数和标题的字数来让整体布局更加合理和美观。

下面分享几种方法,用于完美截取WordPress文章摘要内容和标题字数。

方法一:使用WP内置函数wp_trim_words()

使用WordPress内置函数wp_trim_words()截取字数:

<?php
// 截取文章内容,限制为80个单词
echo wp_trim_words( get_the_content(), 80 );
// 截取文章摘要,限制为80个单词
echo wp_trim_words( get_the_excerpt(), 80 );
// 截取文章标题,限制为30个单词
echo wp_trim_words( get_the_title(), 30 );
?>

说明:wp_trim_words()函数按单词数截取,并自动处理HTML标签,避免截断标签导致布局错乱。第三个参数可自定义省略号,默认为

方法二:使用PHP函数mb_strimwidth()

使用PHP函数mb_strimwidth()按字符宽度截取字数:

<?php
// 截取文章标题,限制为30个字符(一个汉字通常算2个字符宽度)
echo mb_strimwidth(get_the_title(), 0, 30, "...");
?>

说明:此函数按字符宽度截取,对中英文混合内容更友好。但需确保服务器已启用mbstring扩展。它不会处理HTML标签,可能截断标签。

方法三:使用自定义函数customTitle()

使用自定义函数customTitle()截取字数:

1. 首先将下面的代码添加到主题的functions.php文件中:

// 截取文章标题字数
function customTitle($limit) {
    // 修正:直接使用全局变量 $post 可能不可靠,应使用 get_the_title() 无参数调用
    $title = get_the_title();
    // 使用 mb_strlen 支持多字节字符(如中文)
    if (mb_strlen($title, 'UTF-8') > $limit) {
        $title = mb_substr($title, 0, $limit, 'UTF-8') . '...';
    }
    echo $title;
}

2. 然后在需要调用的模板文件(如index.phparchive.php)中添加下面的代码:

<?php customTitle(30); ?> // 30为字符数

说明:此方法为自定义方案,修正了原文中可能存在的全局变量$post未定义问题,并改用多字节字符串函数mb_strlenmb_substr以正确计算中文字符。

以上三种方法都可以实现截取文章摘要和文章标题字数,具体使用哪种方法可根据习惯和需求选择:

  • 推荐方法一:使用wp_trim_words(),最安全,与WordPress集成度最高,自动处理HTML。
  • 需要精确字符控制时:可考虑方法二或修正后的方法三,但需注意HTML标签问题。

发表评论

您的邮箱不会公开。必填项已用 * 标注。