Какви промени

От версия 6.9, WordPress Това ускорява внедряването на основните функции, планирани в пътната карта за 2026 г. Приоритет се дава на пълната съвместимост с PHP 8.2+, въвеждането на „унифициран“ редактор на сайтове за всички теми, премахването на няколко стари hook-а и цялостното преразглеждане на управлението на native media. Агенциите и блогърите, използващи конструктори като Divi 5, Elementor или Avada, ще трябва да се адаптират: някои hook-ове и входни точки се променят, класическите шаблони стават остарели, а управлението на кеша се променя.

Няколко билета за Trac и бележки от разработчиците описват подробно тези промени:

Срещал съм несъвместимости в сайтове, използващи персонализирани медийни плъгини или остарели hooks-и в дъщерните си теми. Грешките рядко са явни; често дадена функция просто изчезва. без предупредително съобщение.

Бързо обобщение

  • WordPress налага унифицирания редактор на сайтове за всички теми (включително класическите) от версия 6.10 нататък.
  • Редизайн на медийната библиотека: нов API, вградени WebP/AVIF файлове, преместени медийни куки.
  • Амортизация на няколко исторически куки, включително the_content в определени контексти.
  • Дъщерните теми, използващи класически шаблони, трябва да мигрират към блокови или хибридни шаблони.
  • Divi 5, Elementor и Avada: персонализираните модули трябва да са насочени към новите hooks и редактор API.
  • Препоръчителна минимална версия на PHP: 8.1+, планирано е прекратяване на поддръжката за 7.4 и 8.0 за края на 2026 г.
  • Подобрено управление на кеша, по-добро разделяне на скриптовете и CSS, приоритет, даден на модулните ресурси.

Преди/След в кода

Шаблон за персонализирана страница (отпред)


// Ancienne façon (avant WP 6.10)
add_filter('the_content', 'custom_page_template');
function custom_page_template($content) {
    if (is_page('contact')) {
        return '<div class="custom-contact">Contact form ici</div>' . $content;
    }
    return $content;
}

Блок/хибрид на шаблон (след)


// Nouvelle façon (WordPress 6.10+)
add_filter('render_block', 'custom_contact_block', 10, 2);
function custom_contact_block($block_content, $block) {
    if ($block['blockName'] === 'core/post-content' && is_page('contact')) {
        return '<div class="custom-contact">Contact form ici</div>' . $block_content;
    }
    return $block_content;
}

Куката the_content вече не се извиква винаги в зависимост от структурата на страницата или шаблона (особено с новия унифициран редактор). Hook-ът render_block ви позволява да действате прецизно върху целевите блокове.

Медиен мениджмънт (преди)


// Ancienne façon
add_filter('wp_handle_upload_prefilter', 'check_custom_upload');
function check_custom_upload($file) {
    // Vérifie la taille, le type, etc.
    return $file;
}

Медиен мениджмънт (след)


// Nouvelle API (WP_Media_Manager)
add_action('media_file_upload', 'check_custom_upload_modern', 10, 1);
function check_custom_upload_modern($media_object) {
    // $media_object est une instance avec méthodes de validation
    if ($media_object->get_size() > 5 * 1024 * 1024) {
        $media_object->add_error('Fichier trop volumineux');
    }
}

Медийният API става обектно-ориентиран. Филтрите за история ще останат временно, но са остарели. Разширенията трябва да мигрират, в противен случай грешките вече няма да се обработват.

Удар на бетона

Блогърите, които са използвали шорткодове или класически hooks в темите си, може да открият, че някои персонализации не са активни след версия 6.10. Разработчиците на плъгини трябва да мигрират своите hooks и да проверят съвместимостта на своите JS/CSS ресурси. Дъщерните теми, базирани на класически PHP шаблони, вече не се поддържат по подразбиране в унифицирания редактор.

