我想循环浏览两种不同的自定义帖子类型,以找出应该显示的内容。在CPT项目中,我现在想要房子的名称,在CPT投资组合中我想知道这个类别。如果这两个是相同的,我希望显示项目CPT中的某些内容。
在此页面上,您使用的是 single-portfolio.php 。
下面的代码有两个错误(至少)第一个是所有项目的房屋类型($houseType
)无缘无故地显示,第二个是第二个循环内的内容不显示一点都不
所以,试着让这个更清楚: 我想显示项目的名称和城市,房屋类型名称与投资组合类别(房屋类型的名称)相匹配
$args = array('post_type' => 'project');
$my_query = new WP_Query( $args );
if( $my_query->have_posts()) while ($my_query->have_posts()) : $my_query->the_post();
$houseType = the_field('hustyp');
$argsPort = array(
'post_type' => 'portfolio',
'tax_query' => array(
array(
'taxonomy' => 'portfolio_category',
'field' => 'slug', //can be set to ID
'terms' => $houseType
)));
$port_query = new WP_Query($argsPort);
if( $port_query->have_posts()) while ($port_query->have_posts()) : $port_query->the_post(); ?>
<tr>
<td><?php the_field('brf')?>/<a href="<?php the_permalink(); ?>"><?php the_field('ort')?></a></td>
</tr>
<?php
endwhile;
?>
<?php
endwhile;
我不知道最好的方法是创建一个自己的查询或类似的东西。
有什么想法吗?
更新
好的,我取得了一些进展,最后意识到the_field
显示了该字段,因此我应该使用get_field
。但是我仍然不知道如何比较两种不同的帖子类型以查看它是否匹配,之后只显示匹配。我认为创建一个数组可以是一个解决方案,但不知道如何前进。正如您在下面的新代码中看到的那样。
新代码:
$args = array(
'post_type' => array( 'portfolio', 'project' ));
$my_query = new WP_Query( $args );
if( $my_query->have_posts()) {
while ($my_query->have_posts()) : $my_query->the_post();
//Returns All Term Items for "my_taxonomy"
$term_list_portfolio = wp_get_post_terms($post->ID, 'portfolio_category', array("fields" => "all"));
// Just get the category
$category = $term_list[0]->name;
// Get the house type
$houseType = get_field('hustyp');
$result = array($term_list[0]->name, get_field('hustyp'));
print_r($result);
if($category == $houseType) { ?>
<tr>
<td><?php the_field('brf')?><?php the_field('ort') ?>
<?php }
endwhile;
}