Answers:
当WordPress使用这样的分页时$paged
,会键入一个查询变量。因此,第1页是$paged=1
,第15页是$paged=15
。
您可以使用以下代码获取此变量的值:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
获取总页数比较麻烦。首先,您必须计算数据库中的所有帖子。然后过滤发布的依据(相对于草稿,计划的,垃圾分类等)。 然后,您必须将此计数除以您希望在每个页面上显示的帖子数:
$total_post_count = wp_count_posts();
$published_post_count = $total_post_count->publish;
$total_pages = ceil( $published_post_count / $posts_per_page );
我尚未对此进行测试,但是您可能需要以与获取$posts_per_page
相同的方式$paged
(使用get_query_var()
)进行获取。
$wp_query
我完全忘了在那里: - /
found_posts
属性“找到的与当前查询参数匹配的帖子总数”,wp_count_posts()有点麻烦。
您可以用一行代码来完成此操作,但是再一次,您可能希望将代码添加到其他位置,因此函数通常更有用。
function current_paged( $var = '' ) {
if( empty( $var ) ) {
global $wp_query;
if( !isset( $wp_query->max_num_pages ) )
return;
$pages = $wp_query->max_num_pages;
}
else {
global $$var;
if( !is_a( $$var, 'WP_Query' ) )
return;
if( !isset( $$var->max_num_pages ) || !isset( $$var ) )
return;
$pages = absint( $$var->max_num_pages );
}
if( $pages < 1 )
return;
$page = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
echo 'Page ' . $page . ' of ' . $pages;
}
注意:代码可以进入您的功能文件。
只需在要显示“ y的第x页”消息的位置调用该函数,例如。
<?php current_paged(); ?>
如果您需要代码来使用自定义查询,即。您使用创建的一个WP_Query
,然后只需将保存查询的变量名传递给该函数。
示例不存在的查询:
$fred = new WP_Query;
$fred->query();
if( $fred->have_posts() )
... etc..
使用先前发布的功能为定制查询获取当前页面。
<?php current_paged( 'fred' ); ?>
如果您只是想完全忘记自定义查询支持,而您正在寻找单行代码,那么应该这样做。
<?php echo 'Page '. ( get_query_var('paged') ? get_query_var('paged') : 1 ) . ' of ' . $wp_query->max_num_pages; ?>
希望有帮助.. :)
$var
是一个查询:if( is_a( $var, 'WP_Query' ) )
如果它是一个查询对象,则将返回true。
如上所述,一种获取最大页面数的简单方法是:
global $wp_query
$wp_query->max_num_pages
适用于我所有存档页面的一个选项是:
$paged_maxnum = $GLOBALS['wp_query']->max_num_pages;
if ( $paged_maxnum > 1 ) {
$paged_current_page = get_query_var( 'paged' ) ? intval( get_query_var( 'paged' ) ) : 1;
$title_page_nrs = 'page nr ' . $paged_current_page . ' of ' . $paged_maxnum;
echo '<title>' . get_the_archive_title( '', false ) . ' - ' . $title_page_nrs . ' | Your Website Name</title>';
} else {
echo '<title>' . get_the_archive_title( '', false ) . ' | Your Website Name</title>';
}
首先查询此页面中是否有多个页面wp_query
,然后将标题与当前页面通过连接在一起$paged_current_page
,将总计页面与连接在一起$title_page_nrs
。最后echo
。如果第一页以上,则else
如果未分页。这进入我的archive.php或此类模板。它产生:
<title>Taxonomy title - page nr 1 of 4 | Your Website Name</title>
要么
<title>Taxonomy title | Your Website Name</title>
$wp_query->max_num_pages
?