За строители:

  • Диви 5 Персонализираните модули трябва да използват новите входни точки за JS, предоставени от API на редактора. Системата за архивиране на Divi вече разчита на куки (hooks). WordPress местни жители (save_block); по-старите модули може вече да не запазват настройките си правилно.
  • Elementor Персонализираните джаджи трябва да декларират своята съвместимост с редактора на сайта. elementor/frontend/after_register_scripts се заменят от куки за редактор на блокове.
  • Avada Fusion Builder трябва да бъде актуализиран, за да използва новия медиен API и блокови шаблони. Традиционните шорткодове може вече да не работят в зависимост от структурата на шаблона.

Вече съм виждал проблеми, при които кодът работеше перфектно в 6.8, но не и в 6.9.4, просто защото кука като the_content вече не се извикваше в блока на шаблона по подразбиране.

Рискове, съвместимости и точки за бдителност

  • Няколко стари куки са остарели или вече нямат никакъв ефект в унифицирания редактор: the_content, get_the_excerpt, wp_head в определени контексти.
  • Съвместимостта на дъщерните теми, базирани на класически PHP шаблони, вече не е гарантирана.
  • Плъгините, които манипулират Медийната библиотека чрез старите филтри, вероятно ще бъдат „тихи“: няма повече грешки, няма повече модификации, нищо в лог файловете.
  • Управлението на активи (CSS/JS) се променя. Активи, които не са декларирани чрез wp_register_script ou wp_enqueue_block_script може вече да не се зарежда в редактора или във фронтенда.
  • Код, който използва функции, несъвместими с PHP 8.2+ (напр. определени функции) create_function) задействат предупреждения или се игнорират.
  • Често срещани проблеми: файлове, поставени на грешно място, забравяне за изчистване на кеша, постоянни връзки, които не се нулират след превключване към блоков шаблон, персонализирани куки, които не са декларирани в functions.php на детската тема.
  • Поддръжката за PHP 7.4 и 8.0 ще бъде премахната с WordPress 6.11 (четвъртото тримесечие на 2026 г.).

Диагностична таблица за често срещани проблеми:

симптом Вероятна причина проверка Решение
Персонализирането на съдържанието не работи кука the_content по-наричани Отстраняване на грешки в активните куки на страницата употреба render_block ou save_block
Грешка при качване на изображението Плъгинът използва стар медиен филтър. Проверете лог файловете, тествайте с деактивиран плъгин Адаптиране на плъгина към новия медиен API
JS/CSS не е зареден в редактора Неправилно поставяне в опашката или неправилно име на манипулатор Проверете редактора, конзолата на браузъра употреба wp_enqueue_block_script
Модулът Divi/Elementor вече не запазва Остарял hook или несъвместим API Преглед на конструктора на регистъра на промените Мигриране към нови JS/API куки
Фатална грешка на страницата Остаряла PHP функция (create_functionИ т.н.) Активирайте WP_DEBUG, проверете PHP лог файловете Пренапишете кода, използвайки съвременни затваряния

