如何在WordPress中使用重写规则更改URL

时间:2017-09-05 作者:Komal khan

我有一个名为aircraft-gallery 我在这个页面上显示了数据库中的数据,它工作正常。

我有另一个页面名为aircraft-gallery-class 我正在发送数据?id 变量并使用GET[\'id\']接收该数据,然后将该数据发送到数据库以获取结果,这样也可以正常工作。

这是我在WordPress函数中的控制器,用于获取id

public function view_air_crafts_by_class(){
        //var_dump(get_query_var(\'id\')); //working fine
        //die();
        return $this->air_craft_model->get_air_craft_by_class($_GET[\'id\']);
    }
现在我的问题很简单,我有这个URL

http://example.com/aircraft-gallery/aircraft-gallery-class/?id=VIP Airliner

我想要这个URL

http://example.com/aircraft-gallery/VIP-Airliner

我在函数中使用这些代码行。php文件转换URL,但它不起作用,我不知道为什么

add_filter( \'query_vars\', \'wpa5413_query_vars\' );
function wpa5413_query_vars( $query_vars )
{
    $query_vars[] = \'id\';
    return $query_vars;
}

add_action( \'init\', \'wpa5413_init\' );
function wpa5413_init()
{
    add_rewrite_rule(
        \'aircraft-gallery-class/([^/]+)/?\',
        \'index.php?pagename=aircraft-gallery-class&id=$matches[1]\',
        \'top\' );
}
我已经尝试了社区建议的许多代码,但都不起作用。

任何帮助都将不胜感激。每次更新函数时,我都会单击保存永久链接。php文件。谢谢

1 个回复
SO网友:Tom J Nowell

问题是id 不再是$_GET 变量,而不是WP查询变量,因此使用get_query_var 改为函数

结束

相关推荐

WordPress URLs without posts

我们正在开发基于WordPress的更大系统,但WordPress只用于“静态”内容,系统的主要部分应该是使用外部API和显示数据。我的观点是:我是否能够告诉URL重写不要对某些URL使用WordPress内部系统,而使用其他系统?E、 g。mysite.com/news/news-title 会显示帖子,但是mysite.com/customcontent/anotherlink 将调用某种机制从API加载数据并显示它。我不知道WordPress是否能做到这一点。。谢谢你的观点。