使用wordpress制作存档页面

时间:2015-09-16 11:10:11

标签: php wordpress pagination

我想创建一个存档页面,按此顺序显示帖子:

post_title | post_date | post_category

当然,这应该是可点击链接到帖子的,或者如果你点击一个类别,它应该链接到一个类别

到目前为止我有什么:

    $args = array(
        'post_type' => 'post'
    );

    $post_query = new WP_Query($args);

    if($post_query->have_posts() ) {
      while($post_query->have_posts() ) {
        $post_query->the_post();
        ?>
        <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Link naar <?php the_title_attribute(); ?>"><?php the_title(); ?></a> | <?php the_date();?> | <?php get_the_category;?></h2>
        <?php
      }
    }
    ?>

我知道&#34; the_permalink()&#34;给我发布帖子和&#34; the_title&#34;给了我头衔。

此代码仅显示最后10个帖子而不是3000个。

另一个问题是日期只出现在10个帖子中的2个。

该类别根本没有显示出来。

这是我第一次真正尝试使用wordpress,也许我真的错误地做错了,所以我希望你们都能帮助我。提前谢谢。

2 个答案:

答案 0 :(得分:2)

  

此代码仅显示最后10个帖子而不是3000个。

这是正常的Wordpress行为。默认情况下,如果您未将posts_per_pagenumberposts参数指定为get_posts,则会使用设置&gt;中设置的值。读。所以将你的args改为这个(-1意味着它会显示你的所有帖子 - 如果你真的需要它的话就改为3000):

$args = array(
  'post_type' => 'post',
  'numberposts' => -1
);
  

另一个问题是日期只出现在10个帖子中的2个。

奇怪的是,这是一个默认的Wordpress行为(在我看来有点令人困惑)。如果您查看the_date文档页面上的特别说明,它会告诉您:

  

当在同一天发布的网页上有多个帖子时,   the_date()仅显示第一篇文章的日期

如果您希望克服此问题并显示所有帖子的日期,则需要使用get_the_date(它会返回日期,因此您需要echo它。)

  

该类别根本没有出现。

你错过了使用get_the_category - 它返回一个与帖子相关联的类别对象数组,而不是echo任何东西。要显示指向当前帖子类别的链接,您需要使用get_the_categoryget_category_link的组合:

$category = get_the_category();
echo '<a href="' . get_category_link($category[0]->cat_ID) .'">' . $category[0]->cat_name . '</a>';

答案 1 :(得分:1)

您可以像这样控制帖子数量(比如50):

$args = array(
    'post_type' => 'post',
    'posts_per_page' => 50
);

显示日期和类别使用此:

<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Link naar <?php the_title_attribute(); ?>"><?php the_title(); ?></a> |
<?php
    echo get_the_date();
    echo ' | ';
    $category_list = get_the_category_list( ', ' );
    if ( $category_list )
        echo $category_list;
?>
</h2>

希望有所帮助。如果没有随意问!