Vous pouvez essayer ceci:
is_admin() && add_filter( 'gettext',
function( $translated_text, $untranslated_text, $domain )
{
$old = array(
"Plugin <strong>activated</strong>.",
"Selected plugins <strong>activated</strong>."
);
$new = "Captain: The Core is stable and the Plugin is <strong>activated</strong> at full Warp speed";
if ( in_array( $untranslated_text, $old, true ) )
$translated_text = $new;
return $translated_text;
}
, 99, 3 );
pour modifier le message à votre guise:
Nous pouvons l'affiner davantage:
Si vous souhaitez uniquement activer le filtre sur la /wp-admins/plugins.php
page, vous pouvez utiliser les éléments suivants à la place:
add_action( 'load-plugins.php',
function(){
add_filter( 'gettext', 'b2e_gettext', 99, 3 );
}
);
avec:
/**
* Translate the "Plugin activated." string
*/
function b2e_gettext( $translated_text, $untranslated_text, $domain )
{
$old = array(
"Plugin <strong>activated</strong>.",
"Selected plugins <strong>activated</strong>."
);
$new = "Captain: The Core is stable and the Plugin is <strong>activated</strong> at full Warp speed";
if ( in_array( $untranslated_text, $old, true ) )
{
$translated_text = $new;
remove_filter( current_filter(), __FUNCTION__, 99 );
}
return $translated_text;
}
où nous supprimons le rappel du filtre gettext dès que nous avons une correspondance.
Si nous voulons vérifier le nombre d'appels gettext effectués, avant de faire correspondre la chaîne correcte, nous pouvons utiliser ceci:
/**
* Debug gettext filter callback with counter
*/
function b2e_gettext_debug( $translated_text, $untranslated_text, $domain )
{
static $counter = 0;
$counter++;
$old = "Plugin <strong>activated</strong>.";
$new = "Captain: The Core is stable and the Plugin is <strong>activated</strong> at full Warp speed";
if ( $untranslated_text === $old )
{
$translated_text = $new;
printf( 'counter: %d - ', $counter );
remove_filter( current_filter(), __FUNCTION__ , 99 );
}
return $translated_text;
}
et je reçois des 301
appels sur mon installation:
Je peux le réduire aux seuls 10
appels:
en ajoutant le filtre gettext dans le in_admin_header
crochet, dans le load-plugins.php
crochet:
add_action( 'load-plugins.php',
function(){
add_action( 'in_admin_header',
function(){
add_filter( 'gettext', 'b2e_gettext_debug', 99, 3 );
}
);
}
);
Notez que cela ne comptera pas les appels gettext avant la redirection interne utilisée lorsque les plugins sont activés.
Pour activer notre filtre après la redirection interne, nous pouvons vérifier les paramètres GET utilisés lorsque les plugins sont activés:
/**
* Check if the GET parameters "activate" and "activate-multi" are set
*/
function b2e_is_activated()
{
$return = FALSE;
$activate = filter_input( INPUT_GET, 'activate', FILTER_SANITIZE_STRING );
$activate_multi = filter_input( INPUT_GET, 'activate-multi', FILTER_SANITIZE_STRING );
if( ! empty( $activate ) || ! empty( $activate_multi ) )
$return = TRUE;
return $return;
}
et utiliser comme ceci:
b2e_is_activated() && add_filter( 'gettext', 'b2e_gettext', 99, 3 );
dans l'exemple de code précédent.