Problems with rewrite rule

时间:2012-06-11 作者:zilvinas

我真的想不出来。

我想做的是,这个URIhttp://www.hotels-lithuania.net/index.php?page=76&type=hotels&id=1 转换为http://www.hotels-lithuania.net/item/hotels/1.事实上,我读了很多页,我得出的结论是:

add_action( \'init\', \'wpa5413_init\' );
function wpa5413_init()
{
    add_rewrite_rule(
        \'item/([^/]+)/([^/]+)?\',
        \'index.php?page=76&type=$matches[1]&id=$matches[2]\',
        \'top\' );
}
add_filter( \'query_vars\', \'wpa5413_query_vars\' );
function wpa5413_query_vars( $query_vars )
{
    $query_vars[] = \'type\';
    $query_vars[] = \'id\';
    return $query_vars;
}
如果我进入立陶宛酒店。net/item/hotels/1到我的浏览器,它将切换到hotels立陶宛。净值/项目/和ofc未显示项目。

重写分析器插件的屏幕:i.stack。伊姆古尔。com/AgNoq。巴布亚新几内亚

抱歉,超链接不好,但我是新来的,无法正确发布ir

编辑:我不知道为什么,但我的db中有guid值localhost/hotel/?page_id=76 因此,我的最终rewrite\\u规则如下所示:

add_action( \'init\', \'wpa5413_init\' );
function wpa5413_init()
{
    add_rewrite_rule(
        \'item/([^/]+)/([^/]+)?\',
        \'index.php?page_id=76&itemType=$matches[1]&itemId=$matches[2]\',
        \'top\' );
}
add_filter( \'query_vars\', \'wpa5413_query_vars\' );
function wpa5413_query_vars( $query_vars )
{
    $query_vars[] = \'itemType\';
    $query_vars[] = \'itemId\';
    return $query_vars;
}
并将这些变量用于:

global $wp;
$type = $wp->query_vars[\'itemType\'];
$id = $wp->query_vars[\'itemId\'];

1 个回复
SO网友:Milo

我怀疑您与查询变量存在冲突。id 已经是WordPress查询变量,并且type 是保留字。您应该使用您知道在core和任何您可能使用的插件中唯一的变量,通过在所有内容前加前缀,例如zilvinas_idzilvinas_type.

结束

相关推荐

Permalinks and page store

我把这个贴在stackoverflow上,他们说我可以在这里试试-我的网站上安装了wordpress。在那个网站的一个子文件夹下,我安装了oscommerce系统作为在线商务商店。我在wordpress上激活了permalinks,但现在每次我试图联系商店管理部门时,我都会得到wordpress中找不到的页面。如果我禁用永久链接,我可以再次访问,你能帮我吗?谢谢你,丹尼