如何在更多标签之前获取页面的摘录?

时间:2013-10-21 作者:Alex Herrmann

我的wp安装中有许多页面。我所希望的是能够显示任何页面的摘录,也可以显示在任何页面上(在更多标记之前)。我该怎么办?

我通过以下代码获取当前(首页)的内容:

global $more;
$temp = $more;
$more = false;
echo get_the_content( \'\' );
$more = $temp;
(我在首页模板中使用这些行)

但我不知道如何获取任何页面的内容。也许我需要对add ~/remove\\u过滤器进行操作,更改页面id/slug/title等?

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

内容由get_the_content function, 该函数始终假定循环中的当前post。奇怪的是,你不能给它一个身份证。

对于任意post ID,获取“更多”之前的位的最简单方法是:

$p = get_post(1);
$p = preg_split( \'/<!--more(.*?)?-->/\', $p->post_content );
echo $p[0];
可能有办法劫持global $post 变量,但除非您确实需要get_the_content 我不会费心的。您始终可以创建该函数的近似克隆,以允许您向其中传递ID。

SO网友:anou

另一种获取摘录的方法,我指的是<!--more--> 标签,是使用以下功能:get_extended()

//somewhere in the loop...
global $post;
$content = get_extended( $post->post_content );
$excerpt = $content[\'main\'];
$main_content = apply_filters(\'the_content\', $content[\'extended\']);
正如Wordpress codex中所说:

返回的数组具有“main”和“extended”键。Main在<!--more-->. “extended”键的内容位于<!--more--> 议论

结束

相关推荐

Missing HTML comment tags

我有这个WP安装,我目前正在修改。最疯狂的是HTML注释没有显示在源代码的任何地方。也就是说,如果您右键单击页面并“查看源代码”。但是,如果要使用这样的工具打开页面->http://www.iwebtool.com/code_viewer?domain=w3lol.com 你可以清楚地看到评论就在那里。网站url为http://w3lol.com可悲的是,关于这件事的任何地方都没有任何信息,而且我也不知道如何确定这是否是由代码本身、Apache、WordPress或其他原因造成的。。。(顺便说一句,