WordPress摘录显示2段

时间:2016-06-27 13:24:38

标签: php html wordpress posts

我在WordPress网站中创建了两个类别,每个类别都有一个帖子。我正在不同页面上的每个类别帖子中摘录和摘录。

我在每个页面上显示这样的帖子摘录,并手动添加阅读更多链接。

<?php query_posts('cat=4&showposts=1'); ?>
    <?php while (have_posts()) : the_post(); ?>
        <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
        <?php the_excerpt(); ?>
    <a href="<?php the_permalink(); ?>">Read More</a>
<?php endwhile; ?>

以下代码将结束第一段之后的摘录。

function post_single_paragrapgh($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', 'post_single_paragrapgh', 10, 2 );

我想做的是告诉它在第二段之后切断,或者实际上是图像和段落。

如果在帖子顶部有一个图像,它会拉入一个图像但是我还想在图像后面还有一个段落或只是两段文本。或者。或者。

我使用此网站作为参考,但方法C1会引发错误。 https://www.bybe.net/wordpress-the_excerpt-show-first-paragraph/

提前致谢!

2 个答案:

答案 0 :(得分:1)

您是否对正则表达式的解决方案持开放态度?查找<p>(Anything)</p>并合并第一次出现的两个。代码未经过测试但应该有效。

function post_single_paragrapgh($text, $raw_excerpt) {
    if( ! $raw_excerpt ) {
        $content = apply_filters( 'the_content', get_the_content() );

        preg_match_all( '~<p>(.*?)</p>~', $content, $matches );

        if( isset( $matches[0][0] ) && isset( $matches[0][1] ) ) {

            $text = $matches[0][0] . $matches[0][1];

        } else {

            $text = $matches[0][0];

        }
    }
    return $text;
}

答案 1 :(得分:1)

我设法通过这段代码找出了我需要的东西,我猜是太匆忙地发布了这个问题。

SparkR:::

如果在底部刚刚拿出结尾 - 一定是错误的。希望它可以帮助别人。