Cách tắt cập nhật lõi và plugin


10

Có cách nào để vô hiệu hóa cập nhật lõi và plugin không? Tôi đang sửa đổi một plugin và bit của WordPress Core (tôi biết đó là một tội lỗi khi làm như vậy), nhưng không thể giúp được.

Câu trả lời:


8

Đúng, bạn có thể làm điều đó…

define( 'DISALLOW_FILE_MODS', true ); 

Đặt đoạn mã này vào wp-config.phptệp của bạn và bạn sẽ có thể vô hiệu hóa các cập nhật lõi và plugin.


1
Hạn chế là nó cũng sẽ vô hiệu hóa một số chức năng khác - trình chỉnh sửa chủ đề và plugin. Tôi nghĩ rằng có nhiều hằng số cụ thể hơn cho bản nâng cấp tự động
Mark Kaplun

@MarkKaplun Tôi nghĩ sẽ tốt hơn nếu người dùng cuối không truy cập vào các biên tập viên
Josh Karteson

Theo tôi để không cho phép trình chỉnh sửa chủ đề và plugin, chúng tôi phải sử dụng ... định nghĩa ('DISALLOW_FILE_EDIT', đúng);
Abhishek Kaushik

có lẽ, chỉ cần nói rằng câu trả lời của bạn, trong khi đúng về mặt kỹ thuật, có thể được cải thiện.
Đánh dấu Kaplun

4
Báo giá xoăn trong wp-config.phplà một nguồn cho niềm vui bất tận. ;)
fuxia

8

Vô hiệu hóa tất cả các cập nhật Plugin cùng nhau

sẽ dễ dàng như vậy:

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

Từ chối (hoặc định tuyến lại) Cập nhật cho Chủ đề / Plugin

Bản cập nhật chủ đề và lõi đơn có thể bị vô hiệu hóa bởi tập lệnh này Mark Jaquith của tôi:

Đối với các plugin từ trong một số tệp chủ đề

// 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;
}

Đối với các chủ đề từ trong một functions.phptệp chủ đề

// 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;
}

Vô hiệu hóa các plugin cụ thể

Từ trong bất kỳ plugin tùy chỉnh nào như được mô tả trong câu trả lời này ở đây trên ngăn xếp :

<?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;
}

Cập nhật cốt lõi

Thật ra điều đó cũng dễ như vậy:

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

Đối với các phiên bản cũ hơn, John Billion đã viết một plugin hoàn chỉnh nhắm mục tiêu tất cả chúng.

Thông tin thêm và kiểm soát chi tiết tốt cho cập nhật tự động

Andi Nacin chỉ cần đăng một bài viết lên WordPress / Làm cho chi tiết về chủ đề đó:

Kiểm soát phiên bản là một công tắc tắt:

Nếu WordPress phát hiện một hệ thống kiểm soát phiên bản, nó sẽ nhận ra bạn biết bạn đang làm gì và tránh cập nhật tự động dưới bất kỳ hình thức nào. Nó tìm kiếm Subversion, Git, Mercurial và Bazaar, và nó xuất hiện ở khắp mọi nơi.

Nó hoạt động bằng cách tìm kiếm hai thư mục (ABSPATH và bất cứ điều gì bạn đang cập nhật, như WP_PLUGINS_DIR, hay WP_LANG_DIR) cho các thư mục VCS ( .svn, .git, .hg, .bz). Và nó trông cũng tăng cấp - và tiếp tục tìm kiếm cho đến khi nó chạm đến gốc của ổ đĩa. Vì vậy, nếu bạn đang chạy một kiểm Subversion duy nhất tại /hay /var/www/hay /var/www/mysite.com/, WordPress cài đặt tại /var/www/mysite.com/public_html/wordpress/sẽ bị chặn từ nhận cập nhật. Rõ ràng, nó lỗi trên trang web của sự thận trọng.

Điều tương tự cũng xảy ra đối với việc vô hiệu hóa Trình chỉnh sửa tệp và chủ đề:

