Как отключить базовые и сменные обновления

Там какой-либо путь состоит в том, чтобы отключить базовые и сменные обновления? Я изменяю плагин и бит Ядра WordPress (я знаю, что это - грех, чтобы сделать так), но не может помочь ему.

9
30.10.2013, 08:10
3 ответа

Да можно сделать это …

define( 'DISALLOW_FILE_MODS', true ); 

Вставьте этот отрывок Ваш wp-config.php файл и Вы будете способный отключить базовые и сменные обновления.

7
19.02.2020, 22:01
  • 1
    , которым недостаток состоит в том, что он отключит некоторую другую функциональность также - тема и сменные редакторы. Я думаю, что существуют более определенные константы для самого автоматического обновления –  Mark Kaplun 30.10.2013, 08:41
  • 2
    @MarkKaplun, я думаю лучше, если конечный пользователь не получает доступ к редакторам –  Josh Karteson 30.10.2013, 08:44
  • 3
    Согласно мне для запрещения темы и сменного редактора, мы должны использовать... определяют (‘DISALLOW_FILE_EDIT’, верный); –  Abhishek Kaushik 30.10.2013, 08:47
  • 4
    , возможно, просто говоря, что Ваш ответ, в то время как технически корректный, может быть улучшен. –  Mark Kaplun 30.10.2013, 08:49
  • 5
    Изогнутые кавычки в wp-config.php источник для бесконечной забавы. ;) –  fuxia♦ 30.10.2013, 10:27

Отключите обновления Плагина все вместе

Это должно быть настолько легко:

<?php
defined( 'ABSPATH' ) or exit;
/* Plugin Name: (#120589) Disable Plugin Updates */
remove_action( 'load-update-core.php', 'wp_update_plugins' );

Отклоните (или перенаправьте), Обновления для Тем/Плагинов

Одноядерный и обновления темы может быть деактивирован этим сценарием мой Mark Jaquith:

Для плагинов из некоторых файлов тем

// Plugins
add_filter( 'http_request_args', 'cws_hidden_plugin_12345', 5, 2 );
function cws_hidden_plugin_12345( $r, $url )
{
    if ( 0 !== strpos( $url, 'http://api.wordpress.org/plugins/update-check' ) )
        return $r;

    $plugins = unserialize( $r['body']['plugins'] );
    unset(
        $plugins->plugins[ plugin_basename( __FILE__ ) ],
        $plugins->active[ array_search( plugin_basename( __FILE__ ), $plugins->active ) ]
    );
    $r['body']['plugins'] = serialize( $plugins );

    return $r;
}

Для тем из темы functions.php файл

// Themes
add_filter( 'http_request_args', 'cws_hidden_theme_12345', 5, 2 );
    function cws_hidden_theme_12345( $r, $url )
    {
    if ( 0 !== strpos( $url, 'http://api.wordpress.org/themes/update-check' ) )
        return $r;

    $themes = unserialize( $r['body']['themes'] );
    unset(
        $themes[ get_option( 'template' ) ],
        $themes[ get_option( 'stylesheet' ) ]
    );
    $r['body']['themes'] = serialize( $themes );

    return $r;
}

Отключите определенные плагины

Из любого пользовательского плагина, как описано в этом ответе здесь на стеке:

<?php
defined( 'ABSPATH' ) or exit;
/* Plugin Name: (#120589) Disable Aksimet Updates */
add_filter( 'site_transient_update_plugins', 'wpse120589DisableAkismetUpdates' );
function filter_plugin_updates( $value )
{
    unset( $value->response['akismet/akismet.php'] );
    return $value;
}

Базовые обновления

На самом деле это должно быть настолько легко:

<?php
defined( 'ABSPATH' ) or exit;
/* Plugin Name: (#120589) Disable Core Updates */
add_filter( 'pre_site_transient_update_core', '__return_null' );

Для более старых версий John Billion записал полный плагин, который предназначается для них всех.

Дальнейшая информация и мелкомодульное управление для Автоматических обновлений

Andi Nacin просто подняла сообщение на WordPress/Делать, который входит в деталь о той теме:

Управление версиями является переключателем закрытия:

