#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. Нет проблем, пожалуйста, поделитесь ссылкой на исходный код.