Задать вопрос
Ответы пользователя по тегу Навигация пользователя
  • Как реализовать региональность сайта в WordPress?

    goodee
    @goodee Автор вопроса
    начинающий веб-разработчик
    Повозился немного и решил проблему.
    Сначала проблема с одинаковыми слагами страниц в WordPress:
    Все до смешного просто, создаем страницы, а у нужных выбираем "Родительский элемент".
    Например:
    site.ru/moskva/article
    site.ru/kazan/article
    где moskva и kazan - это родительские страницы соотвественно двух разных страниц article.
    С этим всё просто и понятно.

    Далее я создал "произвольные поля" у страниц городов - "tel" и "address".
    В functions.php темы WordPress добавил следующие строчки:
    // узнаем самый первый родительский элемент (страницу города)
    function parent_postID() {
    	global $post;
    	$postID = $post->ID;
    	if ($post->post_parent) {
    		$anc = get_post_ancestors($postID);
    		$root = count($anc)-1;
    		$parentID = $anc[$root];
    	} else {
    		$parentID = $postID;
    	}
    	return $parentID;
    }
    
    // узнаем самую корневую страницу
    function show_gorod() {
    	global $post;
    	$postID = $post->ID;
    	$parentID = parent_postID();
    	if (!is_front_page() and ($parentID or $postID)) {
    		$city_name = get_the_title($parentID);
    		$city_link = get_the_permalink($parentID);
    		$city_class = 'gorod';
    		$city_string = '<a class="'.$city_class.'" href="'.$city_link.'">'.$city_name.'</a>';
    	} else {
    		$city_name = 'Выберите город:';
    		$city_class = 'gorod small';
    		$city_string = '<p class="'.$city_class.'">'.$city_name.'</p>';
    	}
    
    	return $city_string;
    }

    После чего на любой дочерней странице и странице города отображалась информация записанная в родительской странице.
    Достаточно было указать в шаблоне <?php echo show_gorod() ?>
    и выводилась нужная информация.

    Так что всем спасибо за ответы-советы *sarcasm*.
    Ответ написан
    Комментировать