修改Wordpress函数get_pagenum_link

时间:2012-07-30 17:39:38

标签: php wordpress-plugin wordpress-theming wordpress

是否有任何可能性我可以更改以下链接:

  

xxx.com/page/2

  

xxx.com/?paged=2

这里是当前的功能:

function get_pagenum_link($pagenum = 1) {
    global $wp_rewrite;

    $pagenum = (int) $pagenum;

    $request = remove_query_arg( 'paged' );

    $home_root = parse_url(home_url());
    $home_root = ( isset($home_root['path']) ) ? $home_root['path'] : '';
    $home_root = preg_quote( trailingslashit( $home_root ), '|' );

    $request = preg_replace('|^'. $home_root . '|', '', $request);
    $request = preg_replace('|^/+|', '', $request);

    if ( !$wp_rewrite->using_permalinks() || is_admin() ) {
        $base = trailingslashit( get_bloginfo( 'url' ) );

        if ( $pagenum > 1 ) {
            $result = add_query_arg( 'paged', $pagenum, $base . $request );
        } else {
            $result = $base . $request;
        }
    } else {
        $qs_regex = '|\?.*?$|';
        preg_match( $qs_regex, $request, $qs_match );

        if ( !empty( $qs_match[0] ) ) {
            $query_string = $qs_match[0];
            $request = preg_replace( $qs_regex, '', $request );
        } else {
            $query_string = '';
        }

        $request = preg_replace( "|$wp_rewrite->pagination_base/\d+/?$|", '', $request);
        $request = preg_replace( '|^index\.php|', '', $request);
        $request = ltrim($request, '/');

        $base = trailingslashit( get_bloginfo( 'url' ) );

        if ( $wp_rewrite->using_index_permalinks() && ( $pagenum > 1 || '' != $request ) )
            $base .= 'index.php/';

        if ( $pagenum > 1 ) {
            $request = ( ( !empty( $request ) ) ? trailingslashit( $request ) : $request ) . user_trailingslashit( $wp_rewrite->pagination_base . "/" . $pagenum, 'paged' );
        }

        $result = $base . $request . $query_string;
    }

    $result = apply_filters('get_pagenum_link', $result);

    return $result;
}

来自wordpress-includes / link-template.php

如何修改功能而不在核心中编辑它?

由于

1 个答案:

答案 0 :(得分:0)

从源代码来看,您应该只能禁用固定链接以使其像这样进行分页。

//start of function code 
// ...

if ( !$wp_rewrite->using_permalinks() || is_admin() ) {
    $base = trailingslashit( get_bloginfo( 'url' ) );
    if ( $pagenum > 1 ) {
        $result = add_query_arg( 'paged', $pagenum, $base . $request );
    } else {
        $result = $base . $request;
    }
}
//rest of function code 
// ...

Docs for add_query_arg()