侧边栏调用最新日志的问题

如何在侧边栏达到此效果:
首页调用全局3篇最新日志;
分类页和文章页调用当前分类的3篇最新日志。

因为还没入门,不知道怎么处理。求助各位,非常感谢!

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

    有两个方法,一个是通过代码判断当前页是首页还是或是其他页,然后调用最新日志列表:

    <?php if (is_home()) : ?>
        <?php query_posts('showposts=3'); ?>
        <ul>
            <?php while (have_posts()) : the_post(); ?>
            <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
            <?php endwhile;?>
        </ul>
        <?php wp_reset_query(); ?>
    <?php else : ?>
        <?php $categories = get_the_category(); foreach ($categories as $category) : ?>
        <ul>
            <?php $posts = get_posts('numberposts=3&category='. $category->term_id); foreach($posts as $post) : ?>
            <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?> <?php endforeach; ?>
        </ul>
    <?php endif; ?>
    

    还有一个方法是把这两上判断拆开来,放在两个侧边栏文件里,然后分别在首页以及其他页调用不同的模板,不过这个有点繁琐。

  • 0
    知更鸟 - 2011-10-25

    首页最新:

        <?php wp_reset_query();if ( is_home() ){ ?>
                <ul>
                    <?php $myposts = get_posts('numberposts=3&offset=0');foreach($myposts as $post) :?>
                    <li><a href="<?php the_permalink(); ?>" rel="bookmark" title="详细阅读 <?php the_title_attribute(); ?>"><?php echo cut_str($post->post_title,33); ?></a></li>
                    <?php endforeach; ?>
                </ul>
        <?php } ?>
    

    分类页和文章页调用本分类最新

    <?php
    if ( is_single() || is_archive() ) :
    global $post;
    $categories = get_the_category();
    foreach ($categories as $category) :
    ?>
        <h3>本分类最新文章</h3>
        <div class="box_r">
            <div class="mcat_img"></div>
            <ul> 
                <?php
                $posts = get_posts('numberposts=3&category='. $category->term_id);
                foreach($posts as $post) :
                ?>
                <li><a href="<?php the_permalink(); ?>" title="细看 <?php the_title(); ?>"><?php the_title(); ?></a></li>
                <?php endforeach; ?>
            </ul>
            <?php endforeach; endif ; ?>
    <?php } ?>
    

    上述代码加到主题的sidebar模版中
    PS:首页调用全局最新日志,没有任何意义,因为首页本来显示的就是最新日志

    kdi3166 - 2011-10-25

    嗯。首页也可以通过小工具栏调用。

    最后一个应该是 ?

    kdi3166 - 2011-10-25

    最后一个<?php } ?>应该是</div> ?

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