所以,我有archive.php
使用此部分代码的文件
<div class="column is-full is-three-quarters p-small">
<?php
while ( have_posts() ) : the_post();
get_template_part( \'loops/loop\', \'archive\' );
endwhile;
else :
get_template_part( \'template-parts/content\', \'none\' );
endif;
?>
</div>
在文件中
loop-archive.php
我有这样的东西
<?php
$args = array(
\'post_type\' => \'post\',
\'posts_per_page\' => -1,
\'cat\' => \'3\'
);
$query = new WP_Query($args);
if ($query->have_posts()) :
while ($query->have_posts()) :
$query->the_post();
// set default featured image
$thumb = get_field(\'post_thumb\');
$post_thumb = ($thumb ? $thumb[\'url\'] : get_template_directory_uri() . \'/dist/images/default-post-featured.jpg\');
?>
<div class="columns">
<div class="column is-one-third">
<div class="article-thumb">
<?php echo $post_thumb ?>
</div>
</div>
<div class="column is-two-third">
<article class="content has-text-left">
<div class="article-head">
<header>
<h3><?php echo the_title(); ?></h3>
<span>dodano: <?php echo get_the_date(\'d.m.Y\') ?></span>
</header>
</div>
<div class="article-body">
<?php echo the_excerpt(); ?>
</div>
<div class="article-foot">
<a href="<?php echo the_permalink(); ?>" class="button button__rounded button__gold">Więcej</a>
</div>
</article>
</div>
</div>
<?php
endwhile;
wp_reset_postdata();
else:
?>
<div class="col">
<h5>Brak wyników spełniających kryteria wyszukiwania</h5>
</div>
这是可行的。但它会复制帖子。我有2个帖子,但循环显示4个帖子。我试着使用$do\\u not\\u复制技巧,但它对我不起作用。我的代码怎么了?如何避免帖子重复?
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成
好的,那么代码就是它应该做的。
在您的archive.php
您可以这样做:
while ( have_posts() ) : the_post();
get_template_part( \'loops/loop\', \'archive\' );
所以对于每一篇文章(两篇)你都包括
loops/loop-archive.php
文件在该文件中,您不仅显示来自全局循环的当前帖子,还可以创建自己的自定义循环。这篇文章再次遍历所有帖子(因为
pre_get_posts
至-1。
因此,经过一些简化后,您的代码如下所示:
while ( have_posts() ) : the_post();
// the part from get_template_part( \'loops/loop\', \'archive\' );
$query = new WP_Query($args);
if ($query->have_posts()) :
while ($query->have_posts()) :
$query->the_post();
// display the post
是的,它显示了4个帖子,而不是2个。如果有3篇文章,它将显示9篇文章,而不是3篇——因为对于每一篇文章,你都会显示所有的文章。