Проблема с «условным тегом»: если пустая

Я пробовал какое-то время, чтобы сделать так, чтобы ничего не показывалось, если нет связанных сообщений. В настоящее время отображаются заголовок и контейнер (конечно, пустой).

Как я уже сказал, я много пробовал, и я пришел к выводу, что может быть слишком сложно, если не невозможно избавиться от всего, поскольку код довольно сложный:

<h2>Related Posts</h2> <!-- "previous page" action --> <a class="prev browse left"></a> <!-- root element for scrollable --> <div class="scrollable" id=chained> <!-- root element for the items --> <div class="items"> <!-- post 1-4 --> <div> <?php $backup = $post; $tags = wp_get_post_tags($post->ID); if ($tags) { $tag_ids = array(); foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id; $args=array( 'tag__in' => $tag_ids, 'post__not_in' => array($post->ID), 'showposts'=>4, // Number of related posts that will be shown. 'caller_get_posts'=>1 ); $my_query = new wp_query($args); if( $my_query->have_posts() ) { while ($my_query->have_posts()) { $my_query->the_post(); ?> <div class="relatedPosts"><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_post_thumbnail(array(120,80)); ?></a> <div class="relatedPosts_title"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></div></div> <?php } echo ''; } } $post = $backup; wp_reset_query(); ?> </div> <!-- post 5-8 --> <div> ...... </div> </div> </div> <!-- "next page" action --> <a class="next browse right"></a> 

Вместо этого я хочу оставить заголовок и контейнер, но сделайте так, чтобы контейнер не был пустым.

Для этого я хочу использовать тег «if» или «elseif»

Что-то вроде того:

 <!-- If there are no related posts:--> <p class="noposts">Sorry, but there are no related posts for this particular entry.</p> 

Я просто не могу понять, как правильно его реализовать. Было бы здорово, если бы кто-нибудь с небольшим знанием условных тегов мог помочь мне понять это. Большое спасибо! 🙂

Solutions Collecting From Web of "Проблема с «условным тегом»: если пустая"

Я не понимаю, почему было бы невозможно сделать то, что вы хотите сделать. Я думаю, вам просто нужно немного перестроить. Сначала разместите свой код пользовательского запроса, а затем разместите свою HTML-разметку внутри if ( $my_query->have_posts() ) , а затем разместите разметку сопутствующей почты внутри while ( $my_query->have_posts() ) , затем поставьте no -related-post markup внутри оператора else {} , затем поместите свою закрывающую HTML-разметку вне инструкции else {} , затем закройте оператор while :

 <?php // First, backup the default $postdata $backup = $post; // Now, override the default $tags = wp_get_post_tags($post->ID); // Now, open the if ( $tags ) statement if ($tags) { $tag_ids = array(); foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id; // Now, setup your custom query args $args=array( 'tag__in' => $tag_ids, 'post__not_in' => array($post->ID), 'showposts'=>4, // Number of related posts that will be shown. 'caller_get_posts'=>1 ); // Now, perform your custom query $my_query = new wp_query($args); // Next, open your custom query IF statement if( $my_query->have_posts() ) { // We have posts, so let's output the opening-containing markup ?> <h2>Related Posts</h2> <!-- "previous page" action --> <a class="prev browse left"></a> <!-- root element for scrollable --> <div class="scrollable" id=chained> <!-- root element for the items --> <div class="items"> <!-- post 1-4 --> <div> <?php // Now, open your custom query WHILE statement while ($my_query->have_posts()) { $my_query->the_post(); ?> <div class="relatedPosts"><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_post_thumbnail(array(120,80)); ?></a> <div class="relatedPosts_title"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></div></div> <?php // Now, close the while $my_query->have_posts() statement } // I'm not sure why this is here? echo ''; // Now, output your closing-containing HTML content ?> </div> </div> </div> <!-- "next page" action --> <a class="next browse right"></a> <?php // Now, close the if $my_query->have_posts() statement // and open the ELSE statement, for your no-posts content } else { ?> <!-- If there are no related posts:--> <p class="noposts">Sorry, but there are no related posts for this particular entry.</p> <?php // Now, close the ELSE statement } // Now, close the if ( $tags ) statement } // Now, reset the default query $post = $backup; wp_reset_query(); ?> 

Примечание. Я удалил «Post 5-8» divs, так как я не был уверен, как они должны были вписаться в эту разметку.