我对Wordpress的编码很陌生,请原谅我。
我的主页上有一节,其中列出了最近的2篇博客文章。
如果文字超过三行,我的设计就会搞砸。因此,我想知道是否存在一个本地函数,可以自动添加“继续阅读”,并允许用户单击该链接将他们带到完整的博客文章中?
例如,这就是我不想要的:

这是我想要的,我在Photoshop中做了设计,这就是我想要发生的,如果帖子超过3行文字。

谢谢,如果需要的话,我会尽力澄清的!
发布于 2013-09-17 01:35:27
问题是,行不是PHP能够理解的单元,因为它是一个更多地与显示有关的单元,而不是与内容相关的单元,简而言之,它不能被PHP度量。
在Wordpress中,您想要的是使用函数the_excerpt完成的,我打赌这个函数在您的主题中使用。(请务必阅读所提供的链接,为您提供大量有用的信息)
如前所述,行不是PHP的有效单位,实际上,the_excerpt使用单词的数量作为限制。默认情况下,它仅限于55个单词。
如何更改:第一个方法是使用过滤器,如下所示:
add_filter( 'excerpt_length', function() { return 20; }, 99 );这样,你帖子中可见的“摘要”就会有20个字。
在创建摘录时,从post内容中删除一定数量的单词,将[...]追加到摘录中。
为了避免这种情况,您可以使用另一个筛选器:
add_filter( 'excerpt_more', function() { return ''; }, 99 );这样,就不会将任何内容附加到修整的文本中。如果您想要附加一些东西,只需将您想要的东西放在''中的前一个函数中即可。
另一种决定“摘要”应在何处结束的方法是,在创建“摘要”时手动将摘录插入文章中:

这样,您就可以准确地决定摘要应该在哪里结束。
关于节选的长度,我认为现在你可以控制它,现在我们可以回答你问题的第二部分。
添加“继续阅读”的更简单的方法是使用get_permalink();添加到post的链接,因此,在您的代码中有the_excerpt()的地方,替换为:
the_excerpt(); printf('<a href="%s">%s</a>', get_permalink(), 'Continue Reading...'); 请注意,这将始终将链接添加到单个帖子,即使文章短于摘录长度。
要只在post内容长于摘录的情况下添加链接,您可以只使用the_excerpt();离开模板,并使用前面解释的'excerpt_more‘筛选器,而不是返回空字符串,而是将链接返回给post:
add_filter( 'excerpt_more', function() {
return ' <a class="read-more" href="'. get_permalink( get_the_ID() ) . '">Continue Reading...</a>';
});在这个答案中,我假设您的模板使用the_excerpt来显示帖子摘要,这是最常见的方式,但是有些主题以不同的方式处理这个问题,所以如果发布的代码不适合您,您的主题可能会使用不同的方式.在这种情况下,更新您的问题,添加您的模板的代码,并肯定,有人将帮助您很快。
发布于 2013-09-17 01:36:32
很容易根据字符或单词,甚至句子来截断文本,但是PHP无法知道您有多少行文本。这种计算是由浏览器在内容离开服务器后进行的,取决于屏幕大小、窗口宽度、字体、浏览器本身,甚至一些浏览器插件也可以改变内容。此外,单词的长度可以改变文本的“流”和“包装”
为了接近你想要的,你需要Javascript,但这是一个不相关的话题。使用PHP,最好的结果是@AndreYonadam发布的(我投了赞成票)或@ get (我也投了赞成票),但是这里还有很多其他的问题有类似的答案。
https://wordpress.stackexchange.com/questions/114415
复制相似问题