我在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
但是我仍然需要/ page_name /从URL中删除。其他人对在Wordpress / Woocommerce中如何实现这一目标有何建议?
答案 0 :(得分:0)
您可以使用page_name
轻松地从网址中删除.htaccess
:
RewriteEngine On
RewriteRule ^page_name/(.*) /$1.html [R=301,L]
这将为您提供所需的URL example.com/value1/value2
。您可以看到此工作here。这是通过301重定向完成的,该重定向是永久的,因此建议您在测试时将其更改为R=302
。
确保在测试之前 清除缓存。