WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

Как можно ограничить страницу и переадресовать 404?

Здравствуйте!

У меня на одном сайте есть программа, ее автор пожаловался в РКН.

В принципе она не особо важна, но необходима, как список, что есть подобная программа(типа составление библиотеки софта). Нужно, что видел эту запись только админ, а остальным показывать, что страницы записи нет и выдать 404. Есть в админке Видимость -> Личное, как вариант, а есть ли еще что подобное, так как приватки могут видеть от редактора.

1
Phantom
13 дней назад 17
  • 0
    stepan1728 www.weblancer.net/users/stepanko/?affili...

    https://wordpress.stackexchange.com/questions/91900/how-to-force-a-404-on-wordpress/92176
    Решение вашего вопроса.
    Только бездумно код не копируйте, а укажите свое условие

    is_page( xxx ) && current_user_can('administrator')
    Phantom 12 дней назад

    спасибо, я немного иначе сделал, может кому пригодится:

    // отображаем, что такой записи нет.
    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 статусе.
    А далее можно сделать исключение для роли админа и поставить метку, что эта запись скрыта.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация