После того, как я выполнил приведенный ниже код add_filter в первом плагине, я не могу использовать bp_core_fetch_avatar() во втором плагине или в теме, он отображает один и тот же аватар для каждого пользователя, почему? Как я могу это исправить? get_avatar может отображать другую базу аватара для пользователя, за исключением того, что он не может распознать $gender, который я создаю в плагине, который скажет, является ли он женщиной или мужчиной, поэтому аватар будет назначать базу по полу. Я пытаюсь передать какой-то параметр, например $gender, который я создал в плагине, поэтому я думаю, что должен использовать bp_core_fetch_avatar(), кстати, может ли get_avatar передать параметр из плагина? Я знаю get_avatar($id, $size, $default, $alt). В любом случае, я хочу знать, почему bp_core_fetch_avatar() выводит один и тот же аватар для каждого пользователя после добавления фильтра, я уже добавляю 'item_id'=>"$id". Спасибо
<?php
add_filter('bp_core_fetch_avatar',array($this,'set_buddypress_avatar'), 10, 1);
?>
<?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;
}
}
?>