wordpress如何使用wp_rewrite实现自定义伪静态,非301重定向。


今天,想通过wordpress实现

http://hcsem.com/a?h-1

伪静态为

http://hcsem.com/a-1.html

找了很多资料,终于搞定。

只需要在functions.php文件中添加如下代码即可:

wordpress如何使用wp_rewrite实现自定义伪静态,非301重定向。
add_filter( 'rewrite_rules_array','my_insert_rewrite_rules' );
add_filter( 'query_vars','my_insert_query_vars' );
add_action( 'wp_loaded','my_flush_rules' );

// flush_rules() if our rules are not yet included
function my_flush_rules(){
    $rules = get_option( 'rewrite_rules' );
    
    if ( ! isset( $rules['a-(.*).html$'] ) ) {
        global $wp_rewrite;
           $wp_rewrite->flush_rules();
    }
}

// Adding a new rule
function my_insert_rewrite_rules( $rules )
{
    $newrules = array();
    $newrules['a-(.*).html$'] = 'index.php?pagename=a&h=$matches[1]';
    return $newrules + $rules;
}

function my_insert_query_vars( $vars )
{
    array_push($vars, 'h');
    return $vars;
}
wordpress如何使用wp_rewrite实现自定义伪静态,非301重定向。

如何在page-a里面获取到h值呢?复制下面代码即可:

<? echo $wp_query->query_vars['h']; ?>

 




本文转自黄聪博客园博客,原文链接:http://www.cnblogs.com/huangcong/p/3762847.html,如需转载请自行联系原作者

上一篇:jQuery命名空间和自定义插件的的多种方法


下一篇:《jQuery、jQuery UI及jQuery Mobile技巧与示例》——9.8 技巧:指定自定义的过渡动画