如何用TAG方式串联自定义分类(实现相关文章串联功能)
遇到过一个奇葩的客户,让我通过TAG的方式,获取自定义分类的相关文章。
例如:某产品写了a这个tag标签,某新闻、案例、应用等等都有一个一样是a标签,然后如何在这个产品详情页,输出含有a标签的相关新闻、相关案例、相关应用等等。
最后如果没有这个标签的话,后台有通过手动添加功能填写
听到这里估计大家都蒙了,Wordprss不支持这个功能,没有插件支持这个功能,经过一系列摸索,我解决了这个问题,这里给大家解决思路。
- 首先在自定义分类添加tag标签
'taxonomies' => array('post_tag')
,官方文档。 - 添加完成后,需要用到ACF插件的关系,这个是如果没有这个标签的话,后台有通过手动添加功能填写功能
3.在前台填写判断,如果ACF关系的值为空的话,输出标签串联的相关文章,不为空的话,为手动添加的相关文章。
Demo:
<?php
/**
* Related Applications
*/
$posts = get_field('related-applications');
if( $posts ): ?>
<div class="product_details_left_applications product_details_left_standards">
<div class="product_details_left_applications_title">Related Applications</div>
<div class="clear"></div>
<?php foreach( $posts as $id ):
$image = get_field('application-image',$id);
if(empty($image)) $image['sizes']['thumbnail']='/wp-content/themes/lisun/img/default-100x100.jpg';
?>
<div class="product_details_left_applications_list">
<div class="product_details_left_applications_list_left">
<img src="<?php echo $image['sizes']['thumbnail']; ?>"/>
</div>
<div class="product_details_left_applications_list_right">
<a href="<?php echo get_the_permalink($id); ?>"><i class="fas fa-chevron-right"></i><?php echo get_the_title($id); ?></a>
</div>
<div class="clear"></div>
</div><?php endforeach; ?>
</div>
<?php else:
$args = array(
'posts_per_page' => 5,
'post_type' => 'applications',
'tax_query' => array(
array(
'taxonomy' => 'post_tag',
'field' => 'slug',
'terms' => $tags,
)
)
);
$posts = get_posts( $args );if($posts):
?>
<div class="product_details_left_applications product_details_left_standards">
<div class="product_details_left_applications_title">Related Applications</div>
<div class="clear"></div>
<?php foreach( $posts as $post ):
$image = get_field('application-image',$post->ID);
if(empty($image)) $image['sizes']['thumbnail']='/wp-content/themes/lisun/img/default-100x100.jpg';
?>
<div class="product_details_left_applications_list">
<div class="product_details_left_applications_list_left">
<img src="<?php echo $image['sizes']['thumbnail']; ?>"/>
</div>
<div class="product_details_left_applications_list_right">
<a href="<?php the_permalink(); ?>"><i class="fas fa-chevron-right"></i><?php the_title(); ?></a>
</div>
<div class="clear"></div>
</div><?php endforeach; wp_reset_postdata(); ?>
</div><?php endif; endif; ?>
以上代码需要懂点PHP和Wordpress,有疑问,可以联系我。