获取给定自定义帖子类型的所有元数据

时间:2015-01-08 作者:Phill Healey

我正在使用一个插件,它允许我将个人档案添加为自定义帖子类型,并使用几个自定义字段用于特定信息。然后通过相关页面上的快捷码输出这些帖子,插件负责输出相关数据。

此外,我还为将输出此信息的页面创建了一个新的页面模板。我需要在创建每个个人档案时,从该页面模板输出在相关字段中输入的所有“位置”。

我知道这些信息存储在wp\\U Posteta中,但还无法确定wp是否提供了一种本机实现此目的的方法或如何实现此目的。

到目前为止,我已获得以下代码:

//get your custom posts ids as an array
                $posts = get_posts(array(
                    \'post_type\'   => \'team-member\',
                    \'post_status\' => \'publish\',
                    \'posts_per_page\' => -1,
                    \'fields\' => \'ids\'
                )
                                  );
                //loop over each post
                foreach($posts as $p){
                    //get the meta you need from each post
                    $locations = get_post_meta($p,"_location",true);
                }
但是,这仅显示所示第一个配置文件的位置字段。

知道我哪里出错了吗&/或者我需要做什么才能得到记录的位置?理想情况下,作为唯一列表(如无重复位置)。

1 个回复
最合适的回答,由SO网友:shanebp 整理而成

您的通话应包括ID:

get_post_meta($p->ID,"_location",true);
什么是$locations ?
如果是数组,则应为$locations[] = 如果是字符串,则应为$locations .=

如果您只需要唯一的位置,可以执行以下操作:

$locations = array();
foreach($posts as $p){
    $location = get_post_meta($p->ID,"_location",true);
    if( ! in_array( $location, $locations) )
        $locations[] = $location;
}

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在