it-swarm.cn

使用WordPress 3.0创建“所有帖子”或“档案”页面?

我想在 Ocean Bytes博客上创建“所有帖子”页面 其中包含迄今为止所有帖子标题的无序列表,每个标题超链接到其博客文章。

似乎有几个插件可以做这样的事情,但是大多数插件都没有列出支持的Wordpress 3.0+,或者他们希望按照年份和月份对博客帖子进行分组,这是不希望的。

对“最佳方式”的任何建议?

谢谢。

3
cpuguru

我最终在Twenty-Ten Themes文件夹中创建了一个名为“allposts-page.php”的页面模板,其中包含以下代码:

<?php
/**
 * Template Name: All Posts
 *
 * A custom page template for displaying all posts.
 *
 * The "Template Name:" bit above allows this to be selectable
 * from a dropdown menu on the edit page screen.
 *
 * @package WordPress
 * @subpackage Twenty_Ten
 * @since Twenty Ten 1.0
 */

get_header(); ?>

  <div id="container">
   <div id="content" role="main">
<h2>Archive of All Posts:</h2>
  <ul>
    <?php wp_get_archives('type=postbypost'); ?>
  </ul>


   </div><!-- #content -->
  </div><!-- #container -->

<?php get_footer(); ?>

然后,我使用WordPress管理系统创建了一个新页面,标题为“所有帖子”,并从下拉列表中选择了“所有帖子”模板。不需要在体内输入任何东西。

生成的页面可以通过以下方式找到:

www.oceanbytes.org/all-posts/

“wp_get_archives”的默认值是“每月”,但我选择了“postbypost”,因为我只想列出长列表中的所有帖子。可以在Wordpress网站上找到更多选项,通过 函数参考/ wp获取存档

3
cpuguru

创建一个新的模板文件并以循环方式执行此操作:

query_posts( array( 'posts_per_page' => -1, 'post_status' => 'publish' ) );
if( have_posts() ):
  echo '<ul>';
  while( have_posts() ):
    the_post();
    echo '<li><a href="';
    the_permalink();
    echo '">';
    the_title();
    echo '</a></li>';
  endwhile;
  echo '</ul>';
endif;
wp_reset_query();

然后只需将该模板用于页面,它就会自动生成页面。有关如何更改查询的更多信息,请查看 codex页面 for query_posts()

3
John P Bloch

“最佳方式”将使用自定义页面模板。就像index.php循环遍历所有帖子一样,您可以运行自定义查询来遍历所有内容,并仅将所需信息(标题,URL)回显到浏览器。

以下是一些用于构建自定义页面模板的好教程:

3
EAMann