как извлечь значение из json formate wordpress

#php #json #wordpress #post-meta

Вопрос:

 a:1:{s:9:"image_url";a:2:{i:0;s:62:"http://localhost/wordpress/wp-content/uploads/2021/04/g4-5.jpg";i:1;s:62:"http://localhost/wordpress/wp-content/uploads/2021/04/g1-2.jpg";}}
 

Выше приведены мои данные. Я использую WordPress и извлекаю эти данные из мета-таблицы post. Теперь я хочу показывать только изображения. Поэтому я хочу получить путь к изображению, который указан выше как S:62. Я не знаю, как я могу восстановить. пожалуйста, помогите или направьте меня, чтобы решить мою проблему.

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

1. Это не JSON , сначала не сериализуйте его в PHP

Ответ №1:

Используйте maybe_unserialize()

 $unserialize = maybe_unserialize( $serialize );
 

Ответ №2:

Это не данные JSON, это сериализованные данные, если они связаны с метаданными публикации, то вам нужно использовать функцию WordPress get_post_meta

В WordPress в основном вы можете найти сериализованные данные в wp_options , wp_postmeta и wp_usermeta . WordPress предоставляет различные API для извлечения этих метаданных из базы данных. (Здесь префикс таблицы wp_ является настраиваемым префиксом, поэтому в большинстве приложений WP вы найдете случайный префикс, подобный df18ef_ этому, изменение в базе данных WP повысит безопасность вашего веб-приложения.)

Не полагайтесь на пользовательский SQL всегда старайтесь использовать функции WP для извлечения данных, потому что они оптимизируют логику извлечения путем кэширования данных в объекте в памяти (особенно временных данных). Если ваша настройка была настроена для кэширования объектов, то использование встроенной функции WP сэкономит вам много времени, потому что большинство плагинов, используемых для кэширования объектов либо с помощью redis, либо memcache, полагаются на предоставляемые WP крючки, поэтому вместо использования инструкции SQL используйте функции WP для получения правильных данных.

Использование:

$post_meta_1 = get_post_meta( get_the_ID(), 'post_meta_key', true );

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

1. я уже использовал, но не могу получить ответ. могу я выслать вам свой исходный код? мне нужно решить, потому что это мой проект в колледже.

2. Нет проблем, пожалуйста, поделитесь ссылкой на исходный код.