在WordPress页面URL中添加动态前缀

时间:2016-04-07 02:41:45

标签: wordpress url-rewriting

我需要在页面网址中添加动态前缀。

您可以通过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%替换为我想要的位置字符串,可能只是国家/地区名称或国家/州名称组合。

先谢谢。

1 个答案:

答案 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;
}