如何在列中仅显示选定类别中的帖子标题?

时间:2011-03-27 作者:Daymon

我在一个网站上工作,客户需要一个静态页面来显示特定类别的信息。然后在静态信息下,她希望该类别中的所有帖子都列在2列列表中。

所以我需要有一个按字母顺序排列的列表,链接到选定类别中的所有帖子。我有这样做的代码,但我需要能够将列表分解为列。这是我显示帖子的代码。。。

<?php
if (is_page() ) {
$category = get_post_meta($posts[0]->ID, \'category\', true);
}
if ($category) {
  $cat = get_cat_ID($category);
  $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
  $post_per_page = -1; // -1 shows all posts
  $do_not_show_stickies = 1; // 0 to show stickies
  $args=array(
    \'category__in\' => array($cat),
    \'orderby\' => \'title\',
    \'order\' => \'asc\',
    \'paged\' => $paged,
    \'posts_per_page\' => $post_per_page,
    \'caller_get_posts\' => $do_not_show_stickies
  );
  $temp = $wp_query;  // assign orginal query to temp variable for later use   
  $wp_query = null;
  $wp_query = new WP_Query($args); 
  if( have_posts() ) : 
        while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
        <div <?php post_class() ?> id="post-<?php the_ID(); ?>">
        <_li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to          <?php the_title_attribute(); ?>"><?php the_title(); ?></a><_/li>
我知道我的HTML技能不是最好的,但这里是整个模板页面。。。

https://gist.github.com/889340

3 个回复
最合适的回答,由SO网友:t31os 整理而成

Updated answer:
使用两个浮动列表来模拟列,方法与之前相同。

<?php
/*
Template Name: PageOfPosts
*/

get_header(); ?>

<div id="content">
    <div class="t">
        <div class="b">
            <div class="l">
                <div class="r">
                    <div class="bl">
                        <div class="br">
                            <div class="tl">
                                <div class="tr">
                                    <div class="pad">

                                        <?php while( have_posts() ) : the_post(); ?>

                                        <?php 
                                        $category = get_post_meta( get_the_ID(), \'category\', true); 
                                        $img_style = \'style="width:606;height:34;position: absolute; padding-top:1px; padding-left: 2px; z-index:9999; background: no-repeat;"\';
                                        ?>

                                        <div class="post" id="post-<?php the_ID(); ?>">

                                            <h1><?php the_title(); ?></h1>
                                            <img src="../wp-content/themes/DD4L/images/leafhr.png" <?php? echo $img_style;?>>
                                            <br />

                                            <div class="entry">
                                                <?php the_content(); ?>
                                                <?php wp_link_pages(array(\'before\' => \'Pages: \', \'next_or_number\' => \'number\')); ?>
                                            </div>

                                            <?php edit_post_link(\'Edit this entry.\', \'<p>\', \'</p>\'); ?>

                                        </div>

                                        <?php endwhile; ?>

                                        <br /><br />

                                        <?php if( !empty( $category ) ) : ?>

                                        <?php
                                        $args = array(
                                            \'orderby\' => \'title\',
                                            \'order\' => \'asc\',
                                            \'nopaging\' => true,
                                            \'ignore_sticky_posts\' => true,
                                            \'tax_query\' => array(
                                                array(
                                                    \'taxonomy\' => \'category\',
                                                    \'terms\' => array( $category ),
                                                    \'field\' => \'slug\'
                                                )
                                            )
                                        );
                                        $category_query = new WP_Query( $args );
                                        ?>

                                        <?php if( $category_query->have_posts() ) :  ?>

                                        <?php
                                        $total = $category_query->post_count;
                                        $quart = $total / 4;

                                        if( floor( $quart ) != $quart )
                                            $quart = ceil( $quart );
                                        $counter = 0;
                                        ?>

                                        <div class="float-container">
                                            <ul class="alignleft">
                                            <?php while( $category_query->have_posts() ) : $category_query->the_post(); $counter++; ?>

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

                                            <?php if( $quart == $counter ) : $counter = 0; ?>
                                            </ul>

                                            <ul class="alignleft">
                                            <?php endif; ?>

                                            <?php endwhile; ?>
                                            </ul>

                                            <div class="clear"></div>
                                        </div>

                                        <?php endif; ?>

                                        <?php endif; ?>

                                    </div>
                                    <div class="clear"></div>

                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<?php get_sidebar(); ?>
<?php get_footer(); ?>
有关以前的注释和代码,请参见编辑修订。

SO网友:Chris_O

无需仔细查看代码,只需想一想,就可以为每一列设置一个新的WP查询。

在args中,设置“posts\\u per\\u page”=>10,或者设置希望在每列中显示多少个post permalinks。为列指定一个ul或div类,并将它们浮动到css中。

SO网友:noel saw

您还可以使用列表类别插件,该插件将允许您在任何页面或帖子中插入短代码,以按类别或标记显示匹配的帖子。您可以指定顺序排序、隐藏/显示摘录等。

下载:http://wordpress.org/extend/plugins/list-category-posts/

完整命令列表:http://foro.picandocodigo.net/discussion/251/list-category-posts-documentation/

结束

相关推荐

Authors list Pagination?

WordPress有一个内置功能,可以显示网站所有作者的列表。但是没有显示他们的头像的选项,所以如果你有作者,你真正得到的只是一个链接到作者页面的文本列表。php文件在您的主题中,即。因此,打开互联网,我找到了这本不错的教程bavotasan.com 用一小段代码似乎就能做到这一点。在我的网站上,所有用户都可以写文章,贡献者的名单很长。有可能设定10 users for page ? 使用此解决方案:将结果集分页自$wpdb->get_results()我确实为作者编写了如下代码列表函数: f