这篇文章主要讲述截取文章标题字数和文章内容字数的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.php、archive.php)中添加下面的代码:
<?php customTitle(30); ?> // 30为字符数
说明:此方法为自定义方案,修正了原文中可能存在的全局变量$post未定义问题,并改用多字节字符串函数mb_strlen和mb_substr以正确计算中文字符。
以上三种方法都可以实现截取文章摘要和文章标题字数,具体使用哪种方法可根据习惯和需求选择:
- 推荐方法一:使用
wp_trim_words(),最安全,与WordPress集成度最高,自动处理HTML。 - 需要精确字符控制时:可考虑方法二或修正后的方法三,但需注意HTML标签问题。