Убрать страницы автора, категории и тегов
-
собственно сабж…
сайт строго корпоративный потому должны быть доступны только созданные страницы и записи
все остальные должны отдавать 404
какой самый простой и правильный способ это сделать?
-
задать
noindex
не нужному c помощью сео-плагиновя хочу их именно отключить. чтобы их не было вообще.
это корпоративный сайт, в нем есть 10 страниц и все.
страницу автора отключил через functions.php
добавивfunction my_custom_disable_author_page() { global $wp_query; if ( is_author() ) { $wp_query->set_404(); status_header(404); // Redirect to homepage // wp_redirect(get_option('home')); } }
а остальное? есть страница категории и тегов, как их отключить? неужели нет плагина убивающего эти ненужные страницы 1 кликом?
я хочу их именно отключить. чтобы их не было вообще.
Для этого придется отказаться от использования ВП.
отключил через functions.php
не отключил, а перенаправил на 404.
плагина убивающего
нет
если вас устраивает решение с редиректом
https://ru.wordpress.org/plugins/search/Redirect/Измените условие вот так if( is_author() || is_category() || is_tag() )
Измените условие вот так if( is_author() || is_category() || is_tag() )
в таком случае он не блокирует все что после /category или /author
допустим
site.ru/author 404 а site.ru/author/admin непонятная страница, вроде тоже 404 но с другим шаблоном, с поиском выдающим site.ru/?s=
поиск тоже надо отключить. нужно отключить вообще все левые страницы
кроме тех что созданы в разделе страницы и записиТогда идём от обратного if(!is_page || !is_post() || !is_front_page())
И я надеюсь Вы цепляние за хук template_redirectвообще ни за что не цепляюсь. в хуках не шарю. нашел в буржуйнете сие решение но оно меня не удовлетворяет
код из 3 поста просто вставил в functions.php
страница автора теперь выдает 404 по шаблону из элементора
другие страницы выдают тоже 404 но без шаблона элементора, видимо просто из темы. что странноfunction my_custom_disable_author_page() { global $wp_query; if ( !is_page() || !is_post() || !is_front_page()) { $wp_query->set_404(); status_header(404); // Redirect to homepage // wp_redirect(get_option('home')); } } add_action('template_redirect', 'my_custom_disable_author_page');
что-то пошло не так
Ваши изменения в коде PHP были отменены из за ошибки на строке 145 файла wp-content/themes/astra/functions.php. Исправьте и попробуйте пересохранить.
Uncaught Error: Call to undefined function is_post() in wp-content/themes/astra/functions.php:145
Stack trace:
#0 wp-includes/class-wp-hook.php(286): my_custom_disable_author_page(»)
#1 wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters(NULL, Array)
#2 wp-includes/plugin.php(465): WP_Hook->do_action(Array)
#3 wp-includes/template-loader.php(13): do_action(‘template_redire…’)
#4 wp-blog-header.php(19): require_once(‘/home/site/ht…’)
#5 index.php(17): require(‘/home/site/ht…’)
#6 {main}
thrown- Ответ изменён 5 лет, 1 месяц назад пользователем ApTypka.
Извините, уже поздновато или рановато)) вместо is_post() нужно is_single()
нет опять не то.
главная страница недоступная теперь… ладно буду искать решение днем)function my_custom_disable_author_page() { global $wp_query; if ( is_page() || is_single() || is_front_page()) { return; } $wp_query->set_404(); status_header(404); // Redirect to homepage // wp_redirect(get_option('home')); } add_action('template_redirect', 'my_custom_disable_author_page');
Нет возможности протестить всё, но это точно должно решить Ваш вопрос.
Artem
да, это помогло спасибо. но теперь другая проблема
он редиректит на дефолтную страницу 404 а у меня 404 через шаблон элементора цепляется
это возможно поправить?Отказаться от элементор нет никакой возможности? Частенько проблемы с ним.
к сожалению нет.
сайт делается для «тупых» без дальнейшего обслуживания. т.е. фирма будет сама творить внутри сайта поэтому юзаю элементор.
можно конечно обойтись редиректом на главную
но хочется чтобы было все по фен шую
- Тема «Убрать страницы автора, категории и тегов» закрыта для новых ответов.