function get_custom_excerpt( $content, $link ){
$content = some_function_to_handle_html_tag(substr($content, 0, 100)); // EDIT: need to be customized with a regex for proper output
$content .= \' <a href="\'.$link.\'"> more... </a>\';
return $content;
}
function some_function_to_handle_html_tag(){
//a regex to check last occurance of html opening tag
//append respective closing tag or strip the tag if broken e.g. \'<\' or \'<something\'
}
//for global $post
echo get_custom_excerpt($post->post_content, get_permalink($post->ID)); //print the custom excerpt of 100 characters
或
//when in loop
echo get_custom_excerpt(get_the_content(), get_permalink(get_the_ID())); //print the custom excerpt of 100 characters
EDIT:
如果某个html标记在前100个字符中打开,但没有关闭,则这可能是不稳定的。我试图找到一个合适的解决方案(在不剥离html的情况下显示内容),但没有发现任何帮助。但是,我有一个想法可能会有所帮助-
1) 您可以使用正则表达式来检查以<
并以结束>
, 然后,您必须在最后添加相应的结束标记。例如,如果有标签<span>
, 这个</span>
将需要在最后添加,以防止html布局中断。
2) 如果发生类似的情况<
或<something
发生,则应将其删除。
那么上述代码应该适用于大多数情况。