How enable .html in wordpress pagination

2019-09-01 19:21发布

问题:

I have to use wordpress with .html extension, and i am using plugin to make .html extension at end of URL, that is working fine, but my pagination becoming failed, it makes URL as /page-url.html/page/2 that goes on Page not found, how can I enable .html in pagination ?

Thanks in advance.

By the way, i did some work like

add_filter('get_pagenum_link', function($url) {
$html = strrpos( $url, '.html' );
if( $html > 0 ){
    $base_link = substr( $url, 0, strrpos( $url, '/page' ) );
    $page_number = basename($url);
    $new_url = $base_link.'/?iter='.$page_number;
    return $new_url;
}
else{
    return $url;    
}
});

but how can i tell wordpress the page link of pagination should follow this ? i mean active and inactive links of pagination

回答1:

I have done this task by adding filter for URL of pagination, and it works fine with .html extension. Following is code to run pagination with .html extension.

add_filter('get_pagenum_link', function($url) {
$current_url_arr = explode("?", $_SERVER['REQUEST_URI']);   
$current_url = $current_url_arr[0];
$html = strrpos( $url, '.html' );
$page_number = 1;

//$page_number = $_GET['iter'] + 1; 

if( $html > 0 ){
    $basename = basename($url);
    $page_number = substr( $basename, 0, strrpos( $basename , '?') );


    $new_url = $current_url.'/?iter='.$page_number;
    return $new_url;
}
else{
    return $url;    
}
});

and on above the query parameter, write the following code

if( $_GET['iter'] > 0 ){
    $paged = $_GET['iter']; 
}

Enjoy!!!