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ó 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:
Đúng, bạn có thể làm điều đó…
define( 'DISALLOW_FILE_MODS', true );
Đặt đoạn mã này vào wp-config.php
tệ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.
wp-config.php
là một nguồn cho niềm vui bất tận. ;)
Nó 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' );
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.php
tệ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;
}
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;
}
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.
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
, hayWP_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_MODS
khố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.php
tắc đơn :
define( 'AUTOMATIC_UPDATER_DISABLED', (bool) true/false );
và
# 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.
đơ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-$client
thư mục mới.
wp-config.php
có thông tin trong câu trả lời khác.