如何用WordPress免插件实现MarkDown语法支持
2021年3月19日 浏览:844
WordPress默认不支持MarkDown标记(不知道最新版实现没有),虽然提供了很多第三方MarkDown插件,但都无法达到满意的效果。xiaoz一直以来都是用HTML标签来写文章,虽然排版效果好,但是写起来真的很费劲,效率也不高,于是想到一个法子让WordPress更好的支持MarkDown语法,并且不需要安装额外的插件。
下载Parsedown
Parsedown可以将MarkDown内容解析为HTML,如果内容已经是HTML则不进行解析,有了Parsedown的支持,在发表WordPress文章的时候不仅兼容原来的文本模式(HTML)也可以使用MarkDown语法写作,两者互不冲突。
前往 https://meiqia.com/help/development/ 下载最新版Parsedown
在主题目录下新建一个目录
extend
将
Parsedown.php
放到extend
目录
添加钩子
将下面的代码添加到主题目录的functions.php
注册为WordPress钩子
//markdown解析function wp_parsedown(){ include_once(get_stylesheet_directory()."/extend/Parsedown.php"); $Parsedown = new Parsedown(); $content = get_the_content(); $content = $Parsedown->text($content); if(is_single() || is_page()){ echo $content; } else{ $content = strip_tags($content); $content = mb_substr($content,0,180,'UTF-8'); echo $content; } } add_action('the_content','wp_parsedown');
如果文章外链需要自动添加nofollow
并且在新窗口打开,请使用下面的代码:
//markdown解析,添加nofollowfunction wp_parsedown(){ include_once(get_stylesheet_directory()."/extend/Parsedown.php"); $Parsedown = new Parsedown(); $content = get_the_content(); $content = $Parsedown->text($content); if(is_single() || is_page()){ preg_match_all('/href="(.*?)" rel="external nofollow" target = "_blank" /',$content,$matches); if($matches){ foreach($matches[1] as $val){ if( strpos($val,home_url())===false ) $content=str_replace("href=\"$val\"", "href=\"$val\" rel=\"external nofollow\" target = \"_blank\" ",$content); } } echo $content; } else{ $content = strip_tags($content); $content = mb_substr($content,0,180,'UTF-8'); echo $content; } } add_action('the_content','wp_parsedown');
注意上面的$content = mb_substr($content,0,180,'UTF-8');
这一行,其中180代表首页文章摘要字数,请根据自身情况修改。
切换到文本模式
WordPress文本模式支持HTML写作,通过上面的步骤文本模式已经完美支持了MarkDown语法。
点赞 评论 收藏