Если WordPress обнаруживает систему управления версиями, он распознает, что Вы знаете то, что Вы делаете, и избегает автоматических обновлений любого вида. Это ищет Подверсию, Мерзавца, Подвижного, и Базар, и это смотрит везде.

Это работает путем поиска двух каталогов (ABSPATH и независимо от того, что Вы обновляете, как WP_PLUGINS_DIR, или WP_LANG_DIR) для каталогов VCS (.svn, .git, .hg, .bz). И это ищет уровень, также — и продолжает смотреть, пока это не достигает корня диска. Таким образом, если Вы выполняете единственный контроль Подверсии в / или /var/www/ или /var/www/mysite.com/, установка WordPress в /var/www/mysite.com/public_html/wordpress/ будет заблокирован от получения обновлений. Очевидно, это допускает ошибку на сайте осторожности.

То же идет для отключения Редактор Тем и Файл:

DISALLOW_FILE_MODS постоянные блоки любой вид изменений файловой системы, не только фоновыми обновлениями, но и всеми пользователями также. Так, уведенный редакторы файлов; способность обновить ядро, темы или плагины; и способность установить новые темы или плагины.

Единственный wp-config.php переключатель:

define( 'AUTOMATIC_UPDATER_DISABLED', (bool) true/false );

и

# Disables all core updates:
define( 'WP_AUTO_UPDATE_CORE', false );

# Enables all core updates, including minor and major:
define( 'WP_AUTO_UPDATE_CORE', true );

# Enables core updates for minor releases (default):
define( 'WP_AUTO_UPDATE_CORE', 'minor' );

Больше детали о связанном сообщении.


Примечание: Все выше кода очищены во время 5-минутного запущенного поиска Google и поэтому не протестированные, только визуально diffed/tested против исходного кода WordPress GitHub и результатов поиска GitHub. Необходимо проверить содержание сами. Кроме того, для будущего включайте такое исследование в свой вопрос.

8
19.02.2020, 22:01

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

Так или иначе отключение автоматического обновления не будет достаточно в Вашем случае, и необходимо будет также удалить все уведомления об обновлении из панели инструментов или лучше удостовериться, что cient не имеет доступа FTP к серверу.

Та же логика относится не к тривиальным плагинам от уважаемого источника (пример, реактивный ранец) за исключением того, что в этом случае Вы смогли поддерживать ветвление в течение длительного срока.

Чтобы отключить сменные обновления и отговорить кого-либо пытаться обновить его вручную, можно просто изменить имя плагина и его каталог. Конечно, необходимо использовать сменное имя и имя каталога, не используемое другим плагином, чем-то как "${original plugin name} tailored for $client DON"T UPGRADE" как новое сменное имя и ${original plugin name}-for-$client как новый каталог.

0
19.02.2020, 22:01
  • 1
    хм, я не получаю его. мой ответ - то, что необходимо постараться не отключать автоматическое обновление. не знайте ни о каком коде, требуемом для этого :). люди, которые хотят играть с константами в wp-config.php имейте информацию в другом ответе. –  Mark Kaplun 30.10.2013, 10:31
  • 2
    Извините, Mark. Не спал очень :P Так или иначе я не был downvoter, но я не могу согласиться с Вами. Ваш ответ также является большим мнением и не действительно неопровержимыми фактами. –  kaiser 30.10.2013, 10:36
  • 3
    , меняющий имя плагинов, является очень полезным и простым способом отключить сменное обновление, поскольку соответствие имени требуется. Это также передает администратору то, что плагин не является тем же как разветвленным, и для этого hoefully он не попытается обновить его через FTP. Это - то, что я делаю в этой ситуации. Относительно базового обновления, да это - мнение, надо надеяться, совместно использованное с большинством wordress разработчиков :) –  Mark Kaplun 30.10.2013, 10:42
  • 4
    , необходимо также отметить то, что происходит, если Вы переименовываете папку к некоторому плагину, который имеет ту же папку, используемую в официальном org точки wp repo. –  kaiser 30.10.2013, 10:44
  • 5
    я добавлю, что –  Mark Kaplun 30.10.2013, 10:46

Теги

Похожие вопросы