Как можно ограничить страницу и переадресовать 404?
Здравствуйте!
У меня на одном сайте есть программа, ее автор пожаловался в РКН.
В принципе она не особо важна, но необходима, как список, что есть подобная программа(типа составление библиотеки софта). Нужно, что видел эту запись только админ, а остальным показывать, что страницы записи нет и выдать 404. Есть в админке Видимость -> Личное, как вариант, а есть ли еще что подобное, так как приватки могут видеть от редактора.
https://wordpress.stackexchange.com/questions/91900/how-to-force-a-404-on-wordpress/92176
Решение вашего вопроса.
Только бездумно код не копируйте, а укажите свое условие
is_page( xxx ) && current_user_can('administrator')спасибо, я немного иначе сделал, может кому пригодится:
// отображаем, что такой записи нет. add_action( 'wp', 'posts_404' ); function posts_404() { global $wp_query; if ( is_single( array( '1', '2' ) ) ) { // тут массив ненужных записей. status_header( 404 ); nocache_headers(); include( get_query_template( '404' ) ); die(); } }далее, нужно убрать запись с сайта:
add_action( 'pre_get_posts', 'exclude_posts_404' ); function exclude_posts_404( $query ) { if ( $query->is_archive() && $query->is_main_query() ) { $query->set( 'post__not_in', array( '1', '2' ) ); // тут массив записей, которые нужно скрыть. } }Фишка в том, что нужно отдать 404 заголовок, иначе будут вопросы при 301 или 302 статусе.
А далее можно сделать исключение для роли админа и поставить метку, что эта запись скрыта.