自动生成摘录,带有短码和阅读更多按钮/文本链接

时间:2017-06-23 作者:Trip Vendors Inc

从此线程:the_excerpt and shortcodes 我从@Programmer Dan那里提取了这段代码,它可以很好地将执行的短代码包含在自动生成的摘录中

    add_filter(\'the_excerpt\', \'do_shortcode\');
remove_filter(\'get_the_excerpt\', \'wp_trim_excerpt\', 10);
add_filter(\'get_the_excerpt\', \'my_custom_wp_trim_excerpt\', 99, 1);
function my_custom_wp_trim_excerpt($text) {
    if(\'\'==$text) {
        $text= preg_replace(\'/\\s/\', \' \', wp_strip_all_tags(get_the_content(\'\')));
        $text= explode(\' \', $text, 56);
        array_pop($text);
        $text= implode(\' \', $text);
    }
    return $text;
}
我的问题是,我不知道如何添加按钮或文本链接,以便阅读更多返回到原始文章的内容。

1 个回复
最合适的回答,由SO网友:cjbj 整理而成

如果你看一下get_the_excerpt 您可以看到,实际上有两个参数传递给过滤器:摘录文本和post对象。您只传递文本,而您需要post对象知道永久链接。

因此,您应该更改这些行:

add_filter(\'get_the_excerpt\', \'my_custom_wp_trim_excerpt\', 99, 1);
function my_custom_wp_trim_excerpt($text) {
收件人:

add_filter(\'get_the_excerpt\', \'my_custom_wp_trim_excerpt\', 99, 2);
function my_custom_wp_trim_excerpt($text,$post) {
现在,过滤器函数中有了post对象,可以使用get_permalink($post) 检索该帖子的链接并对其执行任何操作。例如:

function my_custom_wp_trim_excerpt($text) {
    if(\'\'==$text) {
        $text= preg_replace(\'/\\s/\', \' \', wp_strip_all_tags(get_the_content(\'\')));
        $text= explode(\' \', $text, 56);
        array_pop($text);
        $text= implode(\' \', $text);
    }
    $text = $text . \'<a href="\' . get_permalink($post) . \'">Link to post</a>\';
    return $text; }

结束

相关推荐

shortcode get thumbnail size

如何获取短代码缩略图大小?我的代码在函数中获取短代码缩略图大小:function thumb_medium( $atts, $content = null ) { return wp_get_attachment_url( get_post_thumbnail_id( $post_id, \'medium\') ); //or wp_get_attachment_url( get_post_thumbnail_id( $post_id, \'large\') ); //or