#php #html #css #wordpress #loops
#php #HTML #css #wordpress #циклы
Вопрос:
Контекст: я создал цикл с использованием PHP для создания динамической ленты сообщений моего портфолио на моем сайте WordPress.
Проблема: первые пять сообщений отображаются отлично; однако все остальные сообщения, следующие за ним, не отображаются. Я не уверен, в чем может быть причина, но буду признателен за любую помощь. Спасибо.
<section id="portfolio">
<div class="container-fluid">
<div class="row justify-content-center mb-5 pb-5 animatedParent animateOnce" data-sequence="100">
<?php
$portfolioPosts = new WP_Query('cat=8amp;orderby=date');
if ($portfolioPosts->have_posts()) {
$i = 1;
while ($portfolioPosts->have_posts()) {
$portfolioPosts->the_post();
if ($i == 1){
?>
<div class="col-10">
<div class="row no-gutters">
<div class="col-12 col-md-12 col-lg-6">
<div class="row no-gutters">
<div class="col-12 animated fadeIn delay-300" data-id="1" style="background-image:url('<?php the_post_thumbnail_url(); ?>');background-size:100% auto;">
<a href="<?php the_permalink(); ?>"><img alt="" src="<?php echo get_template_directory_uri();?>/assets/images/blank-portfolio3.png" class="img-fluid image-hover-portfolio"></a><!-- 12:4 -->
</div>
</div>
<div class="row no-gutters">
<div class="col-6">
<div class="row no-gutters">
<?php
} else if ($i == 2){
?>
<div class="col-12 animated fadeIn delay-300" data-id="2" style="background-image:url('<?php the_post_thumbnail_url(); ?>');background-size: auto 100%;">
<a href="<?php the_permalink(); ?>"><img alt="" src="<?php echo get_template_directory_uri();?>/assets/images/blank-portfolio2.png" class="img-fluid image-hover-portfolio"></a><!-- 4:12 -->
</div>
</div>
</div>
<div class="col-6">
<div class="row no-gutters">
<?php
} else if ($i == 3){
?>
<div class="col-12 animated fadeIn delay-300" data-id="3" style="background-image:url('<?php the_post_thumbnail_url(); ?>');background-size: 100% auto;">
<a href="<?php the_permalink(); ?>"><img alt="" src="<?php echo get_template_directory_uri();?>/assets/images/blank-portfolio1.png" class="img-fluid image-hover-portfolio"></a><!-- 4:3 -->
</div>
<?php
} else if ($i == 4){
?>
<div class="col-12 animated fadeIn delay-300" data-id="4" style="background-image:url('<?php the_post_thumbnail_url(); ?>');background-size: 100% auto;">
<a href="<?php the_permalink(); ?>"><img alt="" src="<?php echo get_template_directory_uri();?>/assets/images/blank-portfolio1.png" class="img-fluid image-hover-portfolio"></a><!-- 4:3 -->
</div>
<?php
} else if ($i == 5){
?>
<div class="col-12 animated fadeIn delay-300" data-id="5" style="background-image:url('<?php the_post_thumbnail_url(); ?>');background-size: 100% auto;">
<a href="<?php the_permalink(); ?>"><img alt="" src="<?php echo get_template_directory_uri();?>/assets/images/blank-portfolio1.png" class="img-fluid image-hover-portfolio"></a><!-- 4:3 -->
</div>
</div>
</div>
</div>
<div class="row no-gutters">
<?php
} else if ($i == 6){
?>
<div class="col-12 animated fadeIn delay-300" data-id="6" style="background-image:url('<?php the_post_thumbnail_url(); ?>');background-size: 100% auto;">
<a href="<?php the_permalink(); ?>"><img alt="" src="<?php echo get_template_directory_uri();?>/assets/images/blank-portfolio3.png" class="img-fluid image-hover-portfolio"></a><!-- 12:4 -->
</div>
</div>
</div>
<?php
} else if ($i == 7){
?>
<div class="col-12 col-md-12 col-lg-6">
<div class="row no-gutters">
<div class="col-6 animated fadeIn delay-300" data-id="7" style="background-image:url('<?php the_post_thumbnail_url(); ?>');background-size: 100% auto;">
<a href="<?php the_permalink(); ?>"><img alt="" src="<?php echo get_template_directory_uri();?>/assets/images/blank-portfolio1.png" class="img-fluid image-hover-portfolio"></a><!-- 4:3 -->
</div>
<?php
} else if ($i == 8){
?>
<div class="col-6 animated fadeIn delay-300" data-id="8" style="background-image:url('https://theartoflight.co/wp-content/uploads/2020/12/web_KOS3273.jpg');background-size: 100% auto;">
<a href=""><img alt="" src="<?php echo get_template_directory_uri();?>/assets/images/blank-portfolio1.png" class="img-fluid image-hover-portfolio"></a><!-- 4:3 -->
</div>
</div>
<div class="row no-gutters">
<?php
} else if ($i == 9){
?>
<div class="col-12 animated fadeIn delay-300" data-id="9" style="background-image:url('<?php the_post_thumbnail_url(); ?>');background-size: auto auto;">
<a href="<?php the_permalink(); ?>"><img alt="" src="<?php echo get_template_directory_uri();?>/assets/images/blank-portfolio3.png" class="img-fluid image-hover-portfolio"></a><!-- 12:4 -->
</div>
</div>
<div class="row no-gutters">
<div class="col-6">
<div class="row no-gutters">
<?php
} else if ($i == 10){
?>
<div class="col-12 animated fadeIn delay-300" data-id="10" style="background-image:url('<?php the_post_thumbnail_url(); ?>');background-size: 100% auto;">
<a href="<?php the_permalink(); ?>"><img alt="" src="<?php echo get_template_directory_uri();?>/assets/images/blank-portfolio1.png" class="img-fluid image-hover-portfolio"></a><!-- 4:3 -->
</div>
<?php
} else if ($i == 11){
?>
<div class="col-12 animated fadeIn delay-300" data-id="11" style="background-image:url('<?php the_post_thumbnail_url(); ?>');background-size: 100% auto;">
<a href="<?php the_permalink(); ?>"><img alt="" src="<?php echo get_template_directory_uri();?>/assets/images/blank-portfolio1.png" class="img-fluid image-hover-portfolio"></a><!-- 4:3 -->
</div>
<?php
} else if ($i == 12){
?>
<div class="col-12 animated fadeIn delay-300" data-id="12" style="background-image:url('<?php the_post_thumbnail_url(); ?>');background-size: 100% auto;">
<a href="<?php the_permalink(); ?>"><img alt="" src="<?php echo get_template_directory_uri();?>/assets/images/blank-portfolio1.png" class="img-fluid image-hover-portfolio"></a><!-- 4:3 -->
</div>
</div>
</div>
<div class="col-6">
<div class="row no-gutters">
<?php
} else if ($i == 13){
?>
<div class="col-12 animated fadeIn delay-300" data-id="13" style="background-image:url('<?php the_post_thumbnail_url(); ?>');background-size: auto 100%;">
<a href="<?php the_permalink(); ?>"><img alt="" src="<?php echo get_template_directory_uri();?>/assets/images/blank-portfolio2.png" class="img-fluid image-hover-portfolio"></a><!-- 4:12 -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
}else{
//do nothing
}
$i ;
}
} else {
}
wp_reset_postdata();
?>
</div>
</div>
</section>
Комментарии:
1. вы проверили, сколько сообщений на самом деле возвращает запрос?
2. Привет @ADyson, да, браузер отображает пять сообщений. У меня около 13 сообщений в категории блог.
3. ОК. Но вы отладили код и проверили, сколько сообщений на самом деле возвращает этот конкретный запрос ? например, вы можете записать значение
$i
в начале цикла, чтобы увидеть, насколько оно велико.4. Также, какова ваша настройка «сообщений на страницу» по умолчанию? Потому что вы не изменяете его в своем запросе. Так что это может быть фактором. developer.wordpress.org/reference/classes/wp_query /…
Ответ №1:
В вашем запросе отсутствует 1 аргумент (posts_per_page), поскольку он не задан, запрос использует значение по умолчанию из ваших настроек-> Чтение:
$args = [
'cat' => 8,
'orderby' => 'date',
'order' => 'ASC',
'posts_per_page' => -1
];
$portfolioPosts = new WP_Query($args);
Комментарии:
1. Спасибо @Angel Deykov! WordPress по умолчанию не отображал пять сообщений на страницу; для справки это код, который я использовал.
$portfolioPosts = new WP_Query('cat=8amp;posts_per_page=13amp;orderby=date');