Rewrite Page Parameters

时间:2019-01-24 作者:Kom

我有个呼叫“城市”

http://localhost/wordpress/city/
它通过url id从mysql获取详细信息,如

http://localhost/wordpress/city/?id=paris
我想改变一下

http://localhost/wordpress/city/paris
wordpress中城市页面的真正链接是

http://localhost/wordpress/index.php?p=5
我正在尝试在htaccess中添加RewriteRule,但它不起作用,我也在尝试add_rewrite_rule 但它不起作用

add_action( \'init\', \'add_mypage_rule\' );

function add_mypage_rule(){
add_rewrite_tag("%id%", \'(\\d+)\');
add_rewrite_rule(\'^city/([^/]*)/?\',\'index.php?p=5&id=$matches[1]\',\'top\');
}

1 个回复
SO网友:Milo

如果city 属于page post类型,则您的规则应为:

add_rewrite_rule(
    \'^city/([^/]*)/?\',
    \'index.php?pagename=city&id=$matches[1]\',
    \'top\'
);
或:

add_rewrite_rule(
    \'^city/([^/]*)/?\',
    \'index.php?page_id=5&id=$matches[1]\',
    \'top\'
);
使用p, 查询将假定帖子类型为post, 不page.

此外,如果您的代码使用$_GET[\'id\'] 要获取该值,这将不再适用于重写规则。您需要使用get_query_var(\'id\') 相反如果您无权访问代码,可以在代码尝试获取该值之前激发的操作中设置它:

function wpd_set_id() {
    if( false !== get_query_var( \'id\', false ) ){
        $_GET[\'id\'] = get_query_var( \'id\' );
    }
}
add_action( \'parse_query\', \'wpd_set_id\' );
我还建议使用比id!

相关推荐

Redirect htaccess

我需要帮助重定向我的页面。例如,我有网站https://example.com. 我需要将内容从https://example.com 到https://example.com/blog. 这不是问题,我通过更改主页URL来做到这一点。这很有效。但现在我需要添加来自旧的重定向https://example.com 到https://xmpl.com.我想用。htaccess,但这不起作用。你们能帮帮我吗?以下是我对此的一些尝试,但两者都不起作用。RewriteEngine On RewriteRu