2013年12月3日星期二

怎么把Wordpress经典主题模板TwentyTwelve修改为首页输出摘要详解

首页显示文章的全部内容始终不太好看。所以要果断改掉。

这里只拿首页举例子,分类页可照做。

查看首页代码,搜索如下代码:

<!–?php get_template_part( ‘content’, get_post_format() ); ?–>
<!–?php endwhile; ?–>

这便是首页输出文章的代码。从代码中我们得知,首页的文章输出是调用“content.php”这个页面,(注:可能有不懂代码的新手试过直接将“content”替换成“excerpt”,之后首页无内容输出。因为红色代码处的“content”是调用“content.php”页面的意思,而不是函数。)

既然调用“content.php”,那我们现在查看“content.php”页面代码,约第33行起,代码如下:


<?php if ( is_search() ) : // Only display Excerpts for Search ?>
<div>
<?php the_excerpt(); ?>
</div><!– .entry-summary –>

<?php else : ?>
<div>
<?php the_content( __( ‘Continue reading <span>&rarr;</span>’, ‘twentytwelve’ ) ); ?>
<?php wp_link_pages( array( ‘before’ => ‘<div>’ . __( ‘Pages:’, ‘twentytwelve’ ), ‘after’ => ‘</div>’ ) ); ?>
</div><!– .entry-content –>
<?php endif; ?>


红色代码中的红色部分,是content.php页面针对搜索页的输出效果,代码是<?php the_excerpt(); ?>,所以搜索页的文章是摘要显示的。

蓝色代码中的红色部分,是content.php页面针对非搜索页的输出效果,代码是<?php the_content( __( ‘Continue reading <span>&rarr;</span>’, ‘twentytwelve’ ) ); ?>,所以非搜索页的输出效果都是全文。

如果你用的是英版把这里的content可以替换成excerpt了,那么不管首页,还是文章内容页显示摘要了。

中文版的话要到function.php里增加一行代码:

function my_excerpt_length($length) { return 170; } add_filter(‘excerpt_length’, ‘my_excerpt_length’);(这里的170即是摘要显示的字数,可根据需要修改)

(为什么中英文有差异?因为wordpress默认的截取摘要标记是通过空格,因为英文的单词间是存在空格的,而汉字之间没有空格,所以无法通过空格标记截取摘要,只能通过字数截取)


为什么首页和文章内容页都显示摘要了?因为内容页就是content.php页,你把content.php页的全文代码改成摘要代码了,当然内容页内容也是摘要了,怎么解决呢?很简单,将content.php页另存为其他名称的页面再按上述方法修改,而不要直接修改content.php,比如讲content.php另存为content222.php,然后将content222.php页面按上述方法修改,然后将首页代码<!–?php get_template_part( ‘content’, get_post_format() ); ?–>
<!–?php endwhile; ?–>中的“content”替换成“content222”,即让首页调用content222.php页面,而不是“content.php”页面,这样content.php页面没有改动,文章内容页依然是全文显示。

2 条评论:

  1. 感谢分享,我是直接使用的excerpt这个代码,首页是显示得简化了,但如何再加一个继续阅读的链接在那里呢?

    回复删除