在wordpress中获取第一段

时间:2018-02-15 09:51:35

标签: php wordpress wordpress-theming custom-wordpress-pages

我遇到第一个

形式的问题 - the_excerpt();

功能可以正常工作但仅适用于第一篇文章。我在functions.php中添加了

function get_first_paragraph(){
global $post;

$str = wpautop( get_the_content() );
$str = substr( $str, 0, strpos( $str, '</p>' ) + 4 );
$str = strip_tags($str, '<a><strong><em>');
return '<p>' . $str . '</p>';
}

我在The Loop <?php echo get_first_paragraph(); ?>

内的index.php中调用此函数

我不知道为什么它只是为了第一篇文章...

2 个答案:

答案 0 :(得分:1)

您可以将此代码放在主题中的function.php文件中,

获取第一段

&#13;
&#13;
function awesome_excerpt($text, $raw_excerpt) {
    if( ! $raw_excerpt ) {
        $content = apply_filters( 'the_content', get_the_content() );
        $text = substr( $content, 0, strpos( $content, '</p>' ) + 4 );
    }    
    return $text;
}
add_filter( 'wp_trim_excerpt', 'awesome_excerpt', 10, 2 );
&#13;
&#13;
&#13;

有关详细信息,请参阅参考链接WORDPRESS THE_EXCERPT SHOW ONLY FIRST PARAGRAPH

答案 1 :(得分:0)

该代码在古腾堡时代对我不起作用。因此,我使用了部分代码,并进行了一些搜索并提出了此解决方案。希望对您有所帮助。

function get_paragraph_content($paragraph_number){
    global $post;
    $i = 0;
    $paragraph = '';
    if ( has_blocks( $post->post_content ) ) {
        $blocks = parse_blocks( $post->post_content );
        foreach( $blocks as $block ) {
            if( 'core/paragraph' === $block['blockName']){
                $paragraph = render_block($block);                
                if (++$i == $paragraph_number) break;
            }
        }
        $paragraph = substr( $paragraph, 0, strpos( $paragraph, '</p>' ) + 4 );
        $paragraph = strip_tags($paragraph, '<a><strong><em>');        
    }
    return $paragraph;
}