包含特定类别帖子的页面

时间:2014-06-29 16:55:20

标签: wordpress wordpress-plugin wordpress-theming

我需要选项来构建一个显示特定类别的所有帖子的页面。 我知道,显示所有类别的帖子都可以通过wordpress开箱即用。但我需要有可能提供有关所有帖子的一些信息。

我知道有一个名为"列表类别帖子的插件" (http://wordpress.org/plugins/list-category-posts/)。它有效,但它只显示帖子的链接。我需要完整的帖子(就像它们显示在"博客页面")。

2 个答案:

答案 0 :(得分:0)

如果您需要对结果“做某事”,请查看

query_posts

通过http://codex.wordpress.org/Function_Reference/query_posts

这是一个草图,我认为使用自定义循环来满足您的需求。可以根据需要通过模板中的简单逻辑插入:

// this sets up the filter parameters for a category id some_cat_id sorting asc

$args = array(
    'cat'      => $some_cat_id,
    'order'    => 'ASC'
);

// The query is applied via a conditional
if($some_conditional) { // for what ever reason we use the filter+args
    query_posts( $args );
    // this is also an opportunity to "do stuff" before the loop/output
}

// The Loop (simple example)
while ( have_posts() ) : 
    the_post();
    echo '<li>';
    the_title();
    echo '</li>';
endwhile;

// Reset Query
wp_reset_query();

作为WP用户长期以来,我不惜一切代价避免使用插件,而不是编写可持续代码。插件是一个失败点,一些最大的插件工厂只有糖包装的安全问题。

使用查询“过滤”通过条件的自定义循环是惊人的,并且此模式可以扩展到类别,搜索,标签和元键:值对。

此外,通过理解循环,可以以易于维持的方式控制格式和输出。一些插件逻辑很可怕且效率很低,因此在性能和安全性很重要时,请始终调查所有插件。

答案 1 :(得分:0)

我发现这是最简单的方法:

<?php query_posts('cat=25&showposts=3'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

//You can change up the format below any way you'd like. 
  <li class="homeblock" style="max-width:400px;">
        <div class="entry-thumbnail">
            <?php the_post_thumbnail(); ?> 
        </div>
        <div class="contentbox"><?php the_excerpt(); ?> </div>
    </li>
<?php endwhile; endif; ?>

您可以将其添加到主题模板文件中,您需要更改的是您尝试从中获取帖子的类别的类别ID。例如,如果您的类别ID是&#39; 114&#39;并且您想要显示9个帖子,它们将如下所示:

<?php query_posts('cat=114&showposts=9'); ?>

如果您需要向帖子添加更多信息,则应考虑使用自定义字段来执行此操作。查看名为Advanced Custom Fields的插件。

以下是循环中使用的自定义字段的示例:

<?php query_posts('cat=25&showposts=3'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> 
  <li class="homeblock" style="max-width:400px;">
    <div class="entry-thumbnail">
        <?php the_post_thumbnail(); ?> 
    </div>
    <div class="contentbox"><?php the_excerpt(); ?> </div>              
    <?php $article_link=get_post_meta($post->ID, 'article-link', true);?>
    <?php if ( $article_link ) : ?>
    <a href="<?php  echo $article_link ?>" class="more-link"> </a>
    <?php else : ?>
    <a href="<?php the_permalink(); ?>" class="more-link"> </a> 
    <?php endif; ?> 
    </li>
<?php endwhile; endif; ?>

在上面的例子中,如果自定义字段&#39; article-link&#39;有一个值,那么该值(一个URL)被用作链接中的href,而不是文章的永久链接。

希望我有所帮助!