Bug in the_excerpt() function

时间:2016-12-21 作者:Giannos Kotsovilis

我遇到了一个非常奇怪的问题。

内置函数The\\u execrpt()一旦用户从后端插入自定义摘录,就会返回由WP动态生成的摘录,无需“阅读更多”按钮。如果用户没有插入自定义摘录,则函数将返回该摘录以及“阅读更多”按钮。

我想完全控制这个功能。我用了密码

if (!function_exists(\'sociality_excerpt_more\')) {
 function sociality_excerpt_more($more) {
    return $more . \'&nbsp<a class="read-more p-color" rel="bookmark"  title="\'. get_the_title() .\'" href="\'. get_permalink($post->ID) . \'">\'. esc_html__(\'View more\',\'g5plus-handmade\') .\'<i class="pe-7s-right-arrow"></i></a>\'; 
}
add_filter(\'the_excerpt\', \'sociality_excerpt_more\');
}
但它没有效果。如果用户没有插入自定义摘录,则使用此代码段,函数将返回两次“阅读更多”按钮。

感谢您的帮助:)

2 个回复
SO网友:Tunji

您可以将输出包装在has_excerpt 函数,该函数检查帖子是否有自定义摘录。

if (!function_exists(\'sociality_excerpt_more\')) {
    function sociality_excerpt_more($more) {
        if ( has_excerpt() ) {
            return $more . \'&nbsp<a class="read-more p-color" rel="bookmark"  title="\'. get_the_title() .\'" href="\'. get_permalink($post->ID) . \'">\'. esc_html__(\'View more\',\'g5plus-handmade\') .\'<i class="pe-7s-right-arrow"></i></a>\';
        } else {
            return $more;
        }
    }
    add_filter(\'the_excerpt\', \'sociality_excerpt_more\');
}

SO网友:Mark Kaplun

the_excerpt 除非用户手动选择将其添加到手动摘录中,否则函数应仅返回摘录而不进行额外修饰。这是wordpress中摘录的预期行为,您不应该试图覆盖它,因为在许多地方,通过调用the_excerpt 作用

相关推荐

Strip div From Excerpt

我在特定页面中有\\u extract(),我需要去掉一个div并保留文本,但只保留在该页面的摘录中。我相信我需要创建一个带有自定义摘录的函数,但我不知道该怎么做。测试了我在这里找到的几种解决方案,但没有任何效果。