How to create the pseudo static rules of the page I created

You need a rewrite rule! First things first let’s get that in place:

function wpse_226796_rewrite_rule( $rules ) {
    global $wp_rewrite;

    // http://php.net/manual/en/reference.pcre.pattern.syntax.php
    $regex = 'postcomment-page/([1-9][0-9]*)-paged-([1-9][0-9]*)\.html';

    $query = sprintf(
        '%s?pagename=postcomment-page&postid=%s&paged=%s',
        $wp_rewrite->index,
        $wp_rewrite->preg_index( 1 ),
        $wp_rewrite->preg_index( 2 )
    );

    // Push our rule to the top of $rules
    return array( $regex => $query ) + $rules;
}

add_filter( 'page_rewrite_rules', 'wpse_226796_rewrite_rule' );

Next we need to register our query vars so that WordPress correctly parses the “pretty” permalink into our query:

function wpse_226796_query_vars( $vars ) {
    // "paged" is already a core public query var
    $vars[] = 'postid';

    return $vars;
}

add_filter( 'query_vars', 'wpse_226796_query_vars' );

Now we need to “flush” these rules to the database cache – go to Settings > Permalinks and click Save.

Now a URL like postcomment-page/237-paged-2.html will give:

<?php echo get_query_var( 'postid' ); // 237 ?>
<?php echo get_query_var( 'paged' ); // 2 ?>

Leave a Comment