Как да мигрирате

  1. Идентифицирайте използваните куки Търсене във всички add_filter, add_action във вашите теми/плъгини. Приоритизирайте render_block ou save_block за съдържанието.
  2. Проверете дъщерните шаблони Преминете към блокови или хибридни шаблони. За класически шаблон:
    
    // Ancien template enfant
    get_header();
    the_content();
    get_footer();
    
    Отидете на:
    
    // Nouveau template block (template-parts/content-contact.html)
    
        
        

    Ce qui change

    Depuis la version 6.9, WordPress accélère le déploiement de fonctionnalités majeures prévues dans la roadmap 2026. La priorité est donnée à la compatibilité totale PHP 8.2+, l’introduction de l’éditeur de site "unifié" pour tous les thèmes, la dépréciation de plusieurs hooks historiques et la refonte de la gestion des médias en natif. Les agences et blogueurs qui utilisent des builders comme Divi 5, Elementor ou Avada devront s’adapter : certains hooks et points d’entrée changent, des templates classiques deviennent obsolètes, et la gestion du cache est modifiée.

    Plusieurs tickets Trac et dev notes détaillent ces changements :

    J’ai déjà rencontré des incompatibilités sur des sites qui utilisaient des plugins de médias personnalisés ou des hooks obsolètes dans leur thème enfant. Les erreurs sont rarement explicites : souvent, une fonctionnalité disparaît sans message d’alerte.

    Résumé rapide

    • WordPress impose l’éditeur de site unifié à tous les thèmes (classiques compris) dès 6.10.
    • Refonte du Media Library : nouvelle API, fichiers WebP/AVIF nativement, hooks médias déplacés.
    • Dépréciation de plusieurs hooks historiques dont the_content dans certains contextes.
    • Les thèmes enfants utilisant des templates classiques doivent migrer vers les templates block ou hybrides.
    • Divi 5, Elementor et Avada : modules personnalisés doivent cibler les nouveaux hooks et l’API éditeur.
    • Minimum PHP recommandé : 8.1+, abandon du support 7.4 et 8.0 prévu pour la fin 2026.
    • Gestion du cache affinée, scripts et CSS mieux séparés, priorité aux assets modulaires.

    Avant / Après en code

    Template de page personnalisée (avant)

    
    // Ancienne façon (avant WP 6.10)
    add_filter('the_content', 'custom_page_template');
    function custom_page_template($content) {
        if (is_page('contact')) {
            return '<div class="custom-contact">Contact form ici</div>' . $content;
        }
        return $content;
    }
    

    Template block/hybride (après)

    
    // Nouvelle façon (WordPress 6.10+)
    add_filter('render_block', 'custom_contact_block', 10, 2);
    function custom_contact_block($block_content, $block) {
        if ($block['blockName'] === 'core/post-content' && is_page('contact')) {
            return '<div class="custom-contact">Contact form ici</div>' . $block_content;
        }
        return $block_content;
    }
    

    Le hook the_content n’est plus toujours appelé selon la structure de la page ou du template (notamment avec le nouvel éditeur unifié). Le hook render_block permet d’agir précisément sur les blocs ciblés.

    Gestion des médias (avant)

    
    // Ancienne façon
    add_filter('wp_handle_upload_prefilter', 'check_custom_upload');
    function check_custom_upload($file) {
        // Vérifie la taille, le type, etc.
        return $file;
    }
    

    Gestion des médias (après)

    
    // Nouvelle API (WP_Media_Manager)
    add_action('media_file_upload', 'check_custom_upload_modern', 10, 1);
    function check_custom_upload_modern($media_object) {
        // $media_object est une instance avec méthodes de validation
        if ($media_object->get_size() > 5 * 1024 * 1024) {
            $media_object->add_error('Fichier trop volumineux');
        }
    }
    

    L’API média devient orientée objet. Les filtres historiques restent temporairement mais sont dépréciés. Les extensions doivent migrer sinon les erreurs ne seront plus gérées.

    Impact concret

    Les blogueurs qui utilisaient des shortcodes ou des hooks classiques dans leur thème pourront voir certaines personnalisations inactives après la 6.10. Les développeurs de plugins doivent migrer leurs hooks et vérifier la compatibilité de leurs assets JS/CSS. Les thèmes enfants basés sur des templates PHP classiques ne sont plus supportés par défaut par l’éditeur unifié.

    Pour les builders :

    • Divi 5 : Les modules personnalisés doivent utiliser les nouveaux points d’entrée JS fournis par l’API de l’éditeur. Le système de sauvegarde côté Divi s’appuie désormais sur des hooks WordPress natifs (save_block) ; les anciens modules risquent de ne plus sauvegarder correctement leurs paramètres.
    • Elementor : Les widgets personnalisés doivent déclarer leur compatibilité avec le site editor. Les hooks elementor/frontend/after_register_scripts sont remplacés par des hooks block editor.
    • Avada : Le Fusion Builder doit être mis à jour pour utiliser la nouvelle API médias et les templates block. Les shortcodes classiques peuvent ne plus fonctionner selon la structure du template.

    J’ai déjà observé des problèmes où un code fonctionnait parfaitement en 6.8 mais plus en 6.9.4, simplement parce qu’un hook comme the_content n’était plus appelé dans le template block par défaut.

    Risques, compatibilités et points de vigilance

    • Plusieurs hooks historiques sont dépréciés ou n’ont plus d’effet dans l’éditeur unifié : the_content, get_the_excerpt, wp_head dans certains contextes.
    • Les thèmes enfants basés sur des templates PHP classiques ne sont plus garantis compatibles.
    • Les plugins qui manipulent la Media Library via les anciens filtres risquent d’être "silencieux" : plus d’erreur, plus de modification, rien dans les logs.
    • La gestion des assets (CSS/JS) change. Les assets non déclarés via wp_register_script ou wp_enqueue_block_script peuvent ne plus charger dans l’éditeur ou en frontend.
    • Les codes qui utilisent des fonctions non compatibles PHP 8.2+ (ex : certaines fonctions create_function) déclenchent des warnings ou sont ignorés.
    • Problèmes classiques : fichiers placés au mauvais endroit, oubli de vider le cache, permaliens non réinitialisés après passage à un template block, hooks personnalisés non déclarés dans le functions.php du thème enfant.
    • Le support PHP 7.4 et 8.0 sera supprimé avec WordPress 6.11 (Q4 2026).

    Tableau de diagnostic pour les problèmes courants :

    Symptôme Cause probable Vérification Solution
    Personnalisation du contenu inopérante Hook the_content plus appelé Debugger les hooks actifs sur la page Utiliser render_block ou save_block
    Erreur sur téléchargement d’image Plugin utilise vieux filtre media Vérifier les logs, tester avec le plugin désactivé Adapter plugin à la nouvelle API médias
    JS/CSS non chargé en éditeur Mauvais enqueue ou nom de handle erroné Inspecter l’éditeur, console du navigateur Utiliser wp_enqueue_block_script
    Module Divi/Elementor ne sauvegarde plus Hook obsolète ou API non compatible Consulter changelog builder Migrer sur nouveaux hooks JS/API
    Fatal error sur page Fonction PHP obsolète (create_function, etc.) Activer WP_DEBUG, consulter logs PHP Réécrire le code avec closures modernes

    Comment migrer

    1. Identifier les hooks utilisés : Recherchez tous les add_filter, add_action dans vos thèmes/plugins. Privilégiez render_block ou save_block pour les contenus.
    2. Vérifier les templates enfants : Passez aux templates block ou hybrides. Pour un template classique :
      
      // Ancien template enfant
      get_header();
      the_content();
      get_footer();
      
      Passez à :
      
      // Nouveau template block (template-parts/content-contact.html)
      
          
          
      
      
    3. Adapter la gestion des médias : Remplacez les hooks wp_handle_upload_prefilter etc. par la nouvelle API objet.
    4. Mettre à jour les modules Divi/Elementor/Avada : Déclarez explicitement la compatibilité avec l’éditeur site et les nouveaux hooks (voir la doc respective).
    5. Tester sur une copie locale : Jamais en production sans sauvegarde complète. Vérifiez la sauvegarde des modules personnalisés, le rendu des templates, la gestion des médias.
    6. Vérifier la compatibilité PHP : Passez vos serveurs/stacks à PHP 8.1 ou 8.2, vérifiez que tous les plugins/thèmes sont compatibles.

    Pièges fréquents : code copié d’un ancien tutoriel, snippet collé dans le mauvais fichier (functions.php parent au lieu d’enfant), oubli du purge cache, confusion entre actions et filtres.

    Faut-il agir maintenant ou attendre ?

    Si vous utilisez un thème enfant ou un plugin personnalisé qui touche au contenu, aux médias ou aux assets, il faut agir dès maintenant. Les hooks historiques sont déjà dépréciés (WP 6.9.4) et certains ne sont plus actifs en 6.10 bêta.

    Pour les sites purement FSE ou blocks natifs, la transition est quasiment transparente. Mais si vous avez des shortcodes, des templates PHP classiques ou des modules page builder custom, la migration est nécessaire pour garantir la pérennité de vos personnalisations.

    Je recommande de tester sur une copie locale, de consulter la dev note de chaque extension majeure, et de surveiller les logs PHP. Si votre builder (Divi/Elementor/Avada) publie un patch de compatibilité, appliquez-le sans attendre.

    Conseils de maintenance

    • Planifiez un audit complet de vos hooks et templates avant la sortie de WordPress 6.10 stable.
    • Mettez en place des tests automatiques pour les hooks personnalisés et la gestion des médias.
    • Utilisez WP-CLI pour scanner les hooks dépréciés et les fichiers de template classiques.
    • Consultez régulièrement les changelogs de vos plugins page builder. Divi 5, Elementor et Avada publient leurs propres guides de migration.
    • Passez vos serveurs à PHP 8.2 au plus tôt, testez la compatibilité de tous les plugins actifs.
    • Programmez des sauvegardes automatiques et des points de restauration avant chaque mise à jour majeure.
    • Déployez sur staging avant production, et purgez toujours le cache (serveur + navigateur) après migration.
    • Vérifiez la génération des permaliens et régénérez-les après modification du template ou migration FSE.

    Ressources

    FAQ

    1. Mon shortcode ne s’affiche plus, que faire ?
      Vérifiez si le template utilise encore do_shortcode ou si le contenu est désormais rendu via un block. Migrez votre logique sous forme de block personnalisé.
    2. Je vois des erreurs de type "hook non défini", normal ?
      Oui, de nombreux hooks (the_content, get_the_excerpt) sont dépréciés dans certains templates block. Passez sur render_block ou save_block.
    3. Divi 5/Elementor me dit que mes modules custom sont obsolètes
      Vos modules doivent cibler les nouveaux hooks JS/API du site editor. Consultez la doc officielle du builder utilisé.
    4. Mon plugin de gestion média ne bloque plus les mauvais fichiers
      Il doit utiliser la nouvelle API objet. Les anciens filtres sont ignorés dans la nouvelle Media Library.
    5. Mes CSS/JS ne chargent plus en éditeur
      Enregistrez-les avec wp_enqueue_block_script ou enqueue_block_editor_assets. Ne vous fiez plus aux anciens hooks globaux.
    6. Les permaliens sont cassés après migration
      Régénérez les permaliens dans Réglages > Permaliens après toute migration de template.
    7. Je vois encore des erreurs PHP 7.4
      Mettez à jour votre version PHP (min 8.1). Les extensions non compatibles doivent être remplacées.
    8. Puis-je continuer à utiliser des templates enfants PHP classiques ?
      Non, la compatibilité sera supprimée avec la sortie stable de 6.10. Passez aux templates block/hybrides.
    9. Comment vérifier la compatibilité de mon site ?
      Utilisez WP-CLI ou des plugins comme Query Monitor pour détecter les hooks dépréciés et surveiller les logs.
    10. Les mises à jour automatiques sont-elles sûres ?
      Toujours tester sur staging avant production. Les changements structurels peuvent casser le site si un plugin ou un thème n’est pas prêt.
  3. Адаптиране на управлението на медиите Сменете куките wp_handle_upload_prefilter и т.н. чрез новия обектен API.
  4. Актуализирайте модулите Divi/Elementor/Avada Изрично декларирайте съвместимост с редактора на сайта и новите куки (вижте съответната документация).
  5. Тествайте върху локално копие Никога не внедрявайте в продукция без пълен архив. Проверете архива на персонализираните модули, рендирането на шаблони и работата с медии.
  6. Проверете съвместимостта с PHP Надстройте сървърите/стековете си до PHP 8.1 или 8.2 и проверете дали всички плъгини/теми са съвместими.

