• Добрый день. У меня есть блог, шаблон сам писал. Есть идеи для постов, которые хочу написать в качестве заметок для себя, чтобы их не было видно, но в случае чего чтобы можно было ими делится с другими людьми. Пытался использовать:

    Личное: другим не видно, но ссылку не дать
    Защищено паролем: можно дать ссылку, но пост появляется в общем цикле анонсов постов блога, с пометной Защищено в Title.

    Мне нужно, чтобы пользователи не видели в ленте постов на сайте мои посты «для себя», но в то же время, чтобы я мог ими делиться с людьми по выбору.

    Идеально подойдет возможность убрать из цикла анонсов посты с паролем. Но вот как это сделать?

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Уверен, что вот это вам поможет:
    https://codex.wordpress.org/Using_Password_Protection

    https://codex.wordpress.org/Function_Reference/post_password_required

    проверяйте в цикле по этому условному тегу.

    Спасибо за ссылки. Я нашел другой способ, он показался проще и удобней.
    Используя WP_Query, сделать такой цикл вывода записей, чтобы определенные категории не выводились. На самом деле, для меня это будет даже удобней, чем подобная защита, которую вы описали.

    Вот только у меня самостоятельно такой код написать не получилось. Вот что с сделал:

    $query = new WP_Query( ‘cat=-4’ ); //выводим все посты, кроме категории с ID 4

    Как правильно воткнуть $query в циклы вывода постов WordPress?

    Попробовал такую конструкцию:

    <?php $query = new WP_Query("cat=-2");?>
    <?php if ( $query->have_posts() ) while ( have_posts() ) : the_post(); ?>
        <div class="pre_post">
        <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
        <div class="meta">
            <p class="category">Категория: <?php the_category(', '); ?></p>
            <p class="date">Дата: <?php the_date(); ?></p>
            <p class="author">Автор: <span style="font-weight:600;"><?php the_author(); ?></span></p>
        </div>
        <?php if(has_post_thumbnail()): ?>
        <?php the_post_thumbnail(); ?>
        <?php else: ?>
        <img src="<?php bloginfo('template_url'); ?>/img/empty.png" alt="" />
        <?php endif; ?>
        <?php the_excerpt(); ?>
        <p class="link"><a href="<?php the_permalink(); ?>">Подробнее</a></p>
        </div>
        <?php endwhile; ?>
    </div>

    Не сработало. В чем дело? Выводит посты также, как и раньше.

    просто добавьте этот код в function.php

    function exclude_category($query) {
    if ($query->is_feed || ($query->is_home || ($query->is_search || ($query->is_archive)))){
    $query->set('cat','-XXX');}
    return $query; }
    add_filter('pre_get_posts','exclude_category');

    Где XXX — ID не нужной вам категории.

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «Как скрыть личные посты из ленты постов (цикла)» закрыта для новых ответов.