Так что для контента вы можете сделать что-то простое:
add_filter('the_content', 'block_by_status');
и скрыть заголовок, который вы можете использовать:
add_filter( 'the_title', 'block_by_status', 10, 2 );
Если вы хотите go дальше кроме того, я предлагаю отредактировать шаблон в папке темы.
Для страниц, которые вам нужно отредактировать page.php
, а для постов вам нужно отредактировать posts.php
или singular.php
, в зависимости от используемой темы .
Таким образом, вы можете сделать что-то вроде этого:
В файле functions.php
:
function block_by_status ($post_object) {
global $wp_query;
if( 'blocked' == $wp_query->post->post_status ) {
return true;
}
}
, а затем в файлах, на которые я ссылался выше (Зависит от вашей темы ):
<?php if (!block_by_status()) { ?>
<?php while (have_posts()) : the_post(); ?>
<h1><?php the_title() ?></h1>
<?php the_content() ?>
<?php get_sidebar() ?>
<?php endwhile; ?>
<?php } else {
echo 'This post is blocked';
} ?>
Таким образом, вы используете свою функцию в качестве логического значения и просто скрываете то, что не хотите, чтобы пользователи видели.