我使用以下代码:
<?php the_excerpt(); ?>这是在50个ish单词之后,我在文章的源代码中添加的<!--more-->之后的一段时间。
相反,这将像预期的那样正确地裁剪<!--more-->之前的部分。
<?php the_content("", TRUE); ?>如何更改the_excerpt(),使其在<!--more-->之前返回该部分?
我试过使用get_extended(),但它没有产生与the_excerpt()相同的输出;具体来说,它没有添加<p>标记,可能还有其他一些东西。
提前谢谢你。
发布于 2019-06-17 08:20:03
the_excerpt()不识别或支持<!-- more -->标记。来自文献资料:
<!--more-->快速标记要求模板使用the_content(),而使用摘录则需要并允许模板编写者显式地选择显示完整文章(使用the_content())还是显示摘要(使用the_excerpt())。
关键是the_excerpt()允许主题作者(您)需要一段摘录。这是自动创建的内容,但如果用户需要一个特定的摘录,然后他们可以输入一个手动摘录。无论哪种方式,它们都不能意外地显示完整的post内容。
另一方面,the_content()允许用户决定是否使用节选。如果他们确实想要一个,那么他们就使用<!-- more -->标记。如果他们不这样做,那么他们会忽略它,完整的帖子将被显示出来。
作为一个主题作者,你需要决定你应该支持哪一个。如果显示文章的全部内容会破坏您的布局,那么您应该使用the_excerpt(),但是如果主题看起来很好,那么使用the_content()。
如果您希望用户在这些选项之间做出决定,那么您可以创建一个定制设置,让用户选择。然后,在模板中可以检查这个值并使用适当的标记:
<?php
if ( 'excerpt' === get_theme_mod( 'setting_name_here' ) ) {
the_excerpt();
} else {
the_content( '', true );
}
?>https://wordpress.stackexchange.com/questions/340675
复制相似问题