我需要在页面网址中添加动态前缀。
您可以通过Rewrite_API
帮助我如何实现这一目标问题
在我的WordPress网站上,我想在网址中的网页名称之前使用前缀访问几页。例如,通常可以使用
访问页面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
上面的动作钩子允许我在前端和后端拥有动态页面URL。 例如,我可以看到页面网址现在是
http://example.com/%region%/page-name
我需要什么
由于我现在已生成动态网址,因此我想将网址的%region%替换为我想要的位置字符串,可能只是国家/地区名称或国家/州名称组合。
先谢谢。
答案 0 :(得分:1)
使用wordpress过滤器更改页面链接
add_filter( '_get_page_link', 'custom_region_page_link', 10, 2 );
function custom_region_page_link( $link, $post_id ){
//$slug = get_post_meta( $post_id, 'key', true );
$link = str_replace('%region%', 'india', $link);
return $link;
}