Php 基于类别术语显示子帖子
我有一个名为《城市指南》的自定义帖子类型。子帖子文章显示在父页面中。子帖子具有名为newyork和paris的自定义类别Php 基于类别术语显示子帖子,php,wordpress,if-statement,conditional-statements,Php,Wordpress,If Statement,Conditional Statements,我有一个名为《城市指南》的自定义帖子类型。子帖子文章显示在父页面中。子帖子具有名为newyork和paris的自定义类别 <div class="container"> <?php while( have_posts() ): the_post(); ?> <div class="row main-content-wrap"> <div class="col-md-12 long-post-sections-wrapper"> <?ph
<div class="container">
<?php while( have_posts() ): the_post(); ?>
<div class="row main-content-wrap">
<div class="col-md-12 long-post-sections-wrapper">
<?php while( $city_guide->have_posts() ): $city_guide->the_post();
$terms = get_the_terms( $post->ID , 'city-guide-cities-category' );
// Loop over each item since it's an array
if ( $terms != null ){
foreach( $terms as $term ) {
// Print the name method from $term which is an OBJECT
print $term->name ;
} }
?>
<div <?php post_class('city-guide-row row' . classes_related($wp_query->current_post) ); ?>>
<div class="col-sm-8">
<h3 id="<?php echo esc_attr( get_post()->post_name ); ?>"><?php the_title(); ?></h3>
<?php the_post_thumbnail(); ?>
<div class="img-caption"><?php echo get_post(get_post_thumbnail_id())->post_excerpt; ?></div>
<?php the_content(); ?>
</div>
<div class="col-sm-4 map-container">
<!-- google map -->
<div class="map-wrapper">
<div class="mobile-map-overlay" onClick="style.pointerEvents='none'"></div>
<iframe frameborder="0" scrolling="no" marginheight="0" marginwidth="0"width="100%" height="260" src="https://maps.google.com/maps?hl=en&q=<?php echo get_field('address',get_the_ID()); ?>&ie=UTF8&t=roadmap&z=6&iwloc=B&output=embed&z=16"></iframe>
</div>
<h5>Address</h5>
<?php echo get_field('address'); ?><br/>
<?php echo get_field('address_2'); ?>
<h5>Contact</h5>
<?php if(get_field('contact_number')):
echo '<a href="tel:' . get_field('contact_number') . '">' . get_field('contact_number') . '</a>';
endif; ?><br/>
<?php if(get_field('website')):
echo '<a href="' . get_field('website') . '" target="_blank">' . get_field('website') . '</a>';
endif; ?><br/>
<?php if(get_field('email')):
echo '<a href="mailto:' . get_field('email') . '">' . get_field('email') . '</a>';
endif; ?>
</div>
<div class="clearfix"></div>
<hr class="city-row-separator"/>
<?php endwhile; ?>
</div>
</div>
<?php endwhile; ?>
没有达到我期望的结果。我该如何实现?请帮助
编辑:
我试过了,但什么也没得到
<?php
foreach ($NY_array as $key => $value) {
$args = array(
'post__in' => $NY_Posts,
);
$posts = get_posts($args);
foreach ($posts as $p) : ?>
<div <?php post_class('city-guide-row row' . classes_related($wp_query->current_post) ); ?>>
<div class="col-sm-8">
<h3 id="<?php echo esc_attr( get_post()->post_name ); ?>"><?php $p->post_title; ?></h3>
<?php the_post_thumbnail(); ?>
<div class="img-caption"><?php echo get_post(get_post_thumbnail_id())->post_excerpt; ?></div>
<?php the_content(); ?>
</div>
<div class="col-sm-4 map-container">
<!-- google map -->
<div class="map-wrapper">
<div class="mobile-map-overlay" onClick="style.pointerEvents='none'"></div>
<iframe frameborder="0" scrolling="no" marginheight="0" marginwidth="0"width="100%" height="260" src="https://maps.google.com/maps?hl=en&q=<?php echo get_field('address',get_the_ID()); ?>&ie=UTF8&t=roadmap&z=6&iwloc=B&output=embed&z=16"></iframe>
</div>
<h5>Address</h5>
<?php echo get_field('address'); ?><br/>
<?php echo get_field('address_2'); ?>
<h5>Contact</h5>
<?php if(get_field('contact_number')):
echo '<a href="tel:' . get_field('contact_number') . '">' . get_field('contact_number') . '</a>';
endif; ?><br/>
<?php if(get_field('website')):
echo '<a href="' . get_field('website') . '" target="_blank">' . get_field('website') . '</a>';
endif; ?><br/>
<?php if(get_field('email')):
echo '<a href="mailto:' . get_field('email') . '">' . get_field('email') . '</a>';
endif; ?>
</div>
<div class="clearfix"></div>
<?php get_template_part( 'templates/shop-the-story-city-guide', 'single' ); ?>
</div>
<hr class="city-row-separator"/>
<?php
endforeach;
}
?>
>
让我根据您当前的代码指导您完成简单的代码
虽然它不是标准溶液,但可以完成整个过程
要求
运行循环并收集纽约和巴黎的帖子,作为$NY\u array
和$PA\u array
并且它们的Posts id也在单独的数组中$NY_Posts
和$PA_Posts
编辑开始
你能告诉我哪个部分不明白吗,这样我就可以编辑它了。你能试着在上面打印($NY_Posts,)
foreach($key=>$value){}
并告诉我输出结果吗?我知道了。。请更正if($term->name=='newyork'){$NY_数组[]=array($term_id'=>$term->term分类法\'id',count'=>$term->count);$NY_Posts[]=$post->id;}elseif($term->name=='paris'){$PA_数组[]=array('term\u id'=>$term->term\u taxonomy\u id,'count'=>$term->count);$PA\u Posts[]=$post->id;}
或查看编辑过的答案…第一段代码已经编辑好了让我们来看看。
<?php
foreach ($NY_array as $key => $value) {
$args = array(
'post__in' => $NY_Posts,
);
$posts = get_posts($args);
foreach ($posts as $p) : ?>
<div <?php post_class('city-guide-row row' . classes_related($wp_query->current_post) ); ?>>
<div class="col-sm-8">
<h3 id="<?php echo esc_attr( get_post()->post_name ); ?>"><?php $p->post_title; ?></h3>
<?php the_post_thumbnail(); ?>
<div class="img-caption"><?php echo get_post(get_post_thumbnail_id())->post_excerpt; ?></div>
<?php the_content(); ?>
</div>
<div class="col-sm-4 map-container">
<!-- google map -->
<div class="map-wrapper">
<div class="mobile-map-overlay" onClick="style.pointerEvents='none'"></div>
<iframe frameborder="0" scrolling="no" marginheight="0" marginwidth="0"width="100%" height="260" src="https://maps.google.com/maps?hl=en&q=<?php echo get_field('address',get_the_ID()); ?>&ie=UTF8&t=roadmap&z=6&iwloc=B&output=embed&z=16"></iframe>
</div>
<h5>Address</h5>
<?php echo get_field('address'); ?><br/>
<?php echo get_field('address_2'); ?>
<h5>Contact</h5>
<?php if(get_field('contact_number')):
echo '<a href="tel:' . get_field('contact_number') . '">' . get_field('contact_number') . '</a>';
endif; ?><br/>
<?php if(get_field('website')):
echo '<a href="' . get_field('website') . '" target="_blank">' . get_field('website') . '</a>';
endif; ?><br/>
<?php if(get_field('email')):
echo '<a href="mailto:' . get_field('email') . '">' . get_field('email') . '</a>';
endif; ?>
</div>
<div class="clearfix"></div>
<?php get_template_part( 'templates/shop-the-story-city-guide', 'single' ); ?>
</div>
<hr class="city-row-separator"/>
<?php
endforeach;
}
?>
<?php
while( have_posts() ): the_post();
$terms = get_the_terms( $post->ID , 'city-guide-cities-category' );
// Loop over each item since it's an array
if ( $terms != null ){
foreach( $terms as $term ) {
if ( $term->name == 'newyork'){
$NY_array[] = array('term_id'=> $term->term_taxonomy_id, 'count' => $term->count);
$NY_Posts[] = $post->ID;
}
elseif ( $term->name == 'paris'){
$PA_array[] = array('term_id'=> $term->term_taxonomy_id, 'count' => $term->count);
$PA_Posts[] = $post->ID;
}
}
}
endwhile; ?>
<?php
foreach ($NY_array as $key => $value) {
$args = array(
'post__in' => $NY_Posts,
);
$posts = get_posts($args);
foreach ($posts as $p) :
//do the code here
//below code replaced by
//$p->post_title;
//$p->post_excerpt
//get_field('address',$p->ID);
//get_field('address_2',$p->ID);
//get_field('contact_number',$p->ID); and so on
// try to print print_r($p) if you need to print some data from Post like content, title, featured image etc
endforeach;
}
?>
<?php foreach ($PA_array as $key => $value) {
$args = array(
'post__in' => $PA_Posts,
);
$posts = get_posts($args);
foreach ($posts as $p) :
//do the code here
//below code replaced by
//$p->post_title;
//$p->post_excerpt
//get_field('address',$p->ID);
//get_field('address_2',$p->ID);
//get_field('contact_number',$p->ID); and so on
// try to print print_r($p) if you need to print some data from Post like content, title, featured image etc
endforeach;
}?>