Intereting Posts
Как связать 2 категории (синхронизация) Перепишите для страницы с неизвестной родительской страницей Переопределение функции в дочерних темах Как создать новый тип контента и сбросить правила перезаписи без посещения страницы постоянных ссылок? Font-Family выглядит не так, как должно быть Как я могу получить $ wpdb для отображения предупреждений MySQL? Редактирование короткого кода в постконтентном программном обеспечении Важно ли санировать данные в коротком коде, который будет использоваться на сайте, на который я только отправлю? Как использовать параметр «Быстрое редактирование» только для администратора и редактора в «Все сообщения» на панели мониторинга? Понимание wp_add_inline_style Один из моих размеров изображения не отображается в srcset Как перехватить update_option () перед сохранением данных? Выход из системы перенаправления, а также перенаправление WP-login.php Если я удалю свой сайт WordPress, то удалит ли все мои сайты? Пользовательский тип почтового архива с разбивкой на страницы?

wp_insert_posts Неустранимая ошибка: максимальный уровень вложенности функции «100» достигнут, прерывается!

У меня возникла странная проблема: я написал код, как показано ниже:

add_action('save_post', 'save_post_func'); function save_post_func(){ include_once(ABSPATH . WPINC . '/feed.php'); $rss = fetch_feed($url); if (!is_wp_error($rss)) { //ini_set('xdebug.max_nesting_level', 1000); <-- Doesn't work $maxitems = $rss->get_item_quantity(5); $rss_items = $rss->get_items(0, $maxitems); foreach ($rss_items as $item) { // count($rss_items) = 5 ??? wp_insert_post(array('post_title' => 'a')); // inserts > 100 records ??? } } } 

Отображает эту ошибку:

Неустранимая ошибка: максимальный уровень вложенности функции «100» достигнут, прерывается!

Любая помощь? Где проблема, все вроде нормально …

Solutions Collecting From Web of "wp_insert_posts Неустранимая ошибка: максимальный уровень вложенности функции «100» достигнут, прерывается!"

Исправлена ​​проблема: я добавил эту строку перед вставкой сообщений.

 remove_action('save_post', __FUNCTION__); 

окончательный код:

 add_action('save_post', 'save_post_func'); function save_post_func(){ remove_action('save_post', __FUNCTION__); include_once(ABSPATH . WPINC . '/feed.php'); $rss = fetch_feed($url); if (!is_wp_error($rss)) { $maxitems = $rss->get_item_quantity(5); $rss_items = $rss->get_items(0, $maxitems); foreach ($rss_items as $item) { wp_insert_post(array('post_title' => 'a')); } } } 

Это потому, что код, который вы использовали, создавал бесконечный цикл. Вы должны отменить функцию перед вызовом wp_insert_post и добавить ее обратно, когда это будет сделано. Вот пример кода, который вы должны использовать:

 function save_post_func( $post_id ){ if ( ! wp_is_post_revision( $post_id ) ){ // unhook this function so it doesn't loop infinitely remove_action('save_post', 'save_post_func'); include_once(ABSPATH . WPINC . '/feed.php'); $rss = fetch_feed($url); if (!is_wp_error($rss)) { $maxitems = $rss->get_item_quantity(5); $rss_items = $rss->get_items(0, $maxitems); foreach ($rss_items as $item) { wp_insert_post(array('post_title' => 'a')); } } // re-hook this function add_action('save_post', 'save_post_func'); } } add_action('save_post', 'save_post_func'); 

Дополнительная информация от Codex