Php 循环遍历数组并返回值和HTML
我将post ID存储在一个数组中。我想在数组中循环并显示包含Php 循环遍历数组并返回值和HTML,php,arrays,loops,if-statement,while-loop,Php,Arrays,Loops,If Statement,While Loop,我将post ID存储在一个数组中。我想在数组中循环并显示包含和标记的中的ID,但仅当数组中至少有一个ID时。如果数组为空,则无法返回html。这意味着我应该在循环之前使用某种if语句。不用说,我的php技能非常基础,经过两天的努力,我一事无成。谢谢你的帮助 我的代码(使用Wordpress) 这里有一个更新。我很抱歉发布了所有这些代码,因为很多事情都很混乱。这是三个(或更多)的第二个循环。在几乎相同的第一个循环中显示的ID已被传递。为了不显示任何重复的帖子,只显示上一个循环未检索到的ID 我尝
和
标记的中的ID,但仅当数组中至少有一个ID时。如果数组为空,则无法返回html。这意味着我应该在循环之前使用某种if语句。不用说,我的php技能非常基础,经过两天的努力,我一事无成。谢谢你的帮助
我的代码(使用Wordpress)
这里有一个更新。我很抱歉发布了所有这些代码,因为很多事情都很混乱。这是三个(或更多)的第二个循环。在几乎相同的第一个循环中显示的ID已被传递。为了不显示任何重复的帖子,只显示上一个循环未检索到的ID
我尝试删除所有HTML标记,并在之后使用新的WP_查询查询$postids,但这会检索我创建的所有帖子。我很确定这是继续下去的正确方式,尽管我显然做错了什么
<?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.
};
?>
有几种方法可以做到这一点
if ($postids){ //$postids is TRUE (ie $postids is not an empty array)
//do your output
}
或
习惯于真实和真实的简单测试!false是你的朋友有几种方法可以做到这一点
if ($postids){ //$postids is TRUE (ie $postids is not an empty array)
//do your output
}
或
习惯于真实和真实的简单测试!false是你的朋友可能是这样的吗?您应该自定义此代码以检索帖子的内容,或者您想做的任何事情
<?php
$postIds = array(1, 2, 3, 4, 5);
?>
<html>
<head>
<title>Post IDs!</title>
</head>
<body>
<h1>Post IDs!</h1>
<?php if(empty($postIds)): ?>
<p>There are no post IDs :(</p>
<?php else: ?>
<ul>
<?php foreach($postIds as $postId): ?>
<li><?php echo $postId; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</body>
</html>
张贴身份证!
张贴身份证!
没有post ID:(
可能是这样的吗?您应该自定义此代码以检索帖子的内容,或者您想做的任何事情
<?php
$postIds = array(1, 2, 3, 4, 5);
?>
<html>
<head>
<title>Post IDs!</title>
</head>
<body>
<h1>Post IDs!</h1>
<?php if(empty($postIds)): ?>
<p>There are no post IDs :(</p>
<?php else: ?>
<ul>
<?php foreach($postIds as $postId): ?>
<li><?php echo $postId; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</body>
</html>
张贴身份证!
张贴身份证!
没有post ID:(
这应该可以:
<?php
// assuming you have an array of ids called $postids
if(count($postids)){
echo "<div><ul>";
foreach($postids as $id){
echo "<li>$id</li>";
}
echo "</ul></div>";
}
?>
count()
返回数组中的元素数$id
。除零以外的任何数字都将计算为true
,并输入if语句,零将计算为false
,整个过程将被跳过
foreach($ids as $id){
这将遍历数组中的每个元素$id
,并将其分配给变量$id
。希望echo
语句是自解释的。这应该可以:
<?php
// assuming you have an array of ids called $postids
if(count($postids)){
echo "<div><ul>";
foreach($postids as $id){
echo "<li>$id</li>";
}
echo "</ul></div>";
}
?>
count()
返回数组中的元素数$id
。除零以外的任何数字都将计算为true
,并输入if语句,零将计算为false
,整个过程将被跳过
foreach($ids as $id){
这将循环遍历数组中的每个元素$id
,并将其分配给变量$id
。希望echo
语句是自解释的。多亏Gordon的大力帮助,我现在有了一个可行的解决方案。所有html都从上面凌乱的原始代码中删除。下面的if语句和foreach loop以一种简单方便的方式呼应html。现在,对和标记进行样式化非常简单
<?php
if(count($postids)){
echo "<div>Related posts<ul>";
foreach($postids as $id){
echo '<li><a href="'.get_permalink( $id ).'">'.get_the_title( $id ).'</a></li>';
}
echo "</ul></div>";
}
?>
多亏了Gordon的大力帮助,我现在有了一个可行的解决方案。所有html都从上面凌乱的原始代码中删除。下面的if语句和foreach循环以一种简单方便的方式呼应html。和标记的样式现在非常简单
<?php
if(count($postids)){
echo "<div>Related posts<ul>";
foreach($postids as $id){
echo '<li><a href="'.get_permalink( $id ).'">'.get_the_title( $id ).'</a></li>';
}
echo "</ul></div>";
}
?>
基本上,我已经尝试找出如何使用以下标题文本循环数组,但没有任何运气!基本上,我已经尝试找出如何使用以下标题文本循环数组,但没有任何运气!谢谢。你的建议很有效,但问题是我在执行if条件之前循环了数组。如果我把它放在我的循环中,它将为循环中检索到的每个帖子输出标题。标题文本是标题文本,并且能够按照我的喜好设置标题样式。在包含帖子的之后输出标题看起来很有希望ess和充其量只能处理一些丑陋的位置css攻击。我将尝试更新我的问题并包含我的代码,希望它会更有意义。谢谢你,弗雷德!戈登的解决方案是开箱即用的。我打赌你的解决方案也能解决我的问题,只要我的技能更好地完成最后一步。谢谢。你的建议RK很好,但问题是我在执行if条件之前循环数组。如果我将其放入循环中,它将为循环中检索到的每个帖子输出标题。标题文本用于标题文本,并且能够根据我的喜好对标题进行样式设置。在包含帖子的之后输出标题看起来非常没有希望,最多只能在这是一些丑陋的位置css攻击。我会尝试更新我的问题,并加入我的代码,希望它会更有意义。谢谢你,弗雷德!戈登的解决方案是开箱即用的。我打赌你的解决方案也会解决我的问题,只要我的技能更好地完成最后一步。谢谢你,含糊不清!我有两个建议可以使用帮助我解决了问题。你的建议似乎与戈登的解决方案一致。谢谢你!我有两个建议可以帮助我解决问题。你的建议似乎与戈登的解决方案一致。