Я пытаюсь создать журнал данных о том, что происходит в моем блоге. Я не хочу, чтобы эти сообщения появлялись на первой странице, поэтому я хочу исключить категорию, в которой они находятся, поскольку они всегда находятся в одной категории.
Вы можете мне помочь?
Сайт denfri.dk, я использую тему оснастки (https://thethemefoundry.com/wordpress-themes/snap/) и мой код цикла выглядит следующим образом:
<?php if ( have_posts() ) : ?>
<div class="blog-wrapper" id="content">
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( '_post-content' ); ?>
<?php endwhile; ?>
</div>
<h1 class="hidden">DenFri.dk - nyheder, analyser, satire og kritik</h1>
<?php $prev = get_previous_posts_link( __( 'Nyere indlæg', 'snap' ) ); ?>
<?php $next = get_next_posts_link( __( 'Ældre indlæg', 'snap' ) ); ?>
<?php if ( ( ! empty( $prev ) || ! empty( $next ) ) ) : ?>
<nav class="pagination post-footer">
<?php if ( ! empty( $prev ) ) : ?>
<div>
<?php echo $prev; ?>
</div>
<?php endif; ?>
<?php if ( ! empty( $next ) ) : ?>
<div>
<?php echo $next; ?>
</div>
<?php endif; ?>
</nav>
<?php endif; ?>
<?php else : ?>
<div class="placeholder-text">
<p>
<?php
printf(
__(
'<strong>Admin:</strong> Oh snap! It looks like you haven\'t added any posts yet. <a href="%s" title="Add post">Add your first post</a> now!',
'snap'
),
esc_url( admin_url( 'post-new.php' ) )
);
?>
</p>
</div>
Чтобы включить одну (или несколько) категорий с главной страницы, вставьте этот код:
function denfri_frontpage_exclude( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '-5' );
}
}
add_action( 'pre_get_posts', 'denfri_frontpage_exclude' );
Если вы хотите исключить больше категорий, чем одну, замените -5
со всеми категориями, разделенными запятыми; -5,-1,-3
и т.п.
Других решений пока нет …