我创建了2个自定义帖子类型,其中包含名为Company
和Location
的WP中的“广告系列 - 自定义内容类型和字段”插件。此外,我在名为Location
的{{1}}帖子类型中创建了关系字段。
现在我正试图通过这个关系领域获得帖子。
我试过这段代码:
parent_company_name
然而它返回一个空数组。
我知道对于帖子类型和分类法之间的关系,我可以做这样的事情:
$pos = get_posts(
array(
'numberposts' => 1000,
'post_type' => 'location',
'meta_key' => 'parent_company_name',
'meta_value' => $full_company_name
)
);
但是我可以为2种帖子类型做些什么来获得相同的结果呢?
答案 0 :(得分:2)
您正在使用具有自己逻辑的插件Pods - Custom Content Types and Fields,在数据库中为名为{your-db-prefix_}podsrel
的关系创建表,并且有很多related options。
您拥有的是2个自定义帖子类型(Company
和Location
),其中包括:Location
的{{1}} parent_company_name
。Company
。
parent_company_name
保存在数据库中(在{your-db-prefix_}postmeta
表格中)meta_key
Location
id
Company
为meta_value
meta_id | post_id | meta_key | meta_value
----------+--------------+---------------------+----------------
some_id | some_post_id | parent_company_name | some_Company_id
1}}:
{your-db-prefix_}podsrel
在id
表中,id为关系:
两种方式来实现你的目标:
您没有Company
的{{1}},只有它的名字(标题):
function ww_get_id_by_title($title, $post_type = 'company'){
$post = get_page_by_title($title, OBJECT, $post_type);
return (!empty($post)) ? $post->ID : false;
}
$pos = get_posts(
array(
'numberposts' => 1000,
'post_type' => 'location',
'meta_key' => 'parent_company_name',
'meta_value' => ww_get_id_by_title($full_company_name)
)
);
在这里,我们创建了函数ww_get_id_by_title
,它使用它的名称返回公司的id
。我们使用get_page_by_title()
函数来返回id。我们刚刚使用get_posts
。
注意:如果我们拥有公司的id
您拥有id
公司,我parent_company_name
为Location
:
$company_id = 9;
$pos = get_posts(
array(
'numberposts' => 1000,
'post_type' => 'location',
'meta_key' => 'parent_company_name',
'meta_value' => $company_id
)
);
在此示例中,我们的Company
ID为9。