Често срещани грешки: код, копиран от стар урок, фрагмент, поставен в грешен файл (functions.php родител вместо дете), забравяне за изчистване на кеша, объркване между действия и филтри.

Трябва ли да действаме сега или да чакаме?

Ако използвате дъщерна тема или персонализиран плъгин, който засяга съдържание, медии или ресурси, трябва действай сегаИсторическите куки вече са остарели (WP 6.9.4) и някои вече не са активни в 6.10 бета.

За чисто FSE или сайтове, базирани на блокове, преходът е практически безпроблемен. Ако обаче имате шорткодове, класически PHP шаблони или персонализирани модули за изграждане на страници, миграцията е необходима, за да се гарантира дългосрочната жизнеспособност на вашите персонализации.

Препоръчвам тестване върху локално копие, консултиране с бележките на разработчиците за всяко основно разширение и наблюдение на PHP лог файловете. Ако вашият конструктор (Divi/Elementor/Avada) издаде корекция за съвместимост, приложете я незабавно.

Съвети за поддръжка

  • Насрочете одит пълен на вашите кукички и шаблони преди пускането на WordPress 6.10 stable.
  • Настройте автоматизирани тестове за персонализирани куки и обработка на медии.
  • употреба WP-CLI за сканиране за остарели куки и класически файлове с шаблони.
  • Редовно проверявайте дневниците на промените за плъгините за изграждане на страници. Divi 5, Elementor и Avada публикуват свои собствени ръководства за миграция.
  • Актуализирайте сървърите си до PHP 8.2 възможно най-скоро и тествайте съвместимостта на всички активни плъгини.
  • Планирайте автоматично архивиране и точки за възстановяване преди всяка основна актуализация.
  • Разгръщайте в тестова версия преди производствена версия и винаги изчиствайте кеша (сървър + браузър) след миграция.
  • Проверете генерирането на постоянни връзки и ги генерирайте отново след промяна на шаблона или FSE миграцията.

