让置顶文章不显示摘要的以下代码是否正确?

各位大侠:
  网上以《wordpress区分置顶文章》为题的类似文章很多,都是抄来抄去的,实际用时却发现基本不能用--当然,也许是wp的版本升级,情况变化了吧。
  关于让置顶文章不显示摘要,该教程如是说:打开你的主题目录下的index.php,查找:
  the_contentthe_excerpt
  给它添加一个判断:  

if( !is_sticky() ) the_content(….); 
或
 if( !is_sticky() ) the_excerpt(….); 

  --以上代码对吗?准确、完整的代码应当是什么样子?
  之所以有此一问,是因为发现该文提供的给日志加上置顶字样的代码不对,一用就出错,等待兄耐心指点后才找到正确的方法。

(上次修改于2011-10-08,查看历史版本。)
共有8个回答 按发表时间排序
  • 0
    最佳答案
    摄氏度 - 2011-10-08

    也可以从根源上彻底的分开置顶文章与普通文章,可参考以下代码:

    <?php while ( have_posts() ) : the_post(); ?>
        <li <?php post_class(); ?>>
            <?php if ( is_sticky() ) : ?>
                <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
                <div class="meta"><?php the_time('Y-m-d'); ?>, <?php _e("Author:"); ?><?php the_author(); ?> | <?php _e("Categories:"); ?><?php the_category('、') ?> | <?php _e("Tags:"); ?><?php the_tags(__(' '), '、'); ?></div>
            <?php else : ?>
                <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
                <div class="meta"><?php the_time('Y-m-d'); ?></div>
                <div class="excerpt">
                    <?php the_content(__('Read More &raquo;')); ?>
                    <div class="meta"><?php _e("Author:"); ?><?php the_author(); ?> | <?php _e("Categories:"); ?><?php the_category('、') ?> | <?php _e("Tags:"); ?><?php the_tags(__(' '), '、'); ?></div>
                    <div class="comments_num"><?php comments_popup_link(__('No Comments'), __('1 Comment'), __('% Comments')); ?></div>
                </div>
            <?php endif; ?>
        </li>
    <?php endwhile; ?>
    
    yggcwx - 2011-10-08

    请问兄弟,这些代码是放在主题的index文件里吗?放在什么位置呢?
    PS:非常感谢您的指点!

    摄氏度 - 2011-10-08

    替换原来的index.php里的内容循环代码就可以了,找到原有的

    while ( have_posts() ) : the_post();
    

    类似的代码是循环的开始

    yggcwx - 2011-10-08

    再有两问:
      1.这样修改后,我原来加上的带“置顶”标记的字样不会改变吧?
      2.这是个什么效果呢?是置顶文章不显示摘要吗?

    摄氏度 - 2011-10-08

    原来的带“置顶”标记的字样肯定会变,这里的效果其实就是把置顶的文章跟普通文章完全分享出来,效果类似下图
    提示文字

    置顶文章只显示标题及相关信息,而普通文章则显示还显示摘要内容。

    <?php if ( is_sticky() ) : ?>
    <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
    <div class="meta"><?php the_time('Y-m-d'); ?>, <?php _e("Author:"); ?><?php the_author(); ?> | <?php _e("Categories:"); ?><?php the_category('、') ?> | <?php _e("Tags:"); ?><?php the_tags(__(' '), '、'); ?></div>
     <?php else : ?>
    

    这一段代码就是提取出置顶文章,并为他另外写结构,你要为置顶文章加上“置顶”字样,起码只需要在这一句上加

    <h2>[置顶]<a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
    

    其它的,可照样修改。

    yggcwx - 2011-10-08

      我把原来主题模板index文件中的这一句

    <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
    

      修改成

    <?php if ( is_sticky() ) : ?>
    <h2 class="entry-title title_sticky"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'Perfct' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark">[置顶] <?php the_title(); ?></a></h2>
    <?php else : ?>
    <h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'Perfct' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
    <?php endif; ?>
    

      这样的修改,与您上面的修改有冲突或重复吗?如有,咋办?
      PS:像我这样笨的人不多,非常不好意思~

    摄氏度 - 2011-10-08

    这样当然重复了,上次的代码已经是包含了置顶文章与普通文章的区分的,这里当然不能再对标题进行区分了。

    yggcwx - 2011-10-08

    那我应当把原来的修改再改回去,然后照着你的办法改?

做好事要留名,请先登录再回答,如果还没有帐户请先注册