wordpress收费下载资源主题
wordpress付费下载资源插件

wordpress获取文章摘要excerpt时如何过滤掉短代码

在WordPress中,我们在获取文章SEO的description时,如果文章开头有短代码,那么可能会带上短代码的内容,这样很不友好。那么你希望过滤掉短代码,可以使用一些内置函数和自定义代码来实现。以下是一个方法,你可以通过添加自定义函数到你的主题的 functions.php 文件来实现这个功能。

步骤 1: 创建一个自定义函数来移除短代码

首先,创建一个自定义函数来移除短代码。你可以使用 strip_shortcodes 函数,这个函数会移除内容中的短代码,但不会移除短代码生成的HTML(如果有的话)。

function remove_shortcodes_from_content($content) { return strip_shortcodes($content); }

步骤 2: 修改获取摘要的函数

WordPress 有一个内置函数 wp_trim_excerpt,用于生成文章的摘要。为了在使用这个函数时移除短代码,你可以创建一个自定义的摘要函数。

function custom_wp_trim_excerpt($text) {
$raw_excerpt = $text;
if ( '' == $text ) {
$text = get_the_content('');
$text = strip_shortcodes($text); // 移除短代码

$text = apply_filters('wp_trim_excerpt', $text, $raw_excerpt);

$excerpt_more = apply_filters('excerpt_more', ' ' . '[...]');

if (mb_strlen($text) > 55) {
if (false !== strpos($text, '<!--more-->')) {
$text = explode('<!--more-->', $text, 2)[0];
} else {
$text = mb_substr($text, 0, 55) . $excerpt_more;
}
}
}
return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}
remove_filter('wp_trim_excerpt', 'wp_trim_excerpt');
add_filter('wp_trim_excerpt', 'custom_wp_trim_excerpt', 10, 1);

这个函数首先检查是否已经存在内容摘要,如果没有,它会获取文章内容并移除短代码。然后,它使用标准的WordPress摘要逻辑来生成摘要。

步骤 3: 使用自定义摘要函数

现在,每当你在模板文件中调用 the_excerpt() 时,它都会使用你自定义的摘要函数,从而移除短代码。

例如,在你的主题模板文件中,你可以这样调用摘要:the_excerpt();

注意事项

  • 上述方法会全局修改摘要生成逻辑。如果你只想在特定地方移除短代码,你可能需要更精细地控制何时应用这个自定义函数。
  • 如果你使用的是自定义字段或者高级自定义字段(ACF)来存储摘要,你可能需要在获取这些字段内容时也应用 strip_shortcodes 函数。

0 个评论

定制开发
本站承接WordPress等系统建站仿站、二次开发、主题插件定制等开发服务
在线咨询
  • 请先加Q,临时会话收不到
    QQ:1-247-246-247

  • QQ一群:104228692(满)
  • QQ二群:64786792
在线咨询
本站承接WordPress建站仿站、二次开发、主题插件定制等PHP开发服务!

了解详情