У меня есть пользовательский тип поста для аксессуаров. Когда вы просматриваете сообщение, оно также показывает связанные сообщения. Это выглядит великолепно, но также показывает текущий пост среди связанных постов.
Есть ли способ исключить текущий пост из цикла?
<div>
<?php
$category = get_the_category();
$model = $category[1]->cat_name;
$accessory = array('numberposts' => 8, 'offset'=> 1, 'post_type' => 'accessory', 'category_name' => $model, 'order' => 'DESC');
query_posts( $accessory );
?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div>
<?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'openeye' ), 'after' => '</div>' ) ); ?>
<h4><?php the_title(); ?></h4>
Part Number: <?php echo get_post_meta($post->ID, "accessory-part-number", true); ?>
<?php $desc = get_post_meta($post->ID, "accessory-description", true); ?>
<p><?php echo utf8_truncate( $desc ); ?></p>
<a href="<?php echo get_permalink(); ?>">Learn more about the <?php the_title(); ?></a>
</div>
<?php endwhile; ?>
<?php endif; ?>
</div>
</div>
Попробуй это:
Для вашего шаблона single-accessory.php:
Для вашей боковой панели или места, где вы хотите показывать похожие сообщения:
Совершенно логично, спасибо! Что странно, так это то, что каждый из них возвращает совершенно разные результаты. Есть ли что-то еще, что мне нужно знать или делать в отношении запросов?
@ Зак Шаллбеттер Я не уверен, что каждый и насколько отличается, не могли бы вы перефразировать это или добавить примеры к исходному вопросу?
Конечно, WP_Query не возвращает результатов. Get_Posts возвращает один результат, а query_posts возвращает все.
@ Зак Шаллбеттер Я понятия не имею, что об этом думать.
query_posts()
иget_posts()
по сути являются просто вызовамиWP_Query
.Дикие, тогда я явно делаю что-то не так.
Во-первых, вы никогда не должны использовать
query_posts()
для вторичных циклов.Что касается исключения текущего поста, то в аргументах будет что-то вроде этого: