Php 如果循环不返回POST,如何隐藏包含文本的div?
第一个循环基于主标记检索与当前帖子相关的帖子。下面显示的第二个循环基于次要标记获取帖子。如果一篇文章由第一个循环显示,则第二个循环将其排除在检索范围之外,这样就不会有重复的文章 如果没有与当前post by标记匹配的post,则不显示任何内容。这就是我的问题所在。我需要Php 如果循环不返回POST,如何隐藏包含文本的div?,php,css,wordpress,html,echo,Php,Css,Wordpress,Html,Echo,第一个循环基于主标记检索与当前帖子相关的帖子。下面显示的第二个循环基于次要标记获取帖子。如果一篇文章由第一个循环显示,则第二个循环将其排除在检索范围之外,这样就不会有重复的文章 如果没有与当前post by标记匹配的post,则不显示任何内容。这就是我的问题所在。我需要的内部(或外部)额外的元素来显示标题文本“relatedposts”(应用了一些样式,如背景色)。如果没有匹配的帖子,则不会显示,但此时会为查询检索到的每个帖子返回标题“relatedposts”。我可以看到,目前显示的每一个帖子
的内部(或外部)额外的元素来显示标题文本“relatedposts”(应用了一些样式,如背景色)。如果没有匹配的帖子,则不会显示,但此时会为查询检索到的每个帖子返回标题“relatedposts”。我可以看到,目前显示的每一个帖子都会得到回应。我不知道如何修改代码,使其仅在帖子上方显示一次
<ul id="related">
<?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'=>3, //Display this number of related posts
'ignore_sticky_posts'=>1
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); if (!in_array($post->ID, $ids)) {; echo '<div id="relatedheader">Related posts</div>'; ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php } endwhile;
}
}
?></ul>
将逻辑与演示分开。将收集帖子和相关帖子的所有代码移到顶部,或移到其他文件或函数,并将数据存储在数组中。然后,当您到达输出HTML的部分时,您已经知道是否有相关帖子,并且可以使用if条件来决定是否输出标题。谢谢。你的建议很有帮助。我清除了所有html,并将其替换为存储ID的$idspost[]=$post->ID
。我已使用
进行了检查,正确的ID写在页面上。然而,我花了很多时间试图找出如何将信息传递到if条件,但我的技能非常基本。我把原来的评论搞乱了,换成了原来的代码:while($my_query->have_posts()):$my_query->the_post();如果(!in_array($post->ID,$ids)){;$idspost[]=$post->ID;?>
混合使用新的{}
和旧的while:endwhile;
语法并使用换行符,您的代码会变得有点难以阅读。请尝试重新格式化以使用所有{}
将每个语句块放在自己的行中,以便您和其他人更容易阅读和理解。我可以看到。我确实需要发布完整的原始代码以及上面的更改,但添加注释是不可能的。我需要回答自己的问题,以可读的方式呈现代码,我想t是不合适的,因为我还在寻找答案。也许我应该用新的思路问一个新的更具体的问题?