Php WordPress-列出具有特定meta_键值的自定义类型

Php WordPress-列出具有特定meta_键值的自定义类型,php,mysql,wordpress,meta-key,Php,Mysql,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

所以我有以下几点

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_值的形式为

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'

谢谢

使用非序列化方法

$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

我们将使用wp_查询的适当格式获得相同的结果:

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

     print_r($query);
现在,如果$query对象中包含代码元素和您的值。打印它:

     echo $query->code;

希望它对您有用。如果您需要任何进一步的帮助,请告诉我。

返回的模式是否相同?如果是,则可以使用mysql完成,否则使用mysql将很难处理。您可能需要使用应用程序级别来处理它。当您使用wp时,使用wordpress预定义函数将是一个很好的实践。