为单个页面创建自定义重写

时间:2020-12-29 作者:Chalkie

我对在wordpress工作很陌生,但我相处得很顺利。

我已经建立了一个网站,从rapid api下载外部JSON数据,然后在我的设计中显示它们。数据是关于足球/足球队的。

我已经设置了一个页面url/team-info/?id=123

在这里,它从url获取id并从json下载特定团队的信息。

这一切都很完美,但我必须使用PHP代码段插件才能正常工作。

然后我想创建一个重写规则来更改它url/team-info/?id=123url/team-info/123

我最初尝试直接编辑htaccess文件,但这会引发各种各样的500个错误,所以我将原始文件放回原处,保持原样。

然后,我看到了很多关于在“init hook”中添加类似so的代码的帖子,这是我在wordpress中不熟悉的,回到2013年和2014年,我相信这些都会过时,所以我正在寻找指导。

到目前为止,我已经了解到有问题的页面是/?page_id=735 那么?page_id=735&id=123 同样有效。

我期待着您对此事的指导,如果您有任何进一步的问题,请告诉我。

1 个回复
SO网友:Chalkie

由于@q-studio提供的链接的帮助,我能够确定正确的行动路线。

首先,我设置了一个操作,将代码加载到init 在中使用“init”标记add_action(); 在我的职能范围内。php文件。

add_action( \'init\', \'wpteaminfo_init\' );
然后,我创建了用于设置id变量的函数add_rewrite_tag(); 然后我添加了一个重写规则add_rewrite_rule();

function wpteaminfo_init()
{
    add_rewrite_tag(\'%id%\',\'([^&]+)\');
    add_rewrite_rule(\'^team-info/([0-9]{1,})/?\',\'index.php?page_id=735&id=$matches[1]\',\'top\');
}
最后,在我的页面上,由于使用php代码片段获取json数据并设置其样式,我不得不从url的最后部分创建一个变量。

这是通过使用get_query_var(); 并将变量名放在括号内。

在我的例子中,我使用这个

$requestid = get_query_var( \'id\' );
然后,结果是将url设置为url/team-info/123/ 它返回的id在本例中为123,并将其以可用变量的形式发送到网页$requestid.

我希望这能帮助找到它的人。

-亚当

相关推荐