2013-10-25 3 views
0

WordPress가 업데이트를 확인하는 것을 막기 위해이 작은 기능을 추가했습니다. 그러나 PHP 5.3 이하 버전에서는 익명 함수가 작동하지 않습니다. 나는 실제로 익명의 함수의 목적을 이해하지 못한다. 그래서 여기에서 물어 보겠다. 5.3 이전의 PHP 버전에서 어떻게 작동하도록이 코드를 다시 작성해야합니까?5.3 이전의 PHP 버전에서 작동하도록 익명 함수 코드를 다시 작성하는 방법은 무엇입니까?

$func = function($a){ 
    global $wp_version; 
    return (object) array(
     'last_checked' => time(), 
     'version_checked' => $wp_version, 
    ); 
}; 
add_filter('pre_site_transient_update_core', $func); 
add_filter('pre_site_transient_update_plugins', $func); 
add_filter('pre_site_transient_update_themes', $func); 

답변

2

당신은 워드 프레스에서 PHP 4

$func = create_function(
    '$a', 
    'global $wp_version; return (object)array("last_checked" => time(), "version_checked" => $wp_version);' 
); 

add_filter('pre_site_transient_update_core', $func); 
add_filter('pre_site_transient_update_plugins', $func); 
add_filter('pre_site_transient_update_themes', $func); 

익명 함수 이후 주변왔다 create_function 그러나 나쁜 관행이다 사용할 수 있습니다. 후크에 대한 좋은 점은 최종 사용자 (또는 플러그인/테마 작성자가 아닌 다른 사람)가 원하는 경우 콜백을 제거 할 수 있다는 것입니다. 당신이 익숙하지 않은 함수로 그것을 할 수 없다. 이 경우 실제 함수를 사용하는 것이 좋습니다. 다른 플러그인/테마 저자 또는 최종 사용자가 뭔가 같은 작업을 수행 할 수 있습니다

function so19590942_check_version($a) 
{ 
    global $wp_version; 
    return (object) array(
     'last_checked' => time(), 
     'version_checked' => $wp_version, 
    ); 
} 

add_filter('pre_site_transient_update_core', 'so19590942_check_version'); 
add_filter('pre_site_transient_update_plugins', 'so19590942_check_version'); 
add_filter('pre_site_transient_update_themes', 'so19590942_check_version'); 

...

remove_filter('pre_site_transient_update_core', 'so19590942_check_version'); 

그들은 당신이 so19590942_check_version에 한 일을 좋아하지 않아.

+0

정말 고마워요. :) – Mohammad