我在我的 Wordpress 主题中实现了基于类别的数字分页:
到目前为止,我所做的是创建一个带有分页摘录列表的自定义页面模板。一旦用户单击摘录以查看完整文章,我还想对显示的返回文章列表进行分页。
据我了解,这是在主题的“single.php”中实现的,尽管我可能错了。
分页适用于我的自定义模板,但是当我尝试在 single.php 中实现自定义查询时,我认为分页试图在文章本身中找到下一页,这不是我想要实现的(因为它没有t 存在)。我想简单地对所有返回的文章进行分页,以便用户可以从该类别中的一篇文章导航到下一篇和上一篇文章到下一篇。
我已经阅读了一些关于下一个/上一个链接的内容,但我更愿意使用像Boutros AbiChedid 的这篇博文之类的东西——我为我的自定义页面模板偷了这个想法,这太棒了!
我在主题的“template.php”中制作了这个类的派生类,作为我的自定义主题的分页,它工作得很好,但是在让这个通过返回的单个帖子工作时我错过了一些东西。
我是否应该放弃并使用另一个自定义页面模板,该模板每页显示 1 篇完整文章,我知道我的分页就像魅力一样?我可以这样做,但我想把它做好。这就是目标。
这是我目前在 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 -->
我发现本教程解释了如何通过用“paginate_links”对象替换下一个/上一个链接来调整分页。我似乎无法让它工作。
我知道我需要从 211 主题中添加类似此类的内容到自定义主题的“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] );
}
我将继续编辑这篇文章,直到我弄清楚这一点,除非有人在回答之前做过这件事。