从‘Excerpt_Length’筛选器访问Get_the_Title()

时间:2017-08-22 作者:user126296

有没有办法访问get_the_title() 来自a的函数excerpt_length 滤器

例如,将摘录长度设置为与标题相同:

function excerpt_length_same_as_title( $length ) {
        $title_len = strlen(get_the_title());
        return $title_len;
    }
add_filter( \'excerpt_length\', \'excerpt_length_same_as_title\', 999 );

1 个回复
SO网友:Johansson

请允许我提出一个替代方案。与其为所有帖子设置摘录的长度,不如为单个帖子修剪它。我们可以吗?

为此,我们可以使用get_the_excerpt 滤器如果查看有关此过滤器的相应页面,您会注意到代码示例使用is_attachment(), 这意味着您可以访问全球$wp_query.

我们在get_the_excerpt 筛选,并使用自定义函数修剪摘录:

add_filter( \'get_the_excerpt\', \'custom_excerpt_more\' );
function custom_excerpt_more( $excerpt ) {
    // Get the current post
    $post = get_post();
    // Calculate the length of its title
    $charlength = strlen( $post->post_title );
    $charlength++;
    if ( mb_strlen( $excerpt ) > $charlength ) {
        $subex = mb_substr( $excerpt, 0, $charlength - 5 );
        $exwords = explode( \' \', $subex );
        $excut = - ( mb_strlen( $exwords[ count( $exwords ) - 1 ] ) );
        if ( $excut < 0 ) {
            $output = mb_substr( $subex, 0, $excut );
        } else {
            $output = $subex;
        }
        $output .= \' ...\';
        return $output;
    } else {
        return $excerpt;
    }
}
给你。您的摘录现在被其帖子标题删减。

结束

相关推荐

My post excerpt does not work

我正在使用文章摘录,但当我点击阅读更多链接时,它不会显示所有文章段落,它只显示摘录的段落,这是代码行索引。php<?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> <?php get_template_part( \'content\', get_post_format() ); ?> <h2><a hr