Как добавить условие на «статус» и «видимость» страниц WordPress?
В WordPress для записей и страниц есть 3 статуса: опубликовано, на утверждении, черновик; и 3 видимости: открыто, защищено паролем и личное.
К сайту подключены Google Analytics и Яндекс Метрика.
Я использую несколько личных страниц, к которым постоянно стучатся Google и Яндекс, и естественно получают в ответ 404.
Как через functions.php правильно записать условие на проверку статуса и видимости, наподобие
if($post_status == 'private') {
wp_dequeue_script( );
remove_action( );
}
Спасибо за помощь!
Не понятно, как Яндекс их вообще видит, так как личные страницы видны только автору. Как вариант, прописать запрет индексирования в robots.txt. А счетчик обернуть в условие, в котором проверяется какая страница (ID или её статус).
P.S.: Яндекс сам по себе не знает о существования страниц значит на сайте на них ссылаются. Так как такую страницу видит только автор, можно поставить условие следующее:
Если автор - показать контент, если нет - какой-либо текст или перенаправление в другое место, тогда 404 ошибки не будет.
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 } ?>