Bạn có thể thử điều này:
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 );
để sửa đổi tin nhắn theo ý thích của bạn:
Chúng ta có thể tinh chỉnh nó hơn nữa:
Nếu bạn chỉ muốn kích hoạt bộ lọc trên /wp-admins/plugins.php
trang, bạn có thể sử dụng như sau:
add_action( 'load-plugins.php',
function(){
add_filter( 'gettext', 'b2e_gettext', 99, 3 );
}
);
với:
/**
* 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;
}
nơi chúng tôi loại bỏ cuộc gọi lại bộ lọc gettext ngay sau khi chúng tôi có một trận đấu.
Nếu chúng tôi muốn kiểm tra số lượng cuộc gọi gettext được thực hiện, trước khi chúng tôi khớp đúng chuỗi, chúng tôi có thể sử dụng điều này:
/**
* 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;
}
và tôi nhận được 301
cuộc gọi khi cài đặt:
Tôi có thể giảm chỉ còn 10
các cuộc gọi:
bằng cách thêm bộ lọc gettext trong in_admin_header
hook, trong load-plugins.php
hook:
add_action( 'load-plugins.php',
function(){
add_action( 'in_admin_header',
function(){
add_filter( 'gettext', 'b2e_gettext_debug', 99, 3 );
}
);
}
);
Lưu ý rằng điều này sẽ không tính các cuộc gọi gettext trước khi chuyển hướng nội bộ được sử dụng khi các plugin được kích hoạt.
Để kích hoạt bộ lọc của chúng tôi sau khi chuyển hướng nội bộ, chúng tôi có thể kiểm tra các tham số GET được sử dụng khi plugin được kích hoạt:
/**
* 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;
}
và sử dụng như thế này:
b2e_is_activated() && add_filter( 'gettext', 'b2e_gettext', 99, 3 );
trong ví dụ mã trước.