Các DISALLOW_FILE_MODSkhối liên tục bất kỳ loại hệ thống tập tin thay đổi, không chỉ bằng cách cập nhật nền nhưng tất cả người dùng là tốt. Vì vậy, đi là các trình soạn thảo tập tin; khả năng cập nhật lõi, chủ đề hoặc plugin; và khả năng cài đặt các chủ đề hoặc plugin mới.

Công wp-config.phptắc đơn :

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' );

Chi tiết hơn về bài viết được liên kết.


Lưu ý: Tất cả các mã trên được loại bỏ trong quá trình tìm kiếm google 5 phút và do đó không được kiểm tra, chỉ khác biệt / được kiểm tra trực quan so với mã nguồn GitHub WordPress và kết quả tìm kiếm GitHub. Bạn phải tự xác minh nội dung. Ngoài ra, trong tương lai, vui lòng bao gồm nghiên cứu như vậy trong câu hỏi của bạn.


0

đơn giản, đừng sửa đổi lõi ...... sửa đổi lõi về cơ bản là tạo ra wordpress và trừ khi bạn là thành viên của nhóm phát triển có thể duy trì một ngã ba trong một thời gian dài, bạn sẽ đưa khách hàng của mình vào ngõ cụt, nơi duy nhất con đường nâng cấp là để phát triển lại trang web. Anh ta có thể ổn với điều đó nhưng đó là điều cần phải được thỏa thuận trước.

Dù sao, việc vô hiệu hóa cập nhật tự động sẽ không đủ trong trường hợp của bạn và bạn cũng cần xóa tất cả các thông báo nâng cấp khỏi bảng điều khiển hoặc tốt hơn là đảm bảo rằng bệnh nhân không có quyền truy cập FTP vào máy chủ.

Logic tương tự áp dụng cho các plugin không tầm thường từ một nguồn có uy tín (ví dụ, jetpack) ngoại trừ trong trường hợp này bạn có thể duy trì ngã ba trong thời gian dài.

Để vô hiệu hóa cập nhật plugin và không khuyến khích bất kỳ ai cố gắng nâng cấp thủ công, bạn chỉ cần thay đổi tên và thư mục của plugin. Tất nhiên bạn nên sử dụng tên plugin và tên thư mục không được sử dụng bởi một plugin khác, đại loại "${original plugin name} tailored for $client DON"T UPGRADE"như tên plugin mới và ${original plugin name}-for-$clientthư mục mới.


hmm, tôi không hiểu Câu trả lời của tôi là bạn nên tránh vô hiệu hóa nâng cấp tự động . không biết bất kỳ mã cần thiết cho điều đó :). những người muốn chơi với hằng số wp-config.phpcó thông tin trong câu trả lời khác.
Đánh dấu Kaplun

Xin lỗi, Mark. Không ngủ nhiều: P Dù sao, tôi không phải là người xuống cấp, nhưng tôi không thể đồng ý với bạn. Câu trả lời của bạn cũng có rất nhiều ý kiến và sự thật không khó.
kaiser

thay đổi tên plugin là một cách rất hữu ích và dễ dàng để vô hiệu hóa cập nhật plugin vì cần phải khớp tên. Nó cũng truyền đạt cho quản trị viên một thực tế rằng plugin không giống như rẽ nhánh và vì vậy, anh ta sẽ không cố gắng nâng cấp nó qua FTP. Đây là những gì tôi làm trong tình huống này. Về phần nâng cấp cốt lõi, vâng, đó là một ý kiến, hy vọng được chia sẻ với hầu hết các nhà phát triển wordress :)
Mark Kaplun

Bạn cũng nên lưu ý điều gì xảy ra nếu bạn đổi tên thư mục thành một số plugin có cùng thư mục được sử dụng trong repp wp dot org repo chính thức.
kaiser

1
Tôi sẽ thêm điều đó
Mark Kaplun
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.