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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-06 20:50:50
Original
1312 people have browsed it

当文章是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 );
}
Copy after login

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

javascript版本

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

返回 '正文内容'

php

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

输出 '正文内容'

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

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Issues
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template