WordPress的:获取自定义字段的所有值

问题描述:

我使用Verve Meta Boxes。我想从其中一个自定义字段中创建菜单。我怎样才能返回所有的自定义字段值?例如,如果我有一个名为“水果”的自定义选择字段,并且作为选项我有“苹果”,“橙子”和“香蕉”,我怎样才能得到这些值的完整列表,作为一个数组呢?我可以得到与一个职位相关的人:WordPress的:获取自定义字段的所有值

get_post_custom_values('fruit') 

......但我无法弄清楚如何获得整个列表。

预先感谢您!

+0

环顾四周后,我认为get_categories()可能是答案。还没有尝试过,但我会报告回来。 http://codex.wordpress.org/Function_Reference/get_categories – Imaginary 2012-02-23 04:12:59

万一有人还在纳闷:

global $wpdb; 
$results = $wpdb->get_results('SELECT DISTINCT meta_value FROM wp_postmeta WHERE meta_key LIKE "FIELD_NAME"', OBJECT); 

只要确保你的postmeta表“wp_postmeta”(默认),并与您在管理领域创建名称更改FIELD_NAME。

+0

这看起来比我的哈克解决方案更好。当我有机会的时候,我会试试看,但看起来不错,我敢打赌它是有效的。谢谢! – Imaginary 2014-12-16 23:27:23

您可以通过在循环中使用get_post_meta函数来实现普通的wordpress方式。

+0

这不只是获得与特定帖子相关的值,就像我的get_post_custom_values? – Imaginary 2012-02-14 17:24:52

试试这个:

$fruits = trim(get_post_meta($post->ID,'fruits',true)); 
$fruits_array = explode(',',$fruits); 
foreach($fruits_array as $f){ 
    echo $f.'<br/>'; 
} 

基本上你需要用逗号在自定义字段分开你的水果名称,以便您可以将它们爆炸成阵列和回声值一个接一个。

谢谢,戴夫

+1

从来没有见过这个,对不起。同样,这只会得到与单个帖子相关的值。我需要获得所有可用选项,无论它们是否适用于单个帖子。 – Imaginary 2012-09-22 18:03:10

我无法找到一个优雅的解决方案。我最终做的是循环遍历所有的帖子,并保持独特值的记录,因为我可以跨越它们,创建一个数组。然后我用这个数组来做我的导航。