将内容拆分为两部分(_C)

时间:2018-10-22 作者:F. Wissink

我想把帖子的内容分成两部分。第一部分是<strong>-标记,它就像一个摘录,在第二部分中,我想显示其余的内容。但我没有任何办法解决这个问题。希望有人能帮我解决这个问题?

1 个回复
SO网友:Valentin Genev

解决方案一:

正如智者所提到的,你可以使用摘录。the_excerpt() (link) "E;检索文章摘录;。get_the_excerpt() 是一根绳子,你可以用任何你喜欢的东西把它包起来,然后你可以打电话the_content() 得到剩下的。我看到的唯一缺点是,编辑时必须将内容分成两个文本区域。

您的模板应类似于以下内容:

<div class="entry-content">
    <p><strong><?php echo get_the_excerpt(); ?></strong></p>
    <?php the_content();?>
</div>
解决方案二:WP的编辑器中有一个名为Insert Read More tag 这将内容分为两部分,一部分仅显示在存档或索引页中,其余部分显示在完整的贴子页中。问题是,您可以在提要中忽略它,但它仍然会创建一个空<span> 完整帖子中的元素。有关此选项的更多信息,请单击此处:link

我想到的是编写一个简单的JavaScript,它遍历内容、设置元素样式并在read more 已到达元素。以下是一个简单的设置:

<div class="entry-content">
    <p>I am strong.</p>
    <p>I am strong.</p>
    <p>I am strong.</p>
    <span id="more-id"></span>
    <p>I\'m not.</p>
    <p>I\'m not.</p>
</div>
还有剧本:

let entryContent = document.querySelectorAll(".entry-content *");

for (let i = 0; i < entryContent.length; i++ ) {
    entryContent[i].classList.add("stronger");
    i = (entryContent[i].id.indexOf("more") !== -1) ? i + entryContent.length : i;
}
The<span> 元素具有id 其中包含;更多“;以及post的id,以便检查元素的id是否;更多“;我想作为一个子串就足够了。可以添加更多的案例来排除图像、标题等。

下面是一个演示:link.

这有点傻,但我认为它相当简单和灵活。您还可以重写DOM以添加一些<strong> 标签,但它是一个;“昂贵”;解决方案

结束