WordPress — список пользовательских типов с определенным значением meta_key

Итак, у меня есть следующее

SELECT wp_posts.ID, wp_posts.post_author,wp_posts.post_date,wp_posts.post_content,wp_posts.post_title,wp_posts.post_excerpt,wp_postmeta.meta_value
FROM wp_posts
INNER JOIN wp_postmeta
ON wp_posts.id=wp_postmeta.post_id
WHERE wp_postmeta.meta_key='cm_video' and post_status='publish'
ORDER BY wp_posts.id DESC;

Что возвращает то, что мне нужно (почти). Значение meta_value находится в форме

a:2:{s:4:"code";s:27:"http://youtu.be/xpiL05fCE1E";s:4:"type";s:7:"youtube";}

Какой самый простой способ вернуть просто http://youtu.be/xpiL05fCE1E? Здесь могут присутствовать различные другие значения, такие как код для вставки и код iframe.

Есть ли что-то внутреннее в WordPress, я должен использовать?

Я пришел с этим, который, кажется, делает свое дело. Мысли?

SELECT
wp_posts.ID, wp_posts.post_author,wp_posts.post_date,wp_posts.post_content,wp_posts.post_title,wp_posts.post_excerpt,SUBSTRING_INDEX(SUBSTRING_INDEX(wp_postmeta.meta_value, '";', 2), ':"', -1)
FROM wp_posts
INNER JOIN wp_postmeta
ON wp_posts.id=wp_postmeta.post_id
WHERE wp_postmeta.meta_key='cm_video' and post_status='publish'

Спасибо

0

Решение

использовать метод unserialize ()

$a='a:2:{s:4:"code";s:27:"http://youtu.be/xpiL05fCE1E";s:4:"type";s:7:"youtube";}';
$a = unserialize($a);
print_r($a);

//output
Array ( [code] => http://youtu.be/xpiL05fCE1E [type] => youtube )

echo $a['code'];

Вот два типа переменных

a = array and 2 is the dimension of the array
s = string and 4 is the length of the string
0

Другие решения

Мы получим то же самое с правильным форматом с помощью wp_query:

     $query = new WP_Query( array (
'post_type' => 'product',
'orderby' => 'meta_value_num',
'meta_key' => 'cm_video' ) );

print_r($query);

Теперь, если у объекта $ query есть элементы кода с вашим значением. Распечатать это:

     echo $query->code;

Надеюсь, это сработает для вас, пожалуйста, дайте мне знать, если вам нужна дополнительная помощь.

0

По вопросам рекламы [email protected]