source

WordPress 플러그인 업데이트를 비활성화하려면 어떻게 해야 합니까?

itover 2023. 3. 18. 08:32
반응형

WordPress 플러그인 업데이트를 비활성화하려면 어떻게 해야 합니까?

GPLv2 라이선스로 WordPress에 적합한 플러그인을 찾았고 소스 코드를 많이 변경했습니다.플러그인은 다른 작업을 하고 있습니다.작성자(오리지널 플러그인 작성자 크레딧 포함), URL, 버전 번호(xxx 1.5에서 YYY 1.0)를 변경했습니다.

모든 것이 잘 작동하지만 WordPress가 플러그인 업데이트를 확인하면 플러그인 YYY 1.0이 xxx 1.0으로 처리되고 사용 가능한 업데이트에 대한 알림이 표시됩니다.

변경된 플러그인 YYY 1.0은 WP 저장소가 아닌 내 컴퓨터에서 파일을 복사하여 설치되었습니다.

또 뭘 바꿔야 하죠?

플러그인 업데이트 사용 안 함

플러그인 루트 파일에 이 코드를 추가합니다.

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

이 코드를 테마 함수에 넣습니다.php 파일.이것은 나에게 효과가 있고 나는 그것을 사용하고 있다.또한 특정 플러그인용입니다.여기서 플러그인 기본 파일 URL을 플러그인의 기본 파일 URL과 일치하도록 변경해야 합니다.

 function my_filter_plugin_updates( $value ) {
   if( isset( $value->response['facebook-comments-plugin/facebook-comments.php'] ) ) {        
      unset( $value->response['facebook-comments-plugin/facebook-comments.php'] );
    }
    return $value;
 }
 add_filter( 'site_transient_update_plugins', 'my_filter_plugin_updates' );

여기:

"facebook-comments-flugin" => facebook 댓글 플러그인 폴더 이름

"syslog-syslog.syslog" => 플러그인 메인파일이것은 index.dispair와 같이 다를 수 있습니다.

이게 도움이 됐으면 좋겠어요.

가장 간단하고 효과적인 방법은 업데이트를 원하지 않는 플러그인의 버전을 변경하는 것입니다.예를 들어 wptouch를 업데이트하지 않으려면 다음과 같은 디피니션 파일을 엽니다.

/*
    Plugin Name: WPtouch Mobile Plugin
    Plugin URI: http://www.wptouch.com/
    Version: 4.0.4

*/

여기서 버전 4.0.4를 9999로 변경합니다.

/*
    Plugin Name: WPtouch Mobile Plugin
    Plugin URI: http://www.wptouch.com/
    Version: 9999

*/

플러그인 파일에는 업데이트를 확인하는 기능이 있습니다.원저작자는 어떤 이름이라도 붙일 수 있기 때문에 코드를 살펴보고 각 기능과 기능을 확인해야 합니다.나는 그 기능이 그것이 하는 일에 대해 꽤 명백할 것이라고 생각한다.

또는 플러그인 파일에 다음을 추가할 수 있습니다.

add_filter( 'http_request_args', 'dm_prevent_update_check', 10, 2 );
function dm_prevent_update_check( $r, $url ) {
    if ( 0 === strpos( $url, 'http://api.wordpress.org/plugins/update-check/' ) ) {
        $my_plugin = plugin_basename( __FILE__ );
        $plugins = unserialize( $r['body']['plugins'] );
        unset( $plugins->plugins[$my_plugin] );
        unset( $plugins->active[array_search( $my_plugin, $plugins->active )] );
        $r['body']['plugins'] = serialize( $plugins );
    }
    return $r;
}

크레딧 : http://developersmind.com/2010/06/12/preventing-wordpress-from-checking-for-updates-for-a-plugin/

add_filter('site_transient_update_plugins', '__return_false');

기능하고 있습니다.php 위의 코드를 추가하고 모든 플러그인 업데이트를 비활성화합니다.

한 가지 쉬운 해결책은 플러그인 파일의 플러그인 버전을 변경하는 것이었습니다.예를 들어 플러그인 버전이 1.2.1인 경우.다음과 같이 만들 수 있습니다(100.9.5는 플러그인 작성자가 도달하지 않는 것입니다).

<?php
/*
 * Plugin Name:       Your Plugin Name
 * Description:       Plugin description.
 * Version:           100.9.5 
*/

이 행을 wp-config에 추가합니다.php: 플러그인 업데이트를 비활성화합니다.

define('DISALLOW_FILE_MODS',true);

다음은 Mark Jaquith의 스크립트의 최신 버전입니다.

  • WP 업데이트가 HTTPS로 전환되었습니다.
  • 공유 호스팅에서 직렬화 해제가 차단되었습니다.
  • 대신 json_decode와 json_encode를 사용합니다.
  • 크레딧: 블록 플러그인 업데이트

.

add_filter( 'http_request_args', 'widget_disable_update', 10, 2 );

function widget_disable_update( $r, $url ) {
    if ( 0 === strpos( $url, 'https://api.wordpress.org/plugins/update-check/' ) ) {
        $my_plugin = plugin_basename( __FILE__ );
        $plugins = json_decode( $r['body']['plugins'], true );
        unset( $plugins['plugins'][$my_plugin] );
        unset( $plugins['active'][array_search( $my_plugin, $plugins['active'] )] );
        $r['body']['plugins'] = json_encode( $plugins );
    }
    return $r;
}

수동으로 플러그인 업데이트 사용 안 함:

  1. 함수를 엽니다.php 파일(활성화된 테마 폴더로 이동)
  2. 다음 코드를 복사하여 붙여넣습니다.

remove_action( 'load-update-core.php', 'wp_update_plugins' );

add_filter( 'pre_site_transient_update_plugins', create_function( '$a', "return null;" ) );

  1. 변경 내용을 저장하면 완료

완전성을 위해 선택한 다른 플러그인의 업데이트를 차단하기 위한 플러그인이 하나 더 있습니다.

https://github.com/daggerhart/lock-plugins

배경 및 기능 모드에 대한 일부 정보는 여기(독일어)에서 확인할 수 있습니다.

언급URL : https://stackoverflow.com/questions/17897044/how-can-i-disable-wordpress-plugin-updates

반응형