ресурси

Често задавани въпроси

  1. Моят кратък код вече не се показва, какво трябва да направя?
    Проверете дали шаблонът все още се използва do_shortcode или ако съдържанието вече се рендира чрез блок. Мигрирайте логиката си като персонализиран блок.
  2. Виждам грешки като „hook not defined“ (куката не е дефинирана), нормално ли е това?
    Да, много кукички (the_content, get_the_excerpt) са остарели в някои шаблони на блокове. Превключете към render_block ou save_block.
  3. Divi 5/Elementor ми казва, че моите персонализирани модули са остарели.
    Вашите модули трябва да са насочени към новите JS/API hooks на редактора на сайта. Консултирайте се с официалната документация на конструктора, който използвате.
  4. Моят плъгин за управление на медии вече не блокира грешни файлове
    Трябва да използва новия API на обектите. Старите филтри се игнорират в новата медийна библиотека.
  5. Моите CSS/JS файлове вече не се зареждат в редактора.
    Запазете ги с wp_enqueue_block_script ou enqueue_block_editor_assetsНе разчитайте вече на стари глобални куки.
  6. Постоянните връзки не работят след миграция
    Генерирайте отново постоянните връзки в Настройки > Постоянни връзки след всяка миграция на шаблон.
  7. Все още виждам грешки в PHP 7.4.
    Актуализирайте версията на PHP (минимум 8.1). Несъвместимите разширения трябва да бъдат заменени.
  8. Мога ли да продължа да използвам класически PHP дъщерни шаблони?
    Не, съвместимостта ще бъде премахната със стабилната версия 6.10. Преминете към блокови/хибридни шаблони.
  9. Как мога да проверя съвместимостта на моя уебсайт?
    Използвайте WP-CLI или плъгини като Query Monitor, за да откривате остарели куки и да наблюдавате лог файловете.
  10. Безопасни ли са автоматичните актуализации?
    Винаги тествайте в тестова среда преди пускане в производство. Структурните промени могат да нарушат работата на сайта, ако даден плъгин или тема не са готови.