对不起,如果我听起来有点天真...... 我是一个不错的PHP开发人员,最近一直在努力学习wordpress。 任何人都可以告诉我或指向一个教程,告诉我在分页的自定义模板上显示帖子的最佳方式吗?
答案 0 :(得分:0)
由于偶尔(或者大多数情况下,我不确定),如果您只是制作自定义query_posts()
,然后添加分页链接,您可以获得固定链接冲突,从而出现意外的404页面page-slug/page/2
,page-slug/page/3
,page-slug/page/n
,我通常将分页设置为$_GET
参数。
以下是一个示例代码:
<?php
/*
Template Name: Custom Loop Template
*/
get_header();
// Set up the paged variable
$paged = ( isset( $_GET['pg'] ) && intval( $_GET['pg'] ) > 0 )? intval( $_GET['pg'] ) : 1;
query_posts( array( 'post_type' => 'post', 'paged' => $paged, 'posts_per_page' => 1 ) );
?>
<?php if ( have_posts() ) : ?>
<?php while( have_posts() ) : the_post(); ?>
<div id="post-<?php echo $post->ID; ?>" <?php post_class(); ?>>
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<div class="post-excerpt">
<?php the_excerpt(); ?>
</div>
</div>
<?php endwhile; ?>
<?php if ( $wp_query->max_num_pages > 1 ) : ?>
<div class="pagination">
<?php for ( $i = 1; $i <= $wp_query->max_num_pages; $i ++ ) {
$link = $i == 1 ? remove_query_arg( 'pg' ) : add_query_arg( 'pg', $i );
echo '<a href="' . $link . '"' . ( $i == $paged ? ' class="active"' : '' ) . '>' . $i . '</a>';
} ?>
</div>
<?php endif ?>
<?php else : ?>
<div class="404 not-found">
<h3>Not Found</h3>
<div class="post-excerpt">
<p>Sorry, but there are no more posts here... Please try going back to the <a href="<?php echo remove_query_arg( 'pg' ); ?>">main page</a></p>
</div>
</div>
<?php endif;
// Make sure the default query stays intact
wp_reset_query();
get_footer();
?>
这将创建一个名为Custom Loop Template
的自定义页面模板,并将显示最新的帖子,每页1个。它将从底部开始具有基本分页,从1开始到该查询的最大页数。
当然,这只是一个非常基本的例子,但它应该足以让你想出其余部分。