如何在URL中获取分页链接的类别/标签?

时间:2011-05-16 作者:Zoolander

我在函数中有一个自定义分页函数。php。如果我位于URL:http://mysite.com/tag/dogs, 下一个链接当前仅包含/page/2。

我怎样才能使它看起来像/标签/狗/页面/2?

下面是我正在使用的函数:(最初发布here)

function pagination( $query, $baseURL = \'\' ) {
    if ( ! $baseURL ) $baseURL = get_bloginfo( \'url\' );
    $page = $query->query_vars["paged"];
    if ( !$page ) $page = 1;
    $qs = $_SERVER["QUERY_STRING"] ? "?".$_SERVER["QUERY_STRING"] : "";
    // Only necessary if there\'s more posts than posts-per-page
    if ( $query->found_posts > $query->query_vars["posts_per_page"] ) {
        echo \'<ul class="paging">\';
        // Previous link?
        if ( $page > 1 ) {
            echo \'<li class="previous"><a href="\'.$baseURL.\'page/\'.($page-1).\'/\'.$qs.\'">« previous</a></li>\';
        }
        // Loop through pages
        for ( $i=1; $i <= $query->max_num_pages; $i++ ) {
            // Current page or linked page?
            if ( $i == $page ) {
                echo \'<li class="active">\'.$i.\'</li>\';
            } else {
                echo \'<li><a href="\'.$baseURL.\'page/\'.$i.\'/\'.$qs.\'">\'.$i.\'</a></li>\';
            }
        }
        // Next link?
        if ( $page < $query->max_num_pages ) {
            echo \'<li><a href="\'.$baseURL.\'page/\'.($page+1).\'/\'.$qs.\'">next »</a></li>\';
        }
        echo \'</ul>\';
    }
}
任何帮助都将不胜感激。谢谢

1 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

为什么不能使用核心功能previous_posts_link()/next_posts_link()posts_nav_link(), 所有这些都已经解释了分类法归档上下文?

编辑:

我想我现在明白你的问题了。您需要分页链接,而不是上一页/下一页链接。

WordPress还具有分页链接的本机功能:paginate_links() (Codex ref).

以下是我如何在自己的主题中使用此函数:

function oenology_paginate_archive_page_links( $type = \'plain\', $endsize = 1, $midsize = 1 ) {
    global $wp_query, $wp_rewrite;  
    $wp_query->query_vars[\'paged\'] > 1 ? $current = $wp_query->query_vars[\'paged\'] : $current = 1;

    // Sanitize input argument values
    if ( ! in_array( $type, array( \'plain\', \'list\', \'array\' ) ) ) $type = \'plain\';
    $endsize = (int) $endsize;
    $midsize = (int) $midsize;

    // Setup argument array for paginate_links()
    $pagination = array(
        \'base\' => @add_query_arg(\'page\',\'%#%\'),
        \'format\' => \'\',
        \'total\' => $wp_query->max_num_pages,
        \'current\' => $current,
        \'show_all\' => false,
        \'end_size\' => $endsize,
        \'mid_size\' => $midsize,
        \'type\' => $type,
        \'prev_text\' => \'&lt;&lt;\',
        \'next_text\' => \'&gt;&gt;\'
    );

    if( $wp_rewrite->using_permalinks() )
        $pagination[\'base\'] = user_trailingslashit( trailingslashit( remove_query_arg( \'s\', get_pagenum_link( 1 ) ) ) . \'page/%#%/\', \'paged\' );

    if( !empty($wp_query->query_vars[\'s\']) )
        $pagination[\'add_args\'] = array( \'s\' => get_query_var( \'s\' ) );

    echo paginate_links( $pagination );
}

结束

相关推荐

WP_QUERY是哪种对象类型?

当我尝试从WP\\U查询返回post\\U标题值时,出现此错误:**Fatal error:** Cannot use object of type WP_Query as array 代码如下:$query = new WP_Query( array( \'meta_key\' => \'Old ID\', \'meta_value\' => $atts[\'oldid\'] ) ); return $query[\'post_title\']; 在此查询之后,如