>  기사  >  백엔드 개발  >  wordpress中的<!--more-->截取输出摘要是怎么判断的?

wordpress中的<!--more-->截取输出摘要是怎么判断的?

WBOY
WBOY원래의
2016-06-06 20:50:501252검색

当文章是html形式保存的

那么输出的时候,在遇到<!--more-->时终止输出,只输出摘要。

当文章是Markdown形式保存的

使用Python Markdown保存了用户原始输入数据,那么这个<!--more-->应该怎么融入进去,同时输出时遇到这个标记时终止,只输出摘要。

希望有人能跟我讲解下这个原理是怎么实现的?需要用到哪些函数方法?

回复内容:

当文章是html形式保存的

那么输出的时候,在遇到<!--more-->时终止输出,只输出摘要。

当文章是Markdown形式保存的

使用Python Markdown保存了用户原始输入数据,那么这个<!--more-->应该怎么融入进去,同时输出时遇到这个标记时终止,只输出摘要。

希望有人能跟我讲解下这个原理是怎么实现的?需要用到哪些函数方法?

来,给你看下wordpress恶心的代码

function get_extended($post) {
	//Match the new style more links
	if ( preg_match('/<!--more(.*?)?-->/', $post, $matches) ) {
		list($main, $extended) = explode($matches[0], $post, 2);
		$more_text = $matches[1];
	} else {
		$main = $post;
		$extended = '';
		$more_text = '';
	}

	// Strip leading and trailing whitespace
	$main = preg_replace('/^[\s]*(.*)[\s]*$/', '\\1', $main);
	$extended = preg_replace('/^[\s]*(.*)[\s]*$/', '\\1', $extended);
	$more_text = preg_replace('/^[\s]*(.*)[\s]*$/', '\\1', $more_text);

	return array( 'main' => $main, 'extended' => $extended, 'more_text' => $more_text );
}

wordpress的code @kankana已贴,那么补充一些实现方式

javascript版本

'正文内容<!--more-->截断更多内容'.split('<!--more-->')[0];

返回 '正文内容'

php

$errrr=explode('<!--more-->','正文内容<!--more-->截断更多内容');
echo $errrr[0]

输出 '正文内容'

lz是想用jekyll么,可以试试postmore.rb这个plugin,创建一个Liquid过滤器过滤掉不需要现实的内容,详情请猛戳 https://github.com/tokkonopapa/jekyll... 。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.