Để trả lời câu hỏi đầu tiên ...
Nếu bạn xem trong WP_Automatic_Updater
lớp tìm thấy trong wp-admin/includes/class-wp-upgrader.php
chúng tôi lưu ý phương thức is_disabled
được sử dụng bởi phương thức should_update
để xác định xem có cho phép cập nhật tự động hay không.
Các is_disabled
phương pháp sẽ trở lại đúng theo các điều kiện sau đây,
- nếu
DISALLOW_FILE_MODS
hằng được định nghĩa và làtrue
- nếu
WP_INSTALLING
hằng được định nghĩa bất kể trạng thái giá trị
- nếu
AUTOMATIC_UPDATER_DISABLED
hằng được định nghĩa làtrue
Tuy nhiên, hãy lưu ý rằng hằng số sau AUTOMATIC_UPDATER_DISABLED
cũng được liên kết với bộ lọc, automatic_updater_disabled
do đó, ngay cả khi được xác định, giá trị có thể được lọc ở nơi khác trong trường hợp bạn được phục vụ tốt nhất bằng cách khai báo hook sau:
add_filter( 'automatic_updater_disabled', '__return_true' );
Đây là đoạn trích phương thức từ WP_Automatic_Updater
lớp:
wp-admin/includes/class-wp-upgrader.php:1730
/**
* Whether the entire automatic updater is disabled.
*
* @since 3.7.0
*/
public function is_disabled() {
// Background updates are disabled if you don't want file changes.
if ( defined( 'DISALLOW_FILE_MODS' ) && DISALLOW_FILE_MODS )
return true;
if ( defined( 'WP_INSTALLING' ) )
return true;
// More fine grained control can be done through the WP_AUTO_UPDATE_CORE constant and filters.
$disabled = defined( 'AUTOMATIC_UPDATER_DISABLED' ) && AUTOMATIC_UPDATER_DISABLED;
/**
* Filter whether to entirely disable background updates.
*
* There are more fine-grained filters and controls for selective disabling.
* This filter parallels the AUTOMATIC_UPDATER_DISABLED constant in name.
*
* This also disables update notification emails. That may change in the future.
*
* @since 3.7.0
*
* @param bool $disabled Whether the updater should be disabled.
*/
return apply_filters( 'automatic_updater_disabled', $disabled );
}
Tôi sẽ đề nghị thêm các liên kết sau để đọc:
Cấu hình cập nhật nền tự động
http://codex.wordpress.org/Configuring_Automatic_Background_Updates
... trong đó cung cấp chi tiết một danh sách các hằng số và bộ lọc có sẵn để kiểm soát hạt mịn đối với các thành phần nào cần vô hiệu hóa đối với các bản cập nhật.
Đối với trường hợp chỉ vô hiệu hóa cập nhật plugin tự động, bạn có:
add_filter( 'auto_update_plugin', '__return_false' );
...và kể từ đó trở đi.
Để trả lời câu hỏi thứ hai của bạn ...
(ai đó sửa tôi nếu tôi sai)
Chúng ta hãy thêm một số bối cảnh cho độc giả, toàn bộ câu hỏi này là kết quả của trạng thái twitter này , bản thân nó là một phản ứng với bản cập nhật tự động bắt buộc của plugin WP SEO của Yoast, xem phần sau, https://yoast.com/wordpress-seo -securance-phát hành / , để biết thêm thông tin.
Có một chức năng wp-includes/update.php
được đặt tên wp_maybe_auto_update
được bắn vào hook có cùng tên do_action('wp_maybe_auto_update')
được bắn từ bên trong wp_version_check
chức năng có trong cùng một tệp mà chính nó là một sự kiện được lên lịch chạy hai lần mỗi ngày.
Vì vậy, điều mà tôi nghi ngờ WordPress.org đã làm, đó là họ đã tăng phiên bản WordPress nội bộ để một bản cập nhật tự động sẽ bị ép buộc đối với người dùng do mức độ nghiêm trọng của lỗ hổng bảo mật liên quan đến plugin Yoast WP SEO.
Để tự trích dẫn Yoast:
Vì mức độ nghiêm trọng của sự cố, nhóm WordPress.org đã đưa ra bản cập nhật tự động bắt buộc (cảm ơn!)
Tôi không chắc chắn 100% cho dù điều này trong thực tế sau đó cũng tự động cập nhật bất kỳ plugin nào khác có phiên bản mới trong kho lưu trữ WordPress.org hoặc liệu WordPress.org có thể ra lệnh những plugin nào có thể được cập nhật tự động từ cuối không, có lẽ ở đó một cái gì đó trong mã cũng cho phép loại tùy ý này.
Về việc bạn có thể tự sử dụng các cơ chế tương tự hay không, đối với các plugin mà bạn lưu trữ trong kho WordPress.org, vâng, đối với những người bên ngoài kho lưu trữ chính thức, tôi không hoàn toàn chắc chắn, nhưng bạn có thể nhanh chóng các WP_Automatic_Updater
lớp và cung cấp cho nó một bối cảnh mà để kiểm tra chống lại nhưng tôi nghĩ rằng cuối cùng chúng tôi kết thúc trong chức năng gọi wp_update_plugins
trong wp-includes/update.php
đó kiểm tra đối với API kho WordPress chính thức.
Tôi có thể không chính xác vì vậy nếu bất cứ ai có thêm điều gì đó để thêm, xin vui lòng bấm vào.