Поддержка Проблемы и решения Как настроить вордпресс, что бы ссылки были вида..

  • Добрый день, Уважаемые!

    У меня задача есть установить вордпресc чтобы ссылки были вида:

    site.com/ru/blog
    site.com/en/blog
    site.com/es/blog

    для мультиязыка использую плагин qtranslate.

    Как мне сделать так? Только пожалуйста, не говорите что это глупо, это глупо но такая задача 🙂

    Я решение вижу такое: это установить вордпресс в корневой каталог, настроить qtranslate и соответственно дописать еще /blog, а из site.com/ делать редирект на site.com/ru/blog в настройках аппача

    но я не могу понять, как дописать это /blog чтобы вордпресс нормально работал в дальнейшем установленные плагины чтобы потом не косячили? Я копал qtranslate — нечего не вышло. Как формируются ссылки у вордпрессе? Просьба ссылки на документацию, а то новачек еще))

    Я думаю что правильнее будет это установить блог в подкаталог blog и соответственно делать ссылки такого вида, а в корневой потом можно будет установить какой нибудь другой сайт или простую страничку

    Надеюсь суть виложил, и прошу помощы как мне сделать, благодарю

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Я думаю тебе стоит зайти в настройки плагина qtranslate и в дополнительный настройках, где «Режим URL-Модификации», поставить радио-кнопку на «Использование режима предварительно пути (по умолчанию, ставит /en/ перед URL)»

    Да я это понимаю, если установить вордпресс в корневую то в настройках qtranslate можно установить site.com/es/

    но как быть из «blog» я копал плагин этот — не получилось 🙁

    нужно сделать чтобы ссылки были вида:

    site.com/ru/blog
    site.com/en/blog
    site.com/es/blog

    лучший вариант будет 2й: это установить вордпресс в подкаталог blog

    вот на сколько я понял это код в qtranslate отвечает за модификацию урл, но как допилят?

    function qtrans_convertURL($url='', $lang='', $forceadmin = false) {
    	global $q_config;
    
    	// invalid language
    	if($url=='') $url = esc_url($q_config['url_info']['url']);
    	if($lang=='') $lang = $q_config['language'];
    	if(defined('WP_ADMIN')&&!$forceadmin) return $url;
    	if(!qtrans_isEnabled($lang)) return "";
    
    	// & workaround
    	$url = str_replace('&','&',$url);
    	$url = str_replace('&','&',$url);
    
    	// check for trailing slash
    	$nottrailing = (strpos($url,'?')===false && strpos($url,'#')===false && substr($url,-1,1)!='/');
    
    	// check if it's an external link
    	$urlinfo = qtrans_parseURL($url);
    	$home = rtrim(get_option('home'),"/");
    	if($urlinfo['host']!='') {
    		// check for already existing pre-domain language information
    		if($q_config['url_mode'] == QT_URL_DOMAIN && preg_match("#^([a-z]{2}).#i",$urlinfo['host'],$match)) {
    			if(qtrans_isEnabled($match[1])) {
    				// found language information, remove it
    				$url = preg_replace("/".$match[1]."\./i","",$url, 1);
    				// reparse url
    				$urlinfo = qtrans_parseURL($url);
    			}
    		}
    		if(substr($url,0,strlen($home))!=$home) {
    			return $url;
    		}
    		// strip home path
    		$url = substr($url,strlen($home));
    	} else {
    		// relative url, strip home path
    		$homeinfo = qtrans_parseURL($home);
    		if($homeinfo['path']==substr($url,0,strlen($homeinfo['path']))) {
    			$url = substr($url,strlen($homeinfo['path']));
    		}
    	}
    
    	// check for query language information and remove if found
    	if(preg_match("#(&|\?)lang=([^&\#]+)#i",$url,$match) && qtrans_isEnabled($match[2])) {
    		$url = preg_replace("#(&|\?)lang=".$match[2]."&?#i","$1",$url);
    	}
    
    	// remove any slashes out front
    	$url = ltrim($url,"/");
    
    	// remove any useless trailing characters
    	$url = rtrim($url,"?&");
    
    	// reparse url without home path
    	$urlinfo = qtrans_parseURL($url);
    
    	// check if its a link to an ignored file type
    	$ignore_file_types = preg_split('/\s*,\s*/', strtolower($q_config['ignore_file_types']));
    	$pathinfo = pathinfo($urlinfo['path']);
    	if(isset($pathinfo['extension']) && in_array(strtolower($pathinfo['extension']), $ignore_file_types)) {
    		return $home."/".$url;
    	}
    
    	// ignore wp internal links
    	if(preg_match("#^(wp-login.php|wp-signup.php|wp-register.php|wp-admin/)#", $url)) {
    		return $home."/".$url;
    	}
    
    	switch($q_config['url_mode']) {
    		case QT_URL_PATH:	// pre url
    			// might already have language information
    			if(preg_match("#^([a-z]{2})/#i",$url,$match)) {
    				if(qtrans_isEnabled($match[1])) {
    					// found language information, remove it
    					$url = substr($url, 3);
    				}
    			}
    			if(!$q_config['hide_default_language']||$lang!=$q_config['default_language']) $url = $lang."/".$url;
    			break;
    		case QT_URL_DOMAIN:	// pre domain
    			if(!$q_config['hide_default_language']||$lang!=$q_config['default_language']) $home = preg_replace("#//#","//".$lang.".",$home,1);
    			break;
    		default: // query
    			if(!$q_config['hide_default_language']||$lang!=$q_config['default_language']){
    				if(strpos($url,'?')===false) {
    					$url .= '?';
    				} else {
    					$url .= '&';
    				}
    				$url .= "lang=".$lang;
    			}
    	}
    
    	// see if cookies are activated
    	if(!$q_config['cookie_enabled'] && !$q_config['url_info']['internal_referer'] && $urlinfo['path'] == '' && $lang == $q_config['default_language'] && $q_config['language'] != $q_config['default_language'] && $q_config['hide_default_language']) {
    		// :( now we have to make unpretty URLs
    		$url = preg_replace("#(&|\?)lang=".$match[2]."&?#i","$1",$url);
    		if(strpos($url,'?')===false) {
    			$url .= '?';
    		} else {
    			$url .= '&';
    		}
    		$url .= "lang=".$lang;
    	}
    
    	// & workaround
    	$complete = str_replace('&','&',$home."/".$url);
    
    	// remove trailing slash if there wasn't one to begin with
    	if($nottrailing && strpos($complete,'?')===false && strpos($complete,'#')===false && substr($complete,-1,1)=='/')
    		$complete = substr($complete,0,-1);
    
    	return $complete;
    }
Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Как настроить вордпресс, что бы ссылки были вида..» закрыта для новых ответов.