我需要为我的网站定制永久链接

时间:2019-01-04 作者:Saurin Dashadia

我有以下场景:

my-domain-name.com/google.com

my-domain-name.com/twitter.com
我需要自定义permalink结构才能通过google.comtwitter.comdomain_name 查询变量。

我尝试了以下代码:

add_rewrite_tag(\'%domain_name%\', \'([^&]+)\');
add_rewrite_rule(\'^/([^/]*)/?\',\'index.php?domain_name=$matches[1]\',\'top\'); 
但不起作用

有关更好的示例,请查看此网站:http://currentlydown.com/facebook.com 我正在尝试做类似的事情

2 个回复
最合适的回答,由SO网友:Saurin Dashadia 整理而成

这个问题只用一行代码就解决了。我感谢@rifi2k进行了长时间的讨论并提出了不同的解决方案。

以下是解决方案:

向函数添加以下代码。php

function custom_rewrite_basic() {
    add_rewrite_tag(\'%domain_name%\', \'([a-z]{1,60}\\.[a-z]{2,})\');
}
add_action(\'init\', \'custom_rewrite_basic\');
然后从永久链接设置中,选择Custom Structure 并仅在本例中添加新创建的标记/%domain_name%/ 保存设置。

SO网友:rifi2k

我不确定是否应该假设您在init钩子中发布了示例,但如果不是,那就是它们不适合您的原因。

所以内部函数。php

function sd_rewrite_rules() {
  add_rewrite_tag(\'%domain_name%\', \'([^&]+)\');
  add_rewrite_rule(\'^/([^/]*)/?\',\'index.php?domain_name=$matches[1]\',\'top\');
}
add_action(\'init\', \'sd_rewrite_rules\', 10, 0);
然后,如果要检索查询变量以对其进行处理,可以在页面模板文件中使用$wp\\u query global执行类似操作。

$domain_value = $wp_query->query_vars[\'domain_name\'];
还可以通过阅读有关Rewrite\\u API的所有信息找到您想要了解的所有内容,其中有大量您可能会觉得有趣或相关的其他事情的示例。

https://codex.wordpress.org/Rewrite_API

相关推荐

Force pretty permalinks?

我正在构建一个插件,该插件将用于单个站点,并依赖于add_rewrite_rule 要工作,需要打开永久链接。打开它们并不困难,因为它只是一个站点,但我担心其中一个管理员可能会在不知道自己在做什么的情况下关闭它,并破坏该站点。如何以编程方式强制保持漂亮的永久链接?