Я храню почтовые идентификаторы в массиве.Я хотел бы перебрать массив и отобразить идентификаторы в пределах <div>
, содержащих теги <p>
и <ul>
, но только когда хотя бы один идентификатор находится в массиве.Если массив пуст, html не может быть возвращен.Это подразумевает, что я должен использовать какой-то оператор if перед циклом.Излишне говорить, что мои php-навыки довольно просты, и после двух дней напряженных попыток я ничего не получаю.Благодарен за помощь!
Мой код (с помощью Wordpress)
$postids = array();
...
$postids [] = $post->ID; //stores the post IDs in the array
Вот обновление.Я извиняюсь за публикацию всего этого кода, поскольку он довольно запутан со многими происходящими вещами.Это второй цикл из трех (или более).Идентификаторы, отображаемые в почти идентичном первом цикле, были переданы.Отображаются только те идентификаторы, которые не были получены предыдущим циклом, чтобы не показывать дубликаты сообщений.
Я попытался удалить всю разметку HTML и запросить $ postids с новым WP_Query после этого, но при этом будут получены все сообщения, которые я когда-либо создал.Я уверен, что это правильный путь, хотя я, очевидно, что-то делаю не так.
<?php
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$first_tag = $tags[1]->term_id;
$args=array(
'tag__in' => array($first_tag),
'post__not_in' => array($post->ID),
'showposts'=>5, //Display this number of related posts
'ignore_sticky_posts'=>1
);
$postids = array();
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
echo '<ul id="relatedposts">';
while ($my_query->have_posts()) : $my_query->the_post(); if (!in_array($post->ID, $ids)) {; $postids [] = $post->ID; ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php }
$ids[]= $post->ID;
endwhile;
}
}
?>
</ul>
<?php if ($postids){ //$postids has at least one value set
echo '<div>Related posts</div>'; //Outputting the header text. This works! If there are no IDs in the array nothing is shown.
};
?>