Ответы пользователя по тегу WordPress
  • Как реализовать региональность сайта в 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*.
    Ответ написан
    Комментировать
  • Как отключить регистрацию Wordpress?

    goodee
    @goodee
    начинающий веб-разработчик
    <?php

    add_filter( 'register', 'dwprp_remove_registration_link' );

    function dwprp_remove_registration_link( $registration_url ) {
    return __( 'Manual registration is disabled', 'dwprp' );
    }

    add_action( 'init', 'dwprp_redirect_registration_page' );

    function dwprp_redirect_registration_page() {
    if ( isset( $_GET['action'] ) && $_GET['action'] == 'register' ) {
    ob_start();
    wp_redirect( wp_login_url() );
    ob_clean();
    }
    }

    Вот этот код в functions.php. Код взят из плагина для отключения регистрации.

    Отвечая на Ваш вопрос: нужно использовать функцию add_filter('register', 'указать название вашей функции, где будет проходить проверка cookies').

    P.S. Лично не проверял, но по всей видимости должно сработать.
    Ответ написан
    Комментировать