将数组数据传递给循环中的变量

Posted

技术标签:

【中文标题】将数组数据传递给循环中的变量【英文标题】:Passing array data to a variable in a loop 【发布时间】:2019-01-14 15:59:39 【问题描述】:

如何在循环中将$the_slug 的内容传递给$post_name 变量?

$tags = get_the_tags();
foreach ($tags as $tag)

global $post;
$the_slug = $tag->slug; //contains 10ish words that associate with my permalinks: welcome, home, about, contact, etc

$post_id = 'welcome';
$post_name = $the_slug; //fails to populate here
$queried_post = get_post($post_name); //if changed to $post_id works but only 'welcome' post
$excerpt = $queried_post->post_excerpt;
$excerpt = apply_filters('the_content', $excerpt);
$excerpt = str_replace(']]>', ']]>', $excerpt);
echo $excerpt . "\n\n";

感谢您的关注。

【问题讨论】:

我们需要更多信息。 $tag->slug 是数组还是字符串? get_post 函数长什么样子? get_post 的第一个参数必须是 Post ID 或 post 对象。我想说,这很可能是 ***.com/questions/14979837/… 的副本 $tag->slug 包含字符串:welcome、home、about、contact 等...$get_posts = get_posts($tag->slug);...get_posts 是一个 wordpress 数组,包含元:[ID]、[post_content]、[post_title]、[post_excerpt]、[post_status]、[comment_status] 等...我试图让我的标签描述提取同名/slug 的帖子摘录. 【参考方案1】:

您可以使用 foreach 循环遍历数组:

foreach($the_slug as $slug)
   $post_name = $slug;
   $queried_post = get_post($post_name); $excerpt = $queried_post->post_excerpt;
   $excerpt = apply_filters('the_content', $excerpt);
   $excerpt = str_replace(']]>', ']]>', $excerpt);
   echo $excerpt . "\n\n";

【讨论】:

谢谢,这更接近我想要实现的目标。我认为,我收到了一个“为 foreach() 提供的无效参数”,它指向我的数组。转储的数组包含 10 个应该可以工作的字符串,不是吗? 你可以在这里发布结果:var_dump($the_slug) 吗? $the_slug = $tag->slug; var_dump ($the_slug); string(7) "welcome" string(4) "home" string(5) "about" string(7) "contact"......我知道这是关于遍历数组的东西,但我很难看到什么。标签正在显示,我可以提取我所在的帖子的摘录,但不能提取链接到我的标签的帖子。我想我应该能够使用一个变量来添加到 foreach 循环中。 它没有说 $the_slug 是一个数组,它应该像 array(3)[0]=> string(7) "welcome" [1]=>string(4) " home" [2]=>string(5) "about" [3]=>string(7) "contact" 你粘贴了整个输出吗? 现在说得通了。谢谢。认为我需要重新编写我的函数。我的印象是该变量是一个数组,因为它在 foreach 循环中的不同帖子中循环。再次感谢。

以上是关于将数组数据传递给循环中的变量的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据传递给 ASP.NET MVC 中的模式视图

通过TableView将XML数组数据传递给CollectionView

如何通过数组将数据传递给表格视图?

如何将变量数据传递给 createFragementContainer

试图通过管道将 C 中生成的数据传递给 Java 类。传递变量在java中出现空白而不是有数据

使用 Bundle 将数组数据传递给 listview click 上的另一个活动