如何用TAG方式串联自定义分类(实现相关文章串联功能)

遇到过一个奇葩的客户,让我通过TAG的方式,获取自定义分类的相关文章。

例如:某产品写了a这个tag标签,某新闻、案例、应用等等都有一个一样是a标签,然后如何在这个产品详情页,输出含有a标签的相关新闻、相关案例、相关应用等等。

最后如果没有这个标签的话,后台有通过手动添加功能填写

听到这里估计大家都蒙了,Wordprss不支持这个功能,没有插件支持这个功能,经过一系列摸索,我解决了这个问题,这里给大家解决思路。

  1. 首先在自定义分类添加tag标签'taxonomies' => array('post_tag')官方文档
  2. 添加完成后,需要用到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,有疑问,可以联系我。