自定义投递类型动态更新其他自定义投递类型

时间:2013-08-08 作者:Kevin Deganhart

我有两个自定义帖子类型,一个是产品,另一个是供应商。供应商CPT有名称、地址以及在那里销售的产品。产品CPT有产品名称、产品描述以及每个产品的供应商。

有没有办法让每个CPT互相更新?那么,如果我说这个供应商销售这个产品,它会自动更新产品,说它是由那个供应商销售的?

1 个回复
最合适的回答,由SO网友:Ben Miller - Remember Monica 整理而成

我建议不要以这种方式更新这两种自定义帖子类型。最终,您将以两种不同的方式在数据库中存储相同的信息。

相反,选择一个作为此信息的主控者。例如,让我们选择供应商类型。对于每个供应商,您可以存储(作为post元数据)该供应商销售的每个产品的产品post ID。然后,如果您需要查找销售特定产品的供应商,您可以构造一个查询,在供应商中搜索销售该产品的供应商。

例如,假设post ID为123的供应商销售post ID为234的产品。您可以这样添加元数据:

add_post_meta(123, \'product\', 234);
要查找销售特定产品的所有供应商,您的查询可能如下所示:

global $wpdb;
$selling_vendors = $wpdb->get_col( 
    $wpdb->prepare( 
        "SELECT post_id 
        FROM $wpdb->postmeta 
        WHERE meta_key = \'product\' 
        AND meta_value = %d", 
        $product_post_id
    ) 
);
$product_post_id 将包含您要查询的产品的post ID。$selling_vendors 将为您提供一组销售该产品的供应商的post ID。

结束

相关推荐