WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Самая быстрая Тема-конструктор для WordPress

Как добавить условие на «статус» и «видимость» страниц WordPress?

В WordPress для записей и страниц есть 3 статуса: опубликовано, на утверждении, черновик; и 3 видимости: открыто, защищено паролем и личное.
К сайту подключены Google Analytics и Яндекс Метрика.
Я использую несколько личных страниц, к которым постоянно стучатся Google и Яндекс, и естественно получают в ответ 404.

Как через functions.php правильно записать условие на проверку статуса и видимости, наподобие

if($post_status == 'private') { 
	wp_dequeue_script(  ); 
	remove_action(  ); 
}

Спасибо за помощь!

0
llgruff
5.3 лет назад 55
  • 0
    campusboy3616 www.youtube.com/c/wpplus

    Не понятно, как Яндекс их вообще видит, так как личные страницы видны только автору. Как вариант, прописать запрет индексирования в robots.txt. А счетчик обернуть в условие, в котором проверяется какая страница (ID или её статус).
    P.S.: Яндекс сам по себе не знает о существования страниц значит на сайте на них ссылаются. Так как такую страницу видит только автор, можно поставить условие следующее:
    Если автор - показать контент, если нет - какой-либо текст или перенаправление в другое место, тогда 404 ошибки не будет.

    campusboy 5.3 лет назад
    function ps_no_access() {
    	# Проверяем, авторизован ли пользователь и личная ли запись
    	# Если НЕ авторизован и это личная запись, то выполнить действие
    	if ( !is_user_logged_in() and get_post_status() == "private"  ){
    		//Здесь любой код, к примеру перенаправление и так далее
    	}
    }
    # Функция будет срабатывать при загрузке шапки
    add_action( 'wp_head', 'ps_no_access' );

    Все хуки можно увидеть тут, возможно Вам надо будет делать проверку ещё раньше, к примеру при посылке get_header или даже ещё раньше (там список раскрывающийся с событиями по порядку отработки в движке).

    -

    А можно ещё проще. Вставить в шапку или футер:

    <?php
    if ( !is_404() ) { ?>
    	Здесь код счётчика
    	<?php } ?>
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация