single.php的Wordpress分页
我在Wordpress主题中实现了基于类别的数字分页: 到目前为止,我所做的是创建一个带有分页摘录列表的自定义页面模板。一旦用户点击一篇摘录来查看全文,我还想对显示的返回文章列表进行分页 我的理解是,这是在主题的“single.php”中实现的,尽管我可能错了 分页适用于我的自定义模板,但当我尝试在single.php中实现自定义查询时,我认为分页尝试在文章本身中查找下一页,这不是我想要实现的(因为它不存在)。我想简单地对所有返回的文章进行分页,这样用户就可以从这个类别的一篇文章导航到下一篇文章 我已经读了一些关于下一个/上一个链接的文章,但是我更愿意使用这样的东西——我把这个想法偷来作为我的自定义页面模板,这太棒了 我在主题的“template.php”中创建了这个类的一个派生类,作为我自定义主题的分页,它工作得很好,但在通过返回的单个帖子实现这个功能时,我缺少了一些东西 我是否应该放弃并使用另一个自定义页面模板,在我知道我的分页效果很好的情况下,该模板每页显示一篇完整的文章?我可以做到,但我想做对。这就是目标 以下是到目前为止我在single.php中的内容:single.php的Wordpress分页,php,wordpress,pagination,Php,Wordpress,Pagination,我在Wordpress主题中实现了基于类别的数字分页: 到目前为止,我所做的是创建一个带有分页摘录列表的自定义页面模板。一旦用户点击一篇摘录来查看全文,我还想对显示的返回文章列表进行分页 我的理解是,这是在主题的“single.php”中实现的,尽管我可能错了 分页适用于我的自定义模板,但当我尝试在single.php中实现自定义查询时,我认为分页尝试在文章本身中查找下一页,这不是我想要实现的(因为它不存在)。我想简单地对所有返回的文章进行分页,这样用户就可以从这个类别的一篇文章导航到下一篇文
get_header(); ?>
<div id="primary">
<div id="content" role="main">
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>
<?php $wp_query = new WP_Query('category_name=news_and_updates&showposts=1&paged=' . $paged);
while ($wp_query->have_posts()) : $wp_query->the_post();
?>
<?php get_template_part( 'content', 'single' ); ?>
<?php comments_template( '', true ); ?>
<?php endwhile; ?>
<?php if (function_exists("pagination")) {
pagination($wp_query->max_num_pages);
} ?>
</div><!-- #content -->
</div><!-- #primary -->
get_header();?>
我发现这解释了如何通过用“paginate_links”对象替换下一个/上一个链接来调整分页。我就是不能让它工作
我知道我需要从twentyeleven主题向自定义主题的“functions.php”添加类似此类的内容,然后自定义它以使用数字分页,并在single.php或single-content.php中调用它:
if ( ! function_exists( 'twentyeleven_content_nav' ) ) :
/**
* Display navigation to next/previous pages when applicable
*/
function twentyeleven_content_nav( $nav_id ) {
global $wp_query;
if ( $wp_query->max_num_pages > 1 ) : ?>
<nav id="<?php echo $nav_id; ?>">
<h3 class="assistive-text"><?php _e( 'Post navigation', 'twentyeleven' ); ?></h3>
<div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Older posts', 'twentyeleven' ) ); ?></div>
<div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">→</span>', 'twentyeleven' ) ); ?></div>
</nav><!-- #nav-above -->
<?php endif;
}
endif; // twentyeleven_content_nav
/**
* Return the URL for the first link found in the post content.
*
* @since Twenty Eleven 1.0
* @return string|bool URL or false when no link is present.
*/
function twentyeleven_url_grabber() {
if ( ! preg_match( '/<a\s[^>]*?href=[\'"](.+?)[\'"]/is', get_the_content(), $matches ) )
return false;
return esc_url_raw( $matches[1] );
}
如果(!function_存在('twentyeleven_content_nav')):
/**
*显示下一页/上一页的导航(如果适用)
*/
函数twentyeleven_内容导航($nav_id){
全局$wp_查询;
如果($wp\u query->max\u num\u pages>1):?>
我不确定我是否完全理解您想要实现的目标,因此,如果这没有帮助,我向您道歉
从外观上看,您希望在页面中嵌套一个自定义循环。如果您只想自定义一个常规的帖子列表,那么您应该查看archive.php,而不是single.php。有关不同模板类型的详细信息,最简单的形式是,归档页面用于显示多篇帖子(archive.php)单个页面用于显示单个post/page(single.php)
对于页面内的自定义循环,请避免使用$wp_query,因为它用于您正在查看的实际页面并将驱动该页面
对于分页,我同意教程和使用。有了一点CSS,这应该会给你想要的效果
因此,总而言之,查询应该以几乎最简单的形式显示如下内容
$args=array(); // Set $args with whatever parameters for your query
$args['category_name']='news_and_updates';
$args['showposts']=1;
$args['paged']=(get_query_var('paged') ? get_query_var('paged') : 1); // Get the current page, or show page 1.
$search=new WP_Query($args)
if($search->have_posts()) :
while($search->have_posts()) : $search->the_post();
the_title(); // Whatever for displaying each post.
the_excerpt();
endwhile;
/* Pagination - This assumes you have 'pretty permalinks'. */
$ulpn=99999999; // Should be a bigger number than the number of pages you'll ever produce.
$pagination=paginate_links(array(
'base'=>str_replace($ulpn,'%#%',esc_url(get_pagenum_link($ulpn))),
'format'=>'/page/%#%',
'current'=>max(1,get_query_var('paged')),
'total'=>$search->max_num_pages,
'prev_text'=>'<',
'next_text'=>'>',
'type'=>'array')); // There are other parameters you can use to customise this - check the codex using the link above.
if($pagination) { ?>
<div class="pagination"><?php foreach($pagination as $page) { echo $page; } ?></div>
<?php }
else : ?>
<h2>Sorry, no results found</h2>
<p>Try searching, or using the menu to find what you're looking for.</p> // Handle no results with whatever message
endif;
$args=array();//为查询设置带有任何参数的$args
$args['category_name']='news_and_updates';
$args['showposts']=1;
$args['paged']=(get_query_var('paged')?get_query_var('paged'):1);//获取当前页面,或显示第1页。
$search=新的WP\u查询($args)
如果($search->have_posts()):
而($search->have_posts()):$search->the_post();
_title();//显示每篇文章的任何内容。
_摘录();
结束时;
/*分页-这假设您有“相当长的永久链接”*/
$ulpn=9999999;//应该是一个大于您将生成的页面数的数字。
$pagination=paginate_链接(数组(
'base'=>str_replace($ulpn,%#%',esc_url(get_pagenum_link($ulpn)),
'格式'=>'/page/%#%',
“当前”=>max(1,获取查询变量('paged'),
“总计”=>$search->max\u num\u页面,
'上一个文本'=>'',
'type'=>'array');//您还可以使用其他参数来自定义此设置-使用上面的链接检查代码。
如果($pagination){?>
抱歉,未找到任何结果
尝试搜索,或使用菜单查找您要查找的内容。//不处理任何消息的结果
endif;
我不明白。您希望您的分页链接到下一篇/上一篇文章?还是希望分页链接到下一页摘录?