我想答案可能是,准备编写一些SQL,但我还是要问。
我的情况是,我从外部源提取数据,并将其存储在自定义的post类型中。总的来说,这看起来会很有效。然而,道路上有一个轻微的颠簸。
这些数据带有所谓的姿态。它们以键值对的形式存在,其中键和值可以是任何东西。考虑到我已经在meta中存储了其他数据,我希望得到的是类似于标签的东西,但是成对的。在大多数方面与标记完全相同,但有两个值的分类法。
我试着把这些值转换成$tag = "{$key}|{$value}";
但我可以看到它很快变得凌乱和臃肿。
当前的解决方案将整个阵列放入一个元中。这是可行的,但对于“选择所有同意foo是bar的X类型的帖子”来说并不太好。
这让我想问,是否可能有更复杂的双因素分类法?
最合适的回答,由SO网友:Jacob Peattie 整理而成
导入时,可以为每个唯一的站姿键创建一个分类法,然后将该值作为术语添加到该键的分类法中,然后将该术语分配给帖子。
我的建议如下:
将站姿键存储在数据库中的某个位置(可能作为选项),确保没有重复的站姿键。根据您拥有的数量,这可能只是一个带有序列化数组的单个值在init
hook,用get_option()
, 并使用register_taxonomy()
.导入时,将所有新密钥保存到数据库,然后立即运行register_taxonomy()
以便为流程的其余部分注册分类法对于值,请使用将其作为术语添加到分类中wp_insert_term()
, 但只有在检查该值不存在之后get_term_by()
.一旦注册了分类法,并且插入或找到了值的术语,请使用wp_set_post_terms()
.如果这样做,则可以使用taxonomy query. 这将比尝试使用post meta进行筛选更快。