站点shares.club建好后,查看主页时,发现虽然设置了只展示5篇文章以及feed中浏览显示摘要而不是全文,但是主页还是对每篇文章进行了全文显示,这样的体验非常差,必须把第一篇看完才能浏览第二篇。为此,决定一定要改个简洁的方式来展示主页。由于本人从未学习过PHP相关的知识,所以虽然可能是几句话的事,但是对初次接触的人来说,还是很难,事后事实也如此。曲折经历如下:
首先在百度上查找了相关方法,得出的结果大多是安装插件,或者插入几段代码,而且写的非常不标准,都是反复转摘的文章,有些原文站点甚至已经关闭了,无从考究,而且时间大多已经是5年前的文章,WordPress版本都不知道更新了多少个!只能算是部分正确,也许是我设置不对,但是如果你看到本文了,相信你也已经尝试了很多方法了!最后还是通过强大的谷歌,直接搜不来前两篇文章就能解决问题,不得不说,还是谷歌的结果更切题,可惜百度了!
说明:本人使用的WordPress主题是twentysixteen,其它主题应该类似。
添加过滤和文章截取函数
在主题-编辑-主题文件-模板函数function.PHP文件末尾 添加下面的函数:
/**
* Display the content in short words
*/
function dm_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;
}
/*控制摘要字数*/
function new_excerpt_length($length) {
return 150;
}
function new_excerpt_more($more) {
global $post;
return '<a href="'. get_permalink($post->ID) . '">......阅读更多</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');
设置content内容的展示方式
在主题-编辑-主题文件-template-parts-content.php文件末尾替换下面的内容:
原文:
<div class="entry-content">
<?php
/* translators: %s: Name of current post */
the_content( sprintf(
__( 'Continue reading %s', 'twentysixteen' ),
the_title( '<span class="screen-reader-text">', '</span>', false )
) );
wp_link_pages( array(
'before' => '<div class="page-links"><span class="page-links-title">' . __( 'Pages:', 'twentysixteen' ) . '</span>',
'after' => '</div>',
'link_before' => '<span>',
'link_after' => '</span>',
'pagelink' => '<span class="screen-reader-text">' . __( 'Page', 'twentysixteen' ) . ' </span>%',
'separator' => '<span class="screen-reader-text">, </span>',
) );
?>
</div><!-- .entry-content -->
替换后为:
<div class="entry-content">
<?php
if ( is_single() ) :
/* translators: %s: Name of current post */
the_content( sprintf(
__( 'Continue reading %s', 'twentysixteen' ),
the_title( '<span class="screen-reader-text">', '</span>', false )
) );
wp_link_pages( array(
'before' => '<div class="page-links"><span class="page-links-title">' . __( 'Pages:', 'twentysixteen' ) . '</span>',
'after' => '</div>',
'link_before' => '<span>',
'link_after' => '</span>',
'pagelink' => '<span class="screen-reader-text">' . __( 'Page', 'twentysixteen' ) . ' </span>%',
'separator' => '<span class="screen-reader-text">, </span>',
) );
else :
/* translators: %s: Name of current post */
the_excerpt( sprintf(
__( 'Continue reading %s', 'twentysixteen' ),
the_title( '<span class="screen-reader-text">', '</span>', false )
) );
wp_link_pages( array(
'before' => '<div class="page-links"><span class="page-links-title">' . __( 'Pages:', 'twentysixteen' ) . '</span>',
'after' => '</div>',
'link_before' => '<span>',
'link_after' => '</span>',
'pagelink' => '<span class="screen-reader-text">' . __( 'Page', 'twentysixteen' ) . ' </span>%',
'separator' => '<span class="screen-reader-text">, </span>',
) );
endif;
?>
</div><!-- .entry-content -->
替换后,更新,再次查看站点应该就会比百度上找的显示好看多了吧,虽然还有些对汉字的兼容不好,如显示的字数也许对英文可以,但是汉字就显得少了一点,后面再慢慢调呗!
那些坑
1,填写摘要无效,不显示
根据网上提供的方法,补充了文章的在编辑时可选填的摘要,可是起初设置的方法虽然显示了“阅读更多”的按钮,但是也没有按照摘要内容进行显示或者要不就是正文仍然在显示,二者出现了重复!一般写一点文章,谁还专门去写摘要呀,肯定直接截取原文更方便啦!
参考文章:http://www.matrudev.com/post/twenty-sixteen-summary-excerpt/
---------------------
作者:我在地球村--做个有意思的人
来源:CSDN
版权声明:本文为博主原创文章,转载请附上博文链接!
本文来自博客园,作者:{Julius},转载请注明原文链接:https://www.cnblogs.com/bestechshare/p/16447694.html
可微信加我,了解更多,WeChat:{KingisOK}