Заставьте WordPress показывать доступные обновления, но не позволяйте администратору устанавливать их

#wordpress

#wordpress

Вопрос:

Мы блокируем некоторые из наших сайтов WP и применяем обновления только через composer и wpackagist.

Чтобы запретить администраторам выполнять обновления (и синхронизировать наш код), мы добавляем их в нашу конфигурацию:

 define('DISALLOW_FILE_EDIT',   true);
define('DISALLOW_FILE_MODS',   true);
define('WP_AUTO_UPDATE_CORE',  false);
  

Это отлично работает… за исключением того, что мы больше не получаем значки, показывающие, что доступны обновления.

Скриншот

Есть ли способ, чтобы на боковой панели отображались значки обновлений (например, изображение слева вместо правого) и / или /wp-admin/update-core.php отображалось, какие обновления доступны… но просто не позволяйте администраторам выполнять обновления?

Ответ №1:

Как вы также упоминали, отключите обновления с помощью

 define('DISALLOW_FILE_EDIT',   true);
define('DISALLOW_FILE_MODS',   true);
define('WP_AUTO_UPDATE_CORE',  false);
  

И добавьте еще одну страницу псевдо-панели мониторинга. Это также позволит вам показывать ваши пользовательские сообщения пользователям, если пользователи нажимают на это меню.

 <?php

add_action( 'admin_menu', 'wp_24392446' );
function wp_24392446() {
    $count = count( get_core_updates() )   count( get_theme_updates() )   count( get_plugin_updates() );
    $notification = '';
    if ( $count ) {
        $notification = '<span class="update-plugins"><span class="plugin-count">'.$count.'</span></span>';
    }
    add_dashboard_page( 'Updates', 'Updates '.$notification, 'user_cap_here', 'updates', 'updates', '',71); 
}

function updates(){
    // DO your stuff here
    // eg: echo 'Updates are currenlty disabled.'
}
?>
  

Комментарии:

1. Спасибо… хотя я втайне надеялся на какой-нибудь вырезанный и вставленный код вместо «установить количество здесь динамически». 😉 Есть ли какие-либо функции WP, к которым я могу подключиться, чтобы получить список плагинов, требующих обновлений?

2. @Colin Я обновил свой ответ. Теперь вы можете использовать его как Plug n Play. 🙂

3. Также будут учитываться обновления, доступные для WordPress, плагинов и тем. Используйте его как плагин или добавьте в свой function.php . Он начнет работать.

4. Мне нужно было немного подправить ситуацию, но да, это навело меня на правильный путь. Спасибо!