数组/循环数到get_post_meta

时间:2014-04-17 19:37:21

标签: php arrays wordpress loops

我在WordPress中发布了meta,它存储了slide_image1 - 9,以及slide_text1-9和slide_embed1-9。

我希望能够遍历所有可能性,并存储元值(如果有的话),然后检查它们是否为空以决定是否应显示幻灯片。基本上,我们想说,检查该幻灯片#的任何数据,如果有值,则显示幻灯片。

这就是我现在所拥有的:

for ($i = 1; $i < 10; $i++) {
$slide_image . $i = get_post_meta($post->ID, 'slide_image'.$i, true);
$slide_embed . $i = get_post_meta($post->ID, 'slide_embed'.$i, true);
$slide_text . $i = get_post_meta($post->ID, 'slide_text'.$i, true);
if ($slide_image.$i !=='' || $slide_embed.$i !=='' || $slide_text.$i !==''){
echo 'there is a thing for this'
}}

这显然不起作用 - 我假设我需要使用数组,但我无法弄明白 - 任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

$slides = [];

for ($i = 1; $i < 10; $i++) {
    $slides[$i]['image'] = get_post_meta($post->ID, 'slide_image'.$i, true);
    $slides[$i]['embed'] = get_post_meta($post->ID, 'slide_embed'.$i, true);
    $slides[$i]['text'] = get_post_meta($post->ID, 'slide_text'.$i, true);

    if ($slides[$i]['image'] !=='' || $slides[$i]['embed'] !=='' || $slides[$i]['text'] !=='') {
        echo 'there is a thing for this'
    }
}

从您的问题来看,如果幻灯片具有所有属性,或者是否具有任何属性,是否要显示幻灯片并不十分清楚。您所拥有的代码是:“如果我有任何可用数据,请显示幻灯片”,而不是“如果我有所有可用数据,请显示幻灯片”。

答案 1 :(得分:0)

您必须将$side_image和以下内容定义为数组:

$slide_image = []; // or $slide_image = array();
$slide_embed = [];
$slide_text = [];

现在你可以在你的for循环中使用它:

$slide_image[$i] = get_post_meta($post->ID, 'slide_image'.$i, true);