WordPress의 관리자가 플러그인을 활성화 할 때마다 플러그인 페이지를 다시로드하면 “활성화 된 플러그인”보고 활성화에 대한 알림이 표시됩니다.
관리자 공지에 표시되는이 텍스트를 변경하는 방법이 있습니까, 아니면 내 맞춤 메시지를 사용해야합니까? 또한 사용자 정의 메시지를 사용해야하는 경우 기본 “플러그인 활성화”메시지가 표시되지 않습니까?
관련 질문 :
복제:
찾은 Pieter에게 감사드립니다.
추가 자료 :
노트
‘gettext’필터는
translate()
함수를 호출하는 동안에 만 적용되지만 i18n.php의translate()
거의 모든 다른 i18n 함수에서 사용 됩니다 . 여기에는 ” Gettext Syntax ” 의이 게시물에 나열된 모든 기능이 포함됩니다 .
답변
당신은 이것을 시도 할 수 있습니다 :
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 );
취향에 맞게 메시지를 수정하려면 :
더 구체화 할 수 있습니다.
/wp-admins/plugins.php
페이지 에서 필터 만 활성화 하려면 다음을 대신 사용할 수 있습니다.
add_action( 'load-plugins.php',
function(){
add_filter( 'gettext', 'b2e_gettext', 99, 3 );
}
);
와:
/**
* 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;
}
여기서 일치하는 즉시 gettext 필터 콜백을 제거합니다.
gettext 호출 횟수를 확인하려면 올바른 문자열을 일치시키기 전에 다음을 사용할 수 있습니다.
/**
* 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;
}
301
설치시 전화를 받습니다 .
10
통화 만으로 줄일 수 있습니다 .
in_admin_header
후크 내에 후크 내에 gettext 필터를 추가하여 load-plugins.php
:
add_action( 'load-plugins.php',
function(){
add_action( 'in_admin_header',
function(){
add_filter( 'gettext', 'b2e_gettext_debug', 99, 3 );
}
);
}
);
플러그인이 활성화 될 때 사용되는 내부 리디렉션 전에 gettext 호출을 계산하지 않습니다.
내부 리디렉션 후 필터를 활성화하기 위해 플러그인 활성화시 사용 된 GET 매개 변수를 확인할 수 있습니다.
/**
* 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;
}
다음과 같이 사용하십시오.
b2e_is_activated() && add_filter( 'gettext', 'b2e_gettext', 99, 3 );
이전 코드 예제에서