【发布时间】:2016-04-07 02:41:44
【问题描述】:
我需要在页面 url 中添加动态前缀。
您可以通过Rewrite_API 帮助我实现这一目标
问题
在我的 WordPress 网站中,我想在 URL 中的页面名称之前使用 prefix 访问一些页面。例如,通常可以使用
访问页面http://example.com/page-name
我想在页面名称前添加动态前缀(位置)。所以我想访问如下页面
http://example.com/country/state/page-name
到目前为止我尝试了什么:
我尝试使用下面的过滤器在 url 中的页面名称之前添加重写标签。
add_action( 'init', array( $this, 'custom_rewrite_rules' ), 1, 0 );
/*
* Rewrite page urls
* adding prefix to page urls
* @doc: http://stackoverflow.com/questions/17613789/wordpress-rewrite-add-base-prefix-to-pages-only
*/
function custom_rewrite_rules()
{
global $wp_rewrite;
// add rewrite tag for location
$wp_rewrite->add_rewrite_tag( "%region%", '([^/]+)', 'region=' );
$wp_rewrite->page_structure = $wp_rewrite->root . '%region%/%pagename%';
}// end func
Above action hook 允许我在前端和后端拥有动态页面 url。 例如,我可以看到页面 url 现在是
http://example.com/%region%/page-name
我需要什么
由于我现在生成了动态 url,我想用我想要的位置字符串替换 url 的 %region% 部分,它可能只是 country 名称或国家/州名称组合。
提前致谢。
【问题讨论】:
-
您解决了这个问题吗?我正在尝试解决几乎相同的问题。
-
还没有,我已经尝试过@user5200704 的答案,但我坚持这个问题。我只需要在前端更改 url,后端 url 应该带有 %region% rewrite 标签。它也应该加载相同的页面,不管前缀是什么。目前我尝试的所有解决方案都给了我 404 错误。