【发布时间】:2018-12-23 19:27:22
【问题描述】:
我在 Wordpress/Woocommerce 中创建了一个使用网站模板的自定义页面。我有一个动态 php 页面,在站点的根文件夹内,它生成我想指向我创建的自定义 Wordpress 页面的链接。我想要这样的网址:
example.com/value1/value2.html
而不是我拥有的当前 Wordpress 网址:
example.com/page_name/value1/value2
所以本质上我希望我的 url 不在 url 中显示 page_name 并且在 URL 的末尾有 .html。
在我的主题functions.php中,我添加了Wordpress Codex建议的两个函数。
我的职能是:
function custom_rewrite_tag() {
add_rewrite_tag('%value1%', '([^&]+)');
add_rewrite_tag('%value2%', '([^&]+)');
}
add_action('init', 'custom_rewrite_tag', 10, 0);
function custom_rewrite_rule() {
add_rewrite_rule('^page_name/([^/]*)/([^/]*)/?','index.php?page_id=3090&value1=$matches[1]&value2=$matches[2]','top');
}
add_action('init', 'custom_rewrite_rule', 10, 0);
我没有在 wp-admin 中指定页面名称,但我在永久链接中有页面名称。看看其他类似的问题,我确实看到有人说从 url 中删除页面名称是不可能的,因为 Wordpress/Woocommerce 需要它作为它需要显示的页面的参考点。这是真的?我在 Wordpress 部分内外尝试了许多 .htaccess 规则的排列。
我已经设法通过将我的重写规则放在 Wordpress 块之外来重写我的 php 页面,但我对如何根据需要更改 Wordpress URL 感到困惑。
以前的工作学院给我留下了这个问题,这让我很头疼,因为我必须找到解决方案。
**更新
在乔(非常感谢)帮助我之后,我现在的最终网址如下所示:
https://example.com/page_name/value1/value2.html
但是我仍然需要从 URL 中删除 /page_name/。还有其他人对如何在 Wordpress/Woocommerce 中实现这一点有任何建议吗?
【问题讨论】:
-
这意味着您不想在 url 上添加页面名称 - 对吧?并让我知道 example.com/page_name/value1/value2 这个 url 中 value1 和 value2 的作用是什么??
-
是的,我不希望页面名称出现在我的网址中。 Value1 和 value2 是我从数据库中获取并通过 url 传递到页面的两个数据库值。这些值用于城镇名称和城镇 ID。
标签: php wordpress .htaccess url url-rewriting