限制相关帖子部分摘录中的字符/单词数

时间:2020-05-25 作者:DHazeel

我正在慢慢构建自己的WordPress主题,并希望在每篇文章的底部有一个相关的文章部分(例如here 在我的网站上)。

我正在使用以下代码生成相关帖子:

<footer>
    <div class="container-fluid related-posts">
        <div class="row">
            <?php $categories = get_the_category($post->ID); ?>
            <?php if ($categories): ?>
            <?php $category_ids = array(); ?>
            <?php foreach($categories as $individual_category) : ?>
            <?php $category_ids[] = $individual_category->term_id; ?>
            <?php endforeach; ?>
            <?php $args=array(
                \'category__in\' => $category_ids,
                \'post__not_in\' => array($post->ID),
                \'posts_per_page\'=>3,
                \'ignore_sticky_posts\'=>1,
                \'oderby\' => \'rand\'
            );?>
            <?php $my_query = new WP_Query($args); ?>
            <?php if( $my_query->have_posts() ) : ?>

            <section class="container-fluid">
                <h2>Related Articles</h2>
                    <div class="row">
                        <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
                            <div class="col-sm">
                                <a href="<?php the_permalink()?>" class="related-thumb"><?php the_post_thumbnail(); ?></a>
                                <h3><a href="<?php the_permalink()?>"><?php the_title(); ?></a></h3>
                                <p><?php the_excerpt()?></p>
                            </div>
                            <?php endwhile;?>
                    </div>

            </section>
            <?php endif; ?>
            <?php wp_reset_query();?>
            <?php endif; ?>
        </div>
    </div>
</footer>
使用少量CSS:

.related-posts h3 {
    font-size: 1.2rem;
}

.related-posts h2 {
    text-decoration: underline;
}
我希望显示的摘录限制为50个字符,并自定义前端显示的“阅读更多”元素(当前为[…])。然而,我还没能做到这一点。任何帮助都将不胜感激!

2 个回复
最合适的回答,由SO网友:Pat J 整理而成

您可以使用get_the_excerpt filter 修改打印内容的步骤the_excerpt():

add_filter( \'get_the_excerpt\', \'wpse_367505_excerpt\' );
function wpse_367505_excerpt( $excerpt ) {
    return substr( $excerpt, 0, 50 ) . \' [Read More]\';
}
您可以更改[Read More] 发短信给你想要的任何人。

将此代码添加到主题functions.php 文件,它会自动过滤你的摘录,无论你在哪里使用它们。

SO网友:Chetan Prajapati

您可以使用以下代码。代替

<p><?php the_excerpt()?></p>
使用

<p><?php echo wp_trim_words( get_the_excerpt(), 40, \'...\' ); ?></p>