Переписывание URL-адреса Wordpress

У меня проблема с переписыванием url в wordpress. В настоящее время я работаю над языковым плагином (почти завершенным), и, как последнее, я хотел бы видеть, что каждый URL-адрес изменен так, что он содержит текущий язык, выбранный пользователем (или язык по умолчанию, если пользователь hasn 't изменил язык).

У меня нет проблем с изменением ссылок, проблема заключается в перезаписи, выполняемой сервером. Ниже вы можете найти, как я меняю ссылки.

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, но я не получил этого, чтобы работать. Проблема в том, что я просто не понимаю, как работают эти правила переписывания, и что я тоже не могу найти достойный учебник по этому вопросу.

Любая помощь будет принята с благодарностью.

0
06 дек. '11 в 10:24
источник поделиться
1 ответ

фильтр для прослушивания для обработки URL-адреса является запросом.

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

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

я написал плагин для настройки url в wp. проверьте источник и посмотрите, как я его обрабатываю. http://wordpress.org/extend/plugins/auto-url/

+1
06 дек. '11 в 19:15
источник

Посмотрите другие вопросы по меткам или Задайте вопрос