我有几篇帖子在第一个字符周围有dropcap快捷码,如下所示:
[dropcap]T[/dropcap]his is a dropcap.
替换此短代码将产生:<span class="dropcap">T</span>his is a dropcap.
但是,当我在这些帖子上调用\\u摘录()或获取\\u摘录()时,它返回:"his is a dropcap".
我需要它返回“这是一个dropcap”,就像不存在任何短代码一样。我有几篇帖子在第一个字符周围有dropcap快捷码,如下所示:
[dropcap]T[/dropcap]his is a dropcap.
替换此短代码将产生:<span class="dropcap">T</span>his is a dropcap.
但是,当我在这些帖子上调用\\u摘录()或获取\\u摘录()时,它返回:"his is a dropcap".
我需要它返回“这是一个dropcap”,就像不存在任何短代码一样。您可以通过连接到get_the_excerpt
过滤并覆盖默认值wp_trim_excerpt
函数,该函数负责从芯片指出的摘录中剥离短码标签:
add_filter(\'get_the_excerpt\', \'do_my_shortcode_in_excerpt\');
function do_my_shortcode_in_excerpt($excerpt) {
return do_shortcode(wp_trim_words(get_the_content(), 55));
}
这适用于两者the_excerpt()
和get_the_excerpt()
输出。如果您只想将其应用于the_excerpt()
输出,挂钩到the_excerpt
过滤器:add_filter(\'the_excerpt\', \'do_my_shortcode_in_excerpt\');
function do_my_shortcode_in_excerpt($excerpt) {
return do_shortcode(wp_trim_words(get_the_content(), 55));
}
这个the_excerpt()
函数不分析短代码。WordPress实际上从摘录中删除了整个短代码。由于“T”被封装在一个短代码中,因此它不会通过the_excerpt()
.
最简单的解决方案可能是通过编辑帖子屏幕上的帖子摘录元框,为使用Dropcap快捷码的帖子创建一个自定义摘录。
更好的解决方案可能是抛弃一个只为完成某些事情而存在的短代码,这些事情只需使用CSS规则即可可靠地完成。
我正在使用以下代码在我的登录页上显示最新的帖子:<?php if (have_posts()) : ?> <?php if (($wp_query->post_count) > 1) : ?> <?php while (have_posts()) : the_post(); ?> <?php the_excerpt() ?> <?php endwhile; ?> <?php el