我想在主页面显示限制WordPress的最新帖子。我正在使用WordPress API和函数来显示,但在此之后get_the_content()
删除并转义所有已刻录的标签,并且我的帖子无法正确显示,例如编辑器标签。
此函数转义HTML标记:
<ul style="list-style: none;margin:5px" class="latest-posts">
<!-- LOOP START -->
<?php $the_query = new WP_Query( 'showposts=3' ); ?>
<?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
<!-- THIS DISPLAYS THE POST THUMBNAIL, The array allows the image to has a custom size but is always kept proportional -->
<li> <?php the_post_thumbnail( array(100,100) );?></li>
<!-- THIS DISPLAYS THE POST TITLE AS A LINK TO THE MAIN POST -->
<li>
<a href="<?php the_permalink() ?>">
<?php the_title(); ?>
</a>
</li>
<!-- THIS DISPLAYS THE EXCERPT OF THE POST -->
<li>
<?php echo mb_substr(get_the_content(), 0, 1200).' ...'; ?>
</li>
<!-- READ MORE LINK -->
<li><a href="<?php the_permalink() ?>">more ...</a></li>
<?php endwhile;?>
<!-- LOOP FINNISH -->
</ul>
答案 0 :(得分:0)
如何输出帖子内容的摘录基本上有三种可能性。
使用the excerpt()
函数,在帖子编辑器中输出摘录字段的内容,如果未填充,则会显示帖子内容的前55个字(使用excerpt_length
过滤器控制摘录的长度。
要使用<!--more-->
快捷标签,the_content()
标记只会显示<!--more-->
快捷标签的摘录。该快速标签不适用于单页模板。
手动从帖子内容中删除HTML并显示自定义摘录。一种方法是使用wp_filter_nohtml_kses()
函数:
echo mb_substr( wp_filter_nohtml_kses( get_the_content() ), 0, 1200 );
上述所有方法都会从帖子内容中删除HTML。要在摘录中包含HTML,请在帖子编辑器中使用摘录字段,WordPress将保留您在帖子编辑器中包含的HTML。还有一些像Advanced Excerpt这样的插件会从内容中创建摘录并保留html,但我不相信有这样做的防弹方法。