WPML
Statut
Résolu par l’auteur
Signalé pour
WPML Multilingual for BuddyPress and BuddyBoss 1.7.0
Extension/thème associé
BuddyBoss Platform
Étiquettes de sujet
Compatibility

Aperçu de l’anomalie

Il y a une incohérence dans le tri alphabétique des champs de taxonomie traduits sur les pages de profil de BuddyBoss. Alors que les champs de la langue par défaut sont correctement triés, les champs traduits ne conservent pas cet ordre.

Solution de contournement

Assurez-vous d’avoir une sauvegarde complète de votre site avant de continuer.


  • Ouvrez le fichier …/wp-content/plugins/buddyboss-platform/bp-xprofile/classes/class-bp-xprofile-field-type-selectbox.php.

  • Dans BP_XProfile_Field_Type_Selectbox::edit_field_options_html(), remplacez la ligne suivante :
    echo $html;

  • Par :
    // WPML Workaround for compsupp-7514
    if ( class_exists('Sitepress') && apply_filters('wpml_default_language', NULL ) != apply_filters( 'wpml_current_language', NULL ) ) {
    	// Match all options
    	preg_match_all('/<option(.*?)>(.*?)<\/option>/s', $html, $matches, PREG_SET_ORDER);
    
    	// Extract the options into an array
    	$optionsArray = [];
    	foreach ($matches as $match) {
    		$optionsArray[] = [
    			'full' => $match[0],
    			'attributes' => $match[1],
    			'text' => $match[2],
    		];
    	}
    
    	// Sort the array by the 'text' element
    	usort($optionsArray, function($a, $b) {
    		return strcmp($a['text'], $b['text']);
    	});
    
    	// Rebuild the HTML string
    	$sortedHtml = '';
    	foreach ($optionsArray as $option) {
    		$sortedHtml .= sprintf('<option%s>%s</option>', $option['attributes'], $option['text']);
    	}
    
    	$html = $sortedHtml;
    }
    
    echo $html;

Toutes les anomalies connues →