我要做什么:
WP_Query
在single-custom-post-type.php模板文件中设置分页
我做了什么
1)创建了一个称为“作者”的帖子类型。该帖子类型中的每个帖子都是一位作者。
2)标准编辑帖子屏幕页面包含一个下拉列表,其中列出了作者自定义帖子类型的所有帖子(作者)。
3)创建了single-authors.php模板,该模板使用下拉菜单中的作者元数据查询所有帖子,因此结果是分配了相同作者(类似于存档)的帖子列表:
<?php
// set the "paged" parameter (use 'page' if the query is on a static front page)
global $paged;
/*We need this here to add and maintain Pagination if Template is assigned to Front Page*/
if ( get_query_var( 'paged' ) ) {
$paged = get_query_var('paged');
} elseif ( get_query_var( 'page' ) ) {
$paged = get_query_var( 'page' );
} else {
$paged = 1;
}
$args = array(
'posts_per_page' => 10,
'meta_key' => 'author_select',
'meta_value' => $author_id,
'paged' => $paged,
);
$temp = $wp_query;
$wp_query = NULL;
$wp_query = new WP_Query($args);
?>
<?php if( $wp_query->have_posts() ) : ?>
<?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
<?php // Successfully outputs the results of the above query, so I've omitted the code from this example. ?>
<?php endwhile; ?>
<div class="single_navigation">
<?php if( get_adjacent_post( false, '', true ) ) { ?>
<span class="prev"><?php previous_post_link( '< %link' ) ?></span>
<?php } ?>
<?php if( get_adjacent_post( false, '', false ) ) { ?>
<span class="next"><?php next_post_link( '%link >' ) ?></span>
<?php } ?>
</div><!--/single navigation-->
<?php endif; ?>
<?php
$wp_query = null;
$wp_query = $temp;
wp_reset_query();
?>
我所坚持的
分页链接不会出现。我进行了一些研究,发现它们使用了$wp_query
变量,但是,当我将查询变量更改为时$wp_query
,出现了链接,但是当单击时却没有执行任何操作。
知道我要去哪里错了吗?
编辑:
为了回答您的一些问题,我的查询成功输出了我正在查询的帖子,$ author_id已经具有我未包含在此代码段中的值。同样,我在while循环中省略了实际的内容输出,因为那不是问题。问题是我需要对单个帖子中已经存在的内容进行分页。
此功能的目的是允许帖子具有自定义作者(内置用户系统之外),并且此模板的目的是输出给定作者(已在工作)的所有帖子。
the_title()
'meta_value' => $author_id
从下拉列表中提到?通过下拉列表选择每位作者时,前十条帖子显示正确吗?
$author_query->have_posts()
返回true
的内容$author_query
确实包含任何帖子吗?