使用相同的自定义分类比较两种自定义邮政类型

时间:2013-12-20 作者:Plugin Drawer

我有两种帖子类型,课程和推荐,它们有相同的分类法。我希望完成的是检查一门课程是否与推荐课程属于同一类别。如果是,请显示,记住每个类别可能不止一个。

我目前可以检查他们使用的类别get_the_term_list() 但我不知道如何将它们相互比较。

我需要检查的是,pm\\U课程(post type)中勾选的类别是否与course\\U推荐(post type)相同。如果他们有相同的类别,那么我想展示推荐信,如果没有,我什么都不想做。

这确实是一个基本的if-else语句,但我似乎找不到一种方法来查看选中的类别在这两个方面是否相同。

1 个回复
SO网友:anu

不使用get_the_term_list() 因为它返回一个HTML字符串,这使得比较更加困难。

使用wp_get_post_terms() (Codex link) 相反它可以返回一个数组,然后可以使用array_intersect() 以获得匹配的条款。

您的代码应该是这样的(我还没有测试过):

$course_terms = wp_get_post_terms($course_post_id, \'course_type\'. array(\'fields\'=>\'slug\'));
$testimonial_terms = wp_get_post_terms($testimonial_post_id, \'course_type\'. array(\'fields\'=>\'slug\')); 
$matches = array_intersect($course_terms, $testimonial_terms);
if (count($matches) > 0) echo "matching terms";

结束