将文章限制在100个字符以内。无法使用摘录...

时间:2014-09-15 作者:Paul

我已经为此挣扎了很长时间。。。我想将文章长度限制为100个字符,并在100个字符之后。限制,在“…”末尾添加链接到单个帖子(如wordpress的<!--more--> ). 但是I can\'t 使用the_excerpt 因为它删除了格式化(例如。<b>, <a> 标签)。谁能帮我一下吗?

1 个回复
SO网友:Domain

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 发生,则应将其删除。

那么上述代码应该适用于大多数情况。

结束

相关推荐

The Loop in Static Page

我对环路有一些问题。我以“Twenty14”主题为例。我正在使用基本循环创建2个php文件。一个是家。其中一个是名为示例页的模板页。php。两者都包含此代码;if( have_posts() ) : while( have_posts() ) : the_post(); the_content; endwhile; endif; 没什么特别的,唯一的区别是我在示例页面上有模板声明。php/** * Template Nam