#php #wordpress #serialization
#php #wordpress #сериализация
Вопрос:
Я пытаюсь передать содержимое на основе уникального идентификатора GUID. База данных хранится в сериализованном массиве, и это не может быть изменено.
Примером записи может быть:
a:1:{i:0;s:8:"16YL3332";}
И в настоящее время я использую это в WP для сериализации строки и запуска ее в get_posts
функции, используя следующее args
$guid serialize(strval($_GET['guid'])); // var dump = string(15) "s:8:"16YL3332";"
$args = array(
"post_type" => "custom-post-type",
"post_status" => "publish",
"posts_per_page" => 1,
"meta_query" => array(
"key" => "_fixtures",
"value" => array($guid),
"compare" => "LIKE"
)
);
Мне не удается вернуть соответствующие данные. WP по умолчанию возвращает самое последнее содержимое, опубликованное в типе post.
Ответ №1:
Почему вы добавляете переменную $ guid в массив? Я не уверен, что это необходимо. Если вы просто передадите его как 'value' => $guid
, это сработает?
Кроме того, смотрите Следующий QA для получения дополнительной информации, которая может вам помочь:
Комментарии:
1. Привет, Грег — нет, это не просто использование в
guid
качестве одной переменной2. Как бы то ни было, я только что заметил в вашем коде, опубликованном выше, что в строке нет знака «=»:
$guid serialize(strval($_GET['guid']));
.. вероятно, это должно быть$guid = serialize(strval($_GET['guid']));