修改twentytwelve之文章内容截断

在贴吧、wordpress群上经常看到有人修改wordpress的默认主题,于是,我也心血来潮,修改了一下下,为了避免将来整理修改过程麻烦,或者遗漏了什么问题,现在开始把我修改的每一步,能记录的都记录下来。

文章内容截断,很简单的代码就能搞定,动手之前,还是建议你看完全文了再去修改。

本文撰写时间较早,内容可能已经失效,仅作记录、参考!

在默认主题twentytwelve的后台或根文件夹下找到function.php,用代码编辑器打开,在最后一个?>前插入下面这段代码:

//文章文字截断   
function my_excerpt_length($length) { return 180; } 
add_filter('excerpt_length', 'my_excerpt_length');

然后,在你需要实现文章截断的文件里修改,将类似于<?php the_content(); ?>替换为<?php the_excerpt();?>

其实就是在你调用文章的页面里,把调用文章的全文改为调用文章的摘要。不懂的可以自己去度娘,我也是新手,说得不够专业。

我的方法是,重建一个content-jied.php文件,加入下面的代码

<?php   
/**
 * The default template for displaying content. Used for both single and index/archive/search.  
 *  
 * @package WordPress  
 * @subpackage Twenty_Twelve  
 * @since Twenty Twelve 1.0  
 */  
?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>   
    <?php if ( is_sticky() && is_home() && ! is_paged() ) : ?>   
    <!--<div class="featured-post">   
        <?php _e( 'Featured post', 'twentytwelve' ); ?>   
    </div>-->   
    <?php endif; ?>   
    <header class="entry-header">   
        <?php the_post_thumbnail(); ?>   
        <?php if ( is_single() ) : ?>   
        <h1 class="entry-title"><?php the_title(); ?></h1>   
        <?php else : ?>   
        <h1 class="entry-title">   
            <a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentytwelve' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a>   
        </h1>   
        <?php endif; // is_single() ?>   
        <?php if ( comments_open() ) : ?>   
            <div class="comments-link">   
                <?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'twentytwelve' ) . '</span>', __( '1 Reply', 'twentytwelve' ), __( '% Replies', 'twentytwelve' ) ); ?>   
            </div><!-- .comments-link -->   
        <?php endif; // comments_open() ?>   
    </header><!-- .entry-header -->   
  
    <?php if ( is_search() ) : // Only display Excerpts for Search ?>   
    <div class="entry-summary">   
        <?php the_excerpt(); ?>   
    </div><!-- .entry-summary -->   
    <?php else : ?>   
    <div class="entry-content">   
        <?php the_excerpt( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentytwelve' ) ); ?>   
        <?php wp_link_pages( array( 'before' => '<div class="page-links">' . __( 'Pages:', 'twentytwelve' ), 'after' => '</div>' ) ); ?>   
    </div><!-- .entry-content -->   
    <?php endif; ?>   
  
    <footer class="entry-meta">   
        <?php twentytwelve_entry_meta(); ?>   
        <?php edit_post_link( __( 'Edit', 'twentytwelve' ), '<span class="edit-link">', '</span>' ); ?>   
        <?php if ( is_singular() && get_the_author_meta( 'description' ) && is_multi_author() ) : // If a user has filled out their description and this is a multi-author blog, show a bio on their entries. ?>   
            <div class="author-info">   
                <div class="author-avatar">   
                    <?php echo get_avatar( get_the_author_meta( 'user_email' ), apply_filters( 'twentytwelve_author_bio_avatar_size', 68 ) ); ?>   
                </div><!-- .author-avatar -->   
                <div class="author-description">   
                    <h2><?php printf( __( 'About %s', 'twentytwelve' ), get_the_author() ); ?></h2>   
                    <p><?php the_author_meta( 'description' ); ?></p>   
                    <div class="author-link">   
                        <a href="<?php echo esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ); ?>" rel="author">   
                            <?php printf( __( 'View all posts by %s <span class="meta-nav">&rarr;</span>', 'twentytwelve' ), get_the_author() ); ?>   
                        </a>   
                    </div><!-- .author-link -->   
                </div><!-- .author-description -->   
            </div><!-- .author-info -->   
        <?php endif; ?>   
    </footer><!-- .entry-meta -->   
</article><!-- #post -->

然后保存在主题根目录下,在index.php调用content的地方修改为:

< ?php while ( have_posts() ) : the_post(); ?>   
< ?php get_template_part( 'content-jied', get_post_format() ); ?>   
< ?php endwhile; ?>

不建议直接复制,最好是搞懂了,自己新建一个文件去修改,因为这款主题比较复杂,而且我也修改了N遍,不保证我会漏掉哪一步没有说,并且我几乎修改了所有的PHP文件,不清楚是否会有关联。

自己动手试试吧,保存并更新你的主题,点击查看下,是不是出现了截断啊!

NOOLDEY

本文作者:NOOLDEY

做一个诗情画意的码农,皮皮猪,我们走!

原文链接: http://zhuweisheng.com.cn/wordpress/neirongjieduan/

本站文章如无特殊声明均为原创,创作不易,转载请注明来源,谢谢!