我正在使用一个名为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);
}
最合适的回答,由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;
};