2011-12-06 118 views
0

我有一个WordPress的URL重写问题。我目前正在开发一个语言插件(几乎完成),作为最后一件事,我希望看到每个URL都被修改,以便它包含用户选择的当前语言(或者如果用户没有选择默认语言不改变语言)。WordPress的网址重写

我没有改变链接的问题,问题在于服务器重写完成。您可以在下面找到我如何更改链接。

public function register_filters() 
{ 
    add_filter('page_link', array(get_class(),'alter_permalink')); 
    add_filter('post_link', array(get_class(),'alter_permalink')); 
} 

public function alter_permalink($permalink) 
{ 
    $permalink = str_replace(get_option('home'), '', $permalink); 
    $permalink = trim($permalink, '/'); 

    //The next line is actually a method that is being called, 
    //but it will return a string like this.    
    $lang = 'EN'; 


    return get_option('home') . '/' . $lang . '/' . $permalink; 

    //This returns a link that looks something like this: 
    //http://somedomain.com/EN/permalink-structure 
} 

所以,你可以看到,我没有创建链接的问题,问题在于服务器本身的URL重写。

我试过这种方法:http://shibashake.com/wordpress-theme/wordpress-permalink-add 但我没有得到那个工作。问题是,我似乎不明白这些重写规则是如何工作的,而且我似乎也无法找到关于这个主题的体面教程。

任何帮助将不胜感激。

+1

你到底有什么问题?重写的URL正在返回404? –

+0

我忘了提,那确实是个问题。所以我应该有一个重写规则,否定链接中的语言部分,但我不知道该怎么做。 –

回答

1

要监听处理url的过滤器是请求

function request_handler($vars) { 
    //modified $vars here 

    return $vars; 
} 
add_filter('request', 'request_handler', 11); 

我已经为wp中的自定义url编写了一个插件。检查来源,看看我如何处理它。 http://wordpress.org/extend/plugins/auto-url/

+0

我会试试这个!非常感谢^^ –