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

 吕骥源_342 发布于 2022-11-24 12:47

当文章是html形式保存的

那么输出的时候,在遇到时终止输出,只输出摘要。

当文章是Markdown形式保存的

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

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

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

    2022-11-24 13:09 回答
  • wordpress的code @kankana已贴,那么补充一些实现方式

    javascript版本

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

    返回 '正文内容'

    php

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

    输出 '正文内容'

    2022-11-24 13:09 回答
  • 来,给你看下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 );
    }
    2022-11-24 13:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有