错误strip_tags()和为foreach()提供的无效参数

时间:2014-08-29 16:20:59

标签: php

在我的代码中,booklist是一个自定义的帖子类型,其中booklink作为自定义字段。这本书单是自定义帖子类型书籍的后期对象

我一直收到此错误

  

strip_tags()期望参数1为第11行的字符串

     

为第12行的foreach()提供的参数无效

<?php

$all= get_posts(array('post_type' => 'books', 'numberposts' => -1,));

foreach ( $all as $post ) :  setup_postdata($post);

    if (!empty($post))
    {
     $booklink = array();

     $booklist = strip_tags(get_field('booklist')); 
               foreach ($booklist as $post) : setup_postdata($post);
                    if (!empty($post))
                        {
                        $booklink[] = strip_tags(get_field('booklink',$post));                                       
                        }
                endforeach;
                wp_reset_postdata();
echo $booklink[0]; 

    }
endforeach;
?>

2 个答案:

答案 0 :(得分:1)

我已添加endforeach并删除了get_field的条形码代码,它解决了问题。

答案 1 :(得分:0)

您在这里将$booklist视为字符串(strip_tags返回一个字符串)

$booklist = strip_tags(get_field('booklist')); 

然后在这里作为一个数组

foreach ($booklist as $post) :

你不能这样做。 foreach需要一个数组。

你需要做什么(假设get_field返回一个数组,因为它显然没有返回一个字符串)循环遍历数组并在那里运行函数

$booklist = get_field('booklist');
foreach ($booklist as $post) :
    $post = strip_tags($post);