在我的自定义主题主页(页面)中,我将显示博客中的四篇最新文章,其中一篇带有突出的亮点(不同的CSS等),另一篇作为普通的引导卡。由于我不习惯进行WP开发,因此我有点陷入查询和循环中。我得到第一个查询,但随后添加第二个查询似乎无法正常工作-因为,原因是我做错了。
现在,主要思想是编写两个单独的查询,分别是:$query_destaque
和$query_seguinte
。在其中的每一个中,我都设置了不同的参数,因此我可以选择要加载的帖子以及加载的位置。突出显示的将是最新的,其余的将跟随。
就是说,我想到了要用类别标记突出显示的那个类别,这样我就只能在第一个查询中加载该cat-id并将其限制为显示单个帖子。然后,我将在第二个类别中没有针对类别的过滤器,允许它显示三个帖子并将其偏移一个,这样就可以避免第一个。
我意识到无论如何,如果要加载四个最新的,无论是先加载一个,然后在第二个块上进行偏移,它都可以工作。但问题是我不确定将来是否足够,因为我们可以选择突出显示某个特定的内容,即使有新帖子也不会改变。
我正在使用presspack,这是一个基于Webpack的带有引导程序的Docker映像。主页中的代码是这样的:
<div class="row mt-5"> <!-- ROW START -->
<?php // FIRST QUERY - DESTAQUES
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args_destaque = array(
'post_type' => array('post'),
'category__in' => array('23'),
'post_status' => 'publish',
'order' => 'DESC',
'orderby' => 'date',
'posts_per_page' => 1,
'paged' => $paged,
);
// WP_Query
$query_destaque = new WP_Query( $args_destaque );
if ($query_destaque->have_posts()) : // The First Loop
?>
<div class="col-lg-7 mb-3 mb-lg-0 D-animated D-wow fadeInLeft">
<?php
while ($query_destaque->have_posts()): $query_destaque->the_post();
?>
<div class="blog-post-destaque rounded">
<div class="post-img rounded">
<?php the_post_thumbnail('medium_large', array('class' => 'w-100 img-fluid')); ?>
<h5 class="destaque-tag mt-n3 mt-lg-0">Em destaque</h5>
<h3 class="post-title"><a href="<?php the_permalink(); ?>"><?php echo home_post_title('76'); ?></a></h3>
</div>
<div class="post-card pb-3">
<h4 class="post-category">Em: <a href="">Fisioterapia Obstétrica</a> - <?php the_time("F d, Y"); ?></h4>
<p class="post-resumo"><?php the_excerpt(); ?></p>
</div>
</div>
<?php endwhile; wp_reset_query(); ?> <?php endif; ?>
</div>
<?php
$args_seguintes = array(
'post_type' => array('post'),
'post_status' => 'publish',
'order' => 'DESC',
'orderby' => 'date',
'posts_per_page' => 3,
'paged' => $paged,
'offset' => -1,
);
$query_seguintes = new WP_Query( $args_seguintes );
if ($query_seguintes->have_posts()) : // Second Loop
?>
<div class="col-lg-5 D-animated D-wow fadeInRight">
<?php
while ($query_seguintes->have_posts()): $query_seguintes->the_post();
?>
<div class="blog-post-normal mb-3 rounded">
<div class="card-horizontal">
<div class="post-img float-left">
<?php the_post_thumbnail('medium_large', array('class' => 'h-100 img-fluid')); ?>
</div>
<div class="post-card float-right p-3">
<h5 class="post-category ">
<a href="<?php get_category_link(); ?>"><?php get_category(); ?></a>
</h5>
<h2 class="post-title"><a href="<?php the_permalink(); ?>"><?php echo home_post_title('76'); ?></a></h2>
<p class="post-resumo"><?php the_excerpt(); ?></p>
<a href="#" class="btn btn-warning float-right d-none d-lg-block">Clique para ler mais</a>
<a href="#" class="float-right d-lg-none">Clique para ler mais</a>
</div>
</div>
<?php endwhile; wp_reset_query(); ?>
<?php endif; ?>
</div>
</div> <!--- ROW END ---->
请注意,我正在获得带有自定义句柄的帖子标题,该句柄会计算原始帖子标题字符的长度,如果大于传递的值,它将加载一个自定义字段,我可以在其中设置一个较小的标题。这样我们可以避免省略号。
您会看到第一个查询和第二个查询之间的一些差异,例如:第二个查询没有这个$paged
,因为我试图解决它的出现。
如您在上图中所看到的,页面在左列中以高亮显示了一个帖子,然后在右边的一个帖子中加载了一个帖子,应该是三个,只是图像,没有文本或链接。页脚也消失了。我猜循环有问题,因此会杀死其余的代码。控制台上没有任何显示。
不确定发生了什么,但是我很奇怪,我一直在看这段代码很久了,以至于我看不到任何错误。