Intereting Posts
Удалите любой продукт, который отображается из обычного цикла отображения Уведомлять после 3,6,9, а затем через 12 месяцев после активации плагина ACF – добавить группу внутри ретранслятора Лучшее изображение / уменьшенное изображение Почему «date_query» не работает в «pre_get_posts»? Включая style.css в Child Theme Как я могу запросить 3 сообщения из разных категорий (по одной из каждой категории) Невозможно удалить теги из пользовательской таксономии WordPress 4.7+ Автоматически отключать виджет WordPress при ошибке Форма поиска WordPress и результат поиска через поле ACF в пользовательской таксономии $ wpdb запрашивает тип сообщения в течение определенного периода таксономии при заказе сообщений по специальной метаинформации? Все сетевые сайты отображаются в качестве основного блога Использование wp_insert_post с сетью WP в сценарии cron Контактная форма не отправляет электронную почту Ограничение_manage_posts не работает в 3.3.1

Мета-значение Массив

Я надеюсь, что кто-то сможет мне помочь.

Я создал настраиваемый мета-ящик и пытаюсь сохранить массив, но при использовании update_post_meta он, похоже, не хранит его как массив.

Я получаю информацию через api, и она, кажется, ломается при переходе с текстового update_post_meta на update_post_meta .

Я пробовал serialize , unserialize , maybe_serialize , maybe_unserialize и т. Д. В любом случае вот мой код.

 $movieCast(array) array ( 0 => array ( 'actor' => 'Anthony Hopkins', 'actor_char' => 'Alfred Hitchcock', 'actor_link' => 'anthony-hopkins', 'img_path' => '/oDMLEhFmXLkTlUnErs0RxRua7kN.jpg', ), 1 => array ( 'actor' => 'Helen Mirren', 'actor_char' => 'Alma Reville', 'actor_link' => 'helen-mirren', 'img_path' => '/dRYchPNm8WCXxWHcGtUwq9VLra1.jpg', ), 2 => array ( 'actor' => 'Scarlett Johansson', 'actor_char' => 'Janet Leigh', 'actor_link' => 'scarlett-johansson', 'img_path' => '/dZ4uNJtLQkGlJ76eePrXYqUDWgn.jpg', ),... echo "<textarea id='actors_array' name='actors_array' rows='5' cols='120'>" ?><?php var_export($movieCast); echo "</textarea>"; 

Я тестировал, что textarea – это массив с использованием echo is_array($cast) ? 'Array' : 'not an Array'; echo is_array($cast) ? 'Array' : 'not an Array'; и он возвращает Array .

Поэтому я полагаю, что проблема еще ниже при сохранении функции

  $actors_array = $_POST['actors_array']; update_post_meta( $post_id, 'actors_array', $actors_array ); 

После сохранения и использования $cast = get_post_meta кажется, что он не был сохранен правильно.

При тестировании echo is_array($cast) ? 'Array' : 'not an Array'; echo is_array($cast) ? 'Array' : 'not an Array'; он возвращает not an array .

 echo"<pre>";print_r($cast);echo"</pre>"; 

возвращается

  array ( 0 => array ( 'actor' => 'Anthony Hopkins', 'actor_char' => 'Alfred Hitchcock', 'actor_link' => 'anthony-hopkins', 'img_path' => '/oDMLEhFmXLkTlUnErs0RxRua7kN.jpg', ), 1 => array ( 'actor' => 'Helen Mirren', 'actor_char' => 'Alma Reville', 'actor_link' => 'helen-mirren', 'img_path' => '/dRYchPNm8WCXxWHcGtUwq9VLra1.jpg', ), 2 => array ( 'actor' => 'Scarlett Johansson', 'actor_char' => 'Janet Leigh', 'actor_link' => 'scarlett-johansson', 'img_path' => '/dZ4uNJtLQkGlJ76eePrXYqUDWgn.jpg', ),... 

Поэтому я действительно надеюсь, что кто-то может помочь мне, пожалуйста.

Благодаря 🙂

Если я правильно вас понимаю, я не думаю, что это проблема WordPress, просто PHP.

Когда вы var_export в текстовое поле, затем подайте, что через POST , что вы тогда имеете, – это не массив, а строка. Вы можете проверить is_string вместо is_array чтобы подтвердить это.

Если вы хотите, чтобы он снова был массивом, вы должны явно указать его как таковой:

 $actors_array = $_POST['actors_array']; // $actors_array is a string $actors_array = (array)$actors_array // $actors_array is now an array