단일 플러그인에 대한 자동 업데이트 끄기


10

업데이트하고 싶지 않은 플러그인이 있습니다. 나는 이것이 최선의 방법이 아니라는 것을 알고 있지만,이 경우에는 반드시 수행해야합니다. WordPress에서 특정 플러그인을 자동 업데이트하라는 메시지를 표시하지 못하게하는 방법이 있습니까 (그러나 다른 모든 플러그인에 대해서는 정상적으로 경고합니다).


6
플러그인의 메인 파일 내부의 버전 번호를 늘리십시오. 예 : 99.9... 또한 좋은 측정을 위해 readme 파일 내에서 동일한 변경을 수행합니다 (실제로 필요한 것은 아니라고 생각합니다).
t31os

플러그인이 버전 번호를 다음과 같이 업데이트하면 버전 번호 조정이 계속 작동 1.10.1합니까?
emc

답변:


11

이것을 테마의 기능에 배치하십시오.

// Disable update notification for individual plugins - see my example of plugin block-spam-by-math-reloaded as to how to use this function

function filter_plugin_updates( $value ) {
    unset( $value->response['plugin-folder-name/plugin-file-name.php'] );    
    return $value;
}

add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

... 아마 남은 당신의 대답에 구글 +1 버튼 코드가 왜 나는 ... 이해가 안 돼요
brasofilo

남았다. 죄송합니다.
Tara

3
이 솔루션은 다른 플러그인을 활성화하거나 비활성화하는 동안 경고를 발생시킵니다. Warning: Attempt to modify property of non-object in /home/XXXXXX/public_html/wp-content/themes/XXXXXXX/custom-functions.php on line 15
gurung

이 버전을 사용하고있는 WP 버전은 무엇입니까?
fedmich

7

T31os의 대답은 옳았습니다 : 플러그인의 메인 파일 내부의 버전 번호를 늘리십시오. 99.9 ... 또한 readme 파일 내에서 동일한 측정을 수행하여 적절한 측정을 수행합니다 (실제로 필요하지는 않지만) .. – t31os


5

Tara의 대답은 잘 작동하지만 프로그래머는 기본 플러그인 파일의 경로를 입력해야하며 특정 테마가 활성화 된 경우에만 작동합니다. 대체 솔루션은 다음과 같습니다.

add_filter('site_transient_update_plugins', 'remove_update_notification_1234');
function remove_update_notification_1234($value) {
    unset($value->response[ plugin_basename(__FILE__) ]);
    return $value;
}

한 줄 버전 :

add_filter('site_transient_update_plugins', function ($value) { unset($value->response[ plugin_basename(__FILE__) ]);return $value; });

.php비활성화하려는 플러그인 의 기본 파일 맨 위에이 코드를 배치하십시오 . 사이트에서이 기능을 두 번 이상 사용하려는 경우 _1234중복 함수 이름을 피하기 위해 필터 및 함수 이름을 다른 임의의 숫자로 변경하십시오 .

특정 플러그인에 대한 업데이트를 비활성화하면 어떤 이유로 든 편집 중이기 때문에 해당 플러그인에 몇 줄을 추가하면 실행 가능할 것입니다.


1
이것은 내 생각에 가장 좋은 대답입니다. 특히 플러그인을 직접 편집하고 있기 때문에 업데이트를 비활성화하는 경우 특히 그렇습니다. 고마워요 emc.
Nathan

3

이 코드를 사용할 때 다른 플러그인을 설치하거나 업데이트 할 때 위에서 언급 한 'gurung'과 같은 PHP 경고가 표시되었습니다. WP 4.3.1에서 PHP 경고를 보았습니다.

이 문제에 대해 stackexchange에서 다른 게시물을 발견했으며 플러그인 참조 배열을 반복하는 함수를 생각해 냈습니다. 먼저 플러그인에 대한 참조가 있는지 확인합니다 (비 객체에 대한 PHP 경고를 피하기 위해) 없는 경우) 개체가있는 경우 원래 코드처럼 설정이 해제됩니다.

단위 테스트를 수행하지는 않았지만 플러그인의 모든 업데이트 / 설치에 대해 PHP 경고가 표시되어 보이지 않습니다.

function filter_plugin_updates( $value ) {

  // Add references to plugins you want to disable update notices for in the $plugins array
  $plugins = array(
    'k-elements/setup.php'
  );

  foreach( $plugins as $plugin ) {
    if ( isset( $value->response[$plugin] ) ) {
      unset( $value->response[$plugin] );
    }
  }

  return $value;

}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

1

또는 동일한 플러그인이 아닌 '이름 바꾸기'만하면됩니다.
폴더뿐만 아니라 readme 및 플러그인 헤더에서도 이름을 바꿔야합니다.


1

나는 tara의 코드 스 니프를 npc로 구현 한 사이트를 상속했으며, 이는 gurung의 의견에 따라 오류를 던졌습니다. 날 미치게 했어 어쨌든 스니퍼가 사용자 정의라는 것을 깨달을 때까지 플러그인에서 코드를 편집하는 것을 주저했습니다.

오류를 제거하려면 다음을 변경하십시오.

unset($value->response[ plugin_basename(__FILE__) ]);

이에:

if($value) {
    unset($value->response[ plugin_basename(__FILE__) ]);
}

일부에게는 분명 할 수 있지만 핵심은 이미 사용자 정의되어 있으므로 편집 할 수 있으며 플러그인을 업데이트하지 못하게하는 것이 중요 하기 때문에 업데이트로 덮어 쓰지 않을 입니다.


0

플러그인 폴더의 이름을 바꾸거나 단일 파일 플러그인의 경우 해당 PHP 파일의 이름을 바꾸면 업데이트를 방지 할 수 있습니다. 이것이 가장 간단한 솔루션입니다. 또한이 방법을 사용하면 "미래의 미래"를 포함하여 향후 개발자에게 코드를 투명하게 변경할 수 있습니다.


0

메인 플러그인 파일의 상위 버전이 가장 좋지만 특수 해킹을 추가 할 때만 가능합니다. null / 정의되지 않은 번호를 호출 한 다음 해당 버전으로 유지됩니다. 예:

버전:

이를 통해 2100에서는 9.9.9 이후에 업데이트되지 않습니다. 버려진 플러그인에 대한 간단한 접근 방식으로 언젠가 교체됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.