Подтвердить что ты не робот

Wordpress - как отключить обновление плагина

Я нашел отличный плагин для Wordpress под лицензией GPLv2 и внес много изменений в исходный код, плагин теперь делает что-то еще. Я модифицировал автора (с оригинальными кредитами авторов плагина), url, номер версии (от xxx 1,5 до yyy 1.0).

Все отлично работает, но когда Wordpress проверяет обновления плагинов, он обрабатывает мой плагин yyy 1.0 как xxx 1.0 и отображает уведомление о доступном обновлении.

Мой измененный плагин yyy 1.0 был установлен путем копирования файлов с моего компьютера, а не из репозитория WP.

Что еще мне нужно изменить?

4b9b3361

Ответ 1

В файле плагина появится функция, которая будет проверять наличие обновлений. Оригинальный автор мог бы назвать это чем угодно, поэтому вам придется пройти через код и проверить каждую функцию и что она делает. Я бы предположил, что функция будет совершенно очевидна в отношении того, что она делает.

В качестве альтернативы вы можете добавить это в свой файл плагина:

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/

Ответ 2

Отключить обновление плагинов

Добавьте этот код в свой корневой файл плагина.

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

Ответ 3

Поместите этот код в файл functions.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-plugin" => имя папки плагина facebook comments

"facebook-comments.php" => основной файл плагина. Это может отличаться от index.php

Надеюсь, это поможет.

Ответ 4

Самый простой и эффективный способ - изменить версию плагина, который вы не хотите получать. Для примера если я не хочу, чтобы 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

*/

Ответ 5

add_filter('site_transient_update_plugins', '__return_false');

в function.php добавить код выше и отключить все обновления плагинов

Ответ 6

Здесь обновленная версия Mark Jaquith script:

  • Обновления WP перешли на HTTPS
  • Unserialize был заблокирован на моем общем хостинге
  • Вместо этого используется 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;
}

Ответ 7

Отключить обновления плагинов вручную:

  1. Откройте файл functions.php (перейдите в папку с активированными темами)
  2. Скопируйте и вставьте следующий код:

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

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

  1. Сохраните изменения, и все готово

Ответ 8

Добавьте эту строку в wp-config.php, чтобы отключить обновления плагина:

define('DISALLOW_FILE_MODS',true);

Ответ 9

Просто для полноты, вот еще один плагин, предназначенный для блокировки обновлений выбранных других плагинов:

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

Некоторая информация о его фоне и режиме работы может быть найдена здесь (на немецком языке).