WordPress 관리자 화면을 통해 업그레이드 실패할 때

Admin 화면에서 WordPress 업그레이드 버튼을 눌렀으나 실패한 후, 계속해서 시도해도 알 수 없는 오류로 멈추거나 진행이 안될 경우 SQL 테이블에 기록을 지워야 한다.

DELETE * FROM wp_options WHERE option_name = 'core_updater.lock';

 

WP-CLI 툴을 사용해서도 업그레이드할 수 있는데, 이때도 문제가 발생할 수 있다

$ wp --allow-root core update
Updating to version 5.2.4 (en_US)...
Downloading update from https://downloads.wordpress.org/release/wordpress-5.2.4-no-content.zip...
Error: Failed to get url 'https://downloads.wordpress.org/release/wordpress-5.2.4-no-content.zip': cURL error 18: transfer closed with 8714725 bytes remaining to read.

 

이럴 경우 그냥 해당 파일을 따로 받아서 업그레이드에서 지정하면 쉽게 해결된다

$ wget https://downloads.wordpress.org/release/wordpress-5.2.4-no-content.zip
$ wp --allow-root core update ./wordpress-5.2.4-no-content.zip
Starting update...
Unpacking the update...
Success: WordPress updated successfully.

 

언제 고쳐질지 알 수 없지만 매번 경고가 나오지만 해결되지 않는 부분이 있는데, 업그레이드 후 수정해준다

diff --git a/wp-includes/capabilities.php b/wp-includes/capabilities.php
index 1363e1d..e065d60 100644
--- a/wp-includes/capabilities.php
+++ b/wp-includes/capabilities.php
@@ -136,8 +136,6 @@ function map_meta_cap( $cap, $user_id ) {
                case 'edit_post':
                case 'edit_page':
-                       $post = get_post( $args[0] );
+                       $post = isset($args[0]) ? get_post( $args[0] ) : get_post();
+
                        if ( ! $post ) {
                                $caps[] = 'do_not_allow';
                                break;