这个插件php wordpress中的全局类名是什么


What is the global class name in this plugin php wordpress?

我正试图从这个插件中remove_filter,因为wordpress引用了

global $my_class;
remove_filter( 'the_content', array($my_class, 'class_filter_function') );

在这段代码中,我想删除一个'add_filter('bp_core_fetch_avatar', array($this, 'set_buddypress_avatar'), 10, 1);',这里的大问题是,$this是什么?我不能全局$this,那么下面代码中的$my_class是什么?

我试过CCD_ 6和CCD_,它给了我错误。

<?php
class BuddyPress_First_Letter_Avatar {
	// Setup (these values always stay the same):
	const BPFLA_IMAGES_PATH = 'images'; // avatars root directory
	const BPFLA_GRAVATAR_URL = 'https://secure.gravatar.com/avatar/';    // default url for gravatar - we're using HTTPS to avoid annoying warnings
	// Default configuration (this is the default configuration only for the first plugin usage):
	const BPFLA_USE_PROFILE_AVATAR = TRUE;  // TRUE: if user has his profile avatar, use it; FALSE: use custom avatars or Gravatars
	const BPFLA_USE_GRAVATAR = TRUE;  // TRUE: if user has Gravatar, use it; FALSE: use custom avatars or user's profile avatar
	const BPFLA_AVATAR_SET = 'default'; // directory where avatars are stored
	const BPFLA_LETTER_INDEX = 0;  // 0: first letter; 1: second letter; -1: last letter, etc.
	const BPFLA_IMAGES_FORMAT = 'png';   // file format of the avatars
	const BPFLA_ROUND_AVATARS = FALSE;     // TRUE: use rounded avatars; FALSE: dont use round avatars
	const BPFLA_IMAGE_UNKNOWN = 'mystery';    // file name (without extension) of the avatar used for users with usernames beginning
										// with symbol other than one from a-z range
	// variables duplicating const values (will be changed in constructor after reading config from DB):
	private $use_profile_avatar = self::BPFLA_USE_PROFILE_AVATAR;
	private $use_gravatar = self::BPFLA_USE_GRAVATAR;
	private $avatar_set = self::BPFLA_AVATAR_SET;
	private $letter_index = self::BPFLA_LETTER_INDEX;
	private $images_format = self::BPFLA_IMAGES_FORMAT;
	private $round_avatars = self::BPFLA_ROUND_AVATARS;
	private $image_unknown = self::BPFLA_IMAGE_UNKNOWN;
	public function __construct(){
		// add Settings link to plugins page:
		add_filter('plugin_action_links_' . plugin_basename(__FILE__), array($this, 'bpfla_add_settings_link'));
		// add stylesheets/scripts:
		add_action('wp_enqueue_scripts', array($this, 'bpfla_add_scripts'));
		// add filter to get_avatar:
		add_filter('get_avatar', array($this, 'set_comment_avatar'), 10, 5); // this will only be used for anonymous WordPress comments
		// add filter to bp_core_fetch_avatar:
		add_filter('bp_core_fetch_avatar', array($this, 'set_buddypress_avatar'), 10, 1);
		// get plugin configuration from database:
		$options = get_option('bpfla_settings');
		if (empty($options)){
			// no records in DB, use default (const) values to save plugin config:
			$settings = array(
				'bpfla_use_profile_avatar' => self::BPFLA_USE_PROFILE_AVATAR,
				'bpfla_use_gravatar' => self::BPFLA_USE_GRAVATAR,
				'bpfla_avatar_set' => self::BPFLA_AVATAR_SET,
				'bpfla_letter_index' => self::BPFLA_LETTER_INDEX,
				'bpfla_file_format' => self::BPFLA_IMAGES_FORMAT,
				'bpfla_round_avatars' => self::BPFLA_ROUND_AVATARS,
				'bpfla_unknown_image' => self::BPFLA_IMAGE_UNKNOWN
			);
			add_option('bpfla_settings', $settings);
		} else {
			// there are records in DB for our plugin, let's assign them to our variables:
			$this->use_profile_avatar = $options['bpfla_use_profile_avatar'];
			$this->use_gravatar = $options['bpfla_use_gravatar'];
			$this->avatar_set = $options['bpfla_avatar_set'];
			$this->letter_index = $options['bpfla_letter_index'];
			$this->images_format = $options['bpfla_file_format'];
			$this->round_avatars = $options['bpfla_round_avatars'];
			$this->image_unknown = $options['bpfla_unknown_image'];
		}
	}
?>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;
			    
			}
		}
		// something went wrong, just return what came in function argument:
		if (empty($original_image) || empty($size) || empty($name) || empty($alt)){
			return $html_data;
		}
		// if there is no gravatar URL it means that user has set his own profila avatar,
		// so we're gonna see if we should be using it;
		// if we should, just return the input data and leave the avatar as it was:
		if ($this->use_profile_avatar == TRUE){
			if (stripos($original_image, 'gravatar.com/avatar') === FALSE){
				return $html_data;
			}
		}
		// check whether Gravatar should be used at all:
		if ($this->use_gravatar == TRUE){
			// gravatar used as default option, now check whether user's gravatar is set:
			if ($this->gravatar_exists_uri($original_image)){
				// gravatar is set, return input data (nothing changes):
				return $html_data;
			} else {
				// gravatar is not set, proceed to choose custom avatar:
				$avatar_output = $this->choose_custom_avatar($name, $size, $alt,$gender);
			}
		} else {
			// gravatar is not used as default option, only custom avatars will be used; proceed to choose custom avatar:
			$avatar_output = $this->choose_custom_avatar($name, $size, $alt,$gender);
		}
		return $avatar_output;
	}

你试过这样的吗

remove_filter( 'the_content', array('BuddyPress_First_Letter_Avatar ', 'class_filter_function') );