为什么我不能从Foreach中调用(成员)函数?

时间:2012-05-22 作者:Kristoffer Nolgren

我正在使用一个名为media tags的插件。。。

foreach如下所示(尽可能简化)

foreach($mediatags as $mediatag){
 $args = \'media_tags=animals&numberposts=10&return_type=li&size=thumbnail\';
 $media_items = get_attachments_by_media_tags($args);
 echo $media_items;
};
运行完全相同的代码是一个foreach:

$args = \'media_tags=animals&numberposts=10&return_type=li&size=thumbnail\';
 $media_items = get_attachments_by_media_tags($args);
 echo $media_items;
效果很好,但当我在foreach中运行它时,会出现以下错误:

Call to a member function get_attachments_by_media_tags() on a non-object in /home/nuagency/dev.nuagency.se/wp-content/plugins/media-tags/mediatags_template_functions.php on line 128
转到文件中的第128行,我看到:

function get_attachments_by_media_tags($args=\'\')
{
    global $mediatags;

    return $mediatags->get_attachments_by_media_tags($args);
}

1 个回复
最合适的回答,由SO网友:Eugene Manuilov 整理而成

您使用$mediatags 全局范围中的变量作为循环中的数组,然后尝试在函数中使用与对象相同的变量。

您覆盖了全局$mediatags 循环中的变量。尝试使用以下代码:

foreach($new_name_for_mediatags_array as $mediatag){
 $args = \'media_tags=animals&numberposts=10&return_type=li&size=thumbnail\';
 $media_items = get_attachments_by_media_tags($args);
 echo $media_items;
};

结束

相关推荐

要从页眉中的Page.php中排除滑块

我知道这是一个愚蠢的问题,但为了我的生命之爱,我无法让代码正常工作。我有三个页面模板:主页、页面和另一个按类别划分的页面。我有一个要从默认页面中排除的滑块。php文件,但要在其他地方显示。我试着用is_page_template , 但这是行不通的。任何帮助都将不胜感激。我不确定你是否需要我的头代码。如果你这样做了,请留下评论,我会贴在pastebin中。提前非常感谢。