我在第一个插件中执行下面的add_filter代码后,我不能在第二个插件或主题中使用bp_core_fetch_avatar(),它为每个用户回显相同的头像,为什么?我怎样才能解决这个问题? get_avatar可以回显出用户不同的头像基础,除了它无法识别我在插件中创建的$性别,这将告诉它是女性还是男性,因此头像将根据性别进行分配。我试图传递一些参数,比如我在插件中创建的$ gender,这就是为什么我认为我应该想出使用bp_core_fetch_avatar(),顺便说一句,get_avatar可以从插件传递一个参数吗?我知道get_avatar($ id,$ size,$ default,$ alt)。无论如何,我想知道为什么bp_core_fetch_avatar()在执行add_filter之后为每个用户回显相同的头像,我已经添加' item_id' =>" $ id"。感谢
<?php
add_filter('bp_core_fetch_avatar',array($this,'set_buddypress_avatar'), 10, 1);
?>
&#13;
<?php
public function set_buddypress_avatar($html_data = ''){
$html_doc = new DOMDocument();
$html_doc->loadHTML($html_data);
$image = $html_doc->getElementsByTagName('img');
foreach($image as $data) {
$original_image = $data->getAttribute('src');
$size = $data->getAttribute('width');
$alt = $data->getAttribute('alt');
if (stripos($alt, 'Profile picture of ') === 0){ // if our alt attribute has "profile picture of" in the beginning...
$name = str_replace('Profile picture of ', '', $alt);
} else if (stripos($alt, 'Profile photo of ') === 0){ // or profile photo of...
$name = str_replace('Profile photo of ', '', $alt);
} else { // if there is some problem - just assign alt to name
$name = $alt;
}
}
?>
&#13;
答案 0 :(得分:0)
我想知道为什么bp_core_fetch_avatar()回显相同的头像 每个用户在执行add_filter
之后
因为您向核心BP功能添加了过滤器。 在课程结束后尝试删除过滤器。