wordpress 自定义readmore
在wordpress 列表页显示文章内容时,希望显示文章的部分内容,并提示阅读更多按钮,通过阅读更多,进入文章页阅读全部内容,有几种方法可以实现这个需求
1、在模板的列表页使用字符串截断函数
在模板的列表页使用字符串截断函数,比如:在functions.php文件中添加如下代码:
function f_strimwidth($str ,$start , $width ,$trimmarker ){ $output = preg_replace('/^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$start. '}((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$width.'}).*/s','\1',$str); return $output.$trimmarker; }
然后,在需要的地方,使用下列代码进行调用:
<?php echo dm_strimwidth(strip_tags($post->post_content),0,200, '<a href=”‘.get_permalink().'”>……[阅读全文]</a>’);?>
2、使用wordpress的摘要功能
在后台编辑文章的时候,如图,可以给文章添加摘要,并优先显示摘要
在列表页调用获取摘要的代码,
if (has_excerpt()) { the_excerpt(); } else { echo dm_strimwidth(strip_tags($post->post_content), 0, 200, '<a href=”‘.get_permalink().'”>……[阅读全文]</a>’ }
3、根据用户插入的readmore 标签的位置显示部分文章内容
在需要插入阅读更多的地方插入readmore 分隔符,然后在需要的地方调用如下代码即可
if (has_excerpt()) { the_excerpt(); } else { //如果用户插入more分隔符,显示more之前的信息,否则显示前500字符 @todo the_content('Read More(阅读全文)'); }
4、综述
这三种方式各有各的优点,其中第三种方式更为灵活,可以显示长短不一致的摘要,看着更有个性。但是如果使用第三种方式,要定制阅读全文的样式,就需要使用回调函数标志 the_content_more_link,在模板的functions.php中添加如下代码。
function my_more_link($more_link, $more_link_text) { //使用p标签包裹a链接 $more_link = '<p class="read-more">' . $more_link . "</p>"; return $more_link; //return str_replace($more_link_text, 'Keep reading this post', $more_link); } add_filter('the_content_more_link', 'my_more_link', 10, 2); ?>
关于add_filter(‘the_content_more_link’, ‘my_more_link’, 10, 2)的用法在后一篇文章中分析
转载请注明:杜镶飞的blog » wordpress 自定义readmore
标签:wordpress模板分类:wordpress
还没有人抢沙发呢~