WooCommerce产品类别页面,带有上一个和下一个链接

如何解决WooCommerce产品类别页面,带有上一个和下一个链接?

我想自定义WooCommerce类别页面(archive-product.PHP)以显示当前产品类别,但我也想在页面中的某处创建指向上一个和下一个类别术语链接的“上一个”和“下一个链接

我没有运气就尝试了很多解决方案。我已经设法实现了一个带有实际类别ID的代码添加了+1和-1并且能够创建链接,但是最大的问题是,当“下一个链接”位于最后一个无法正常工作的类别时,不是链接的无限循环。 IE,如果我在第6页上属于我的最后一个类别,则下一个应该是1,上一个应该是5;如果我在第一个类别中,上一个应该是6,下一个应该是2。 >

请在下面使用我正在使用的代码,并且正在运行,但不是我需要的代码

<?PHP
$taxonomy = 'product_cat';
$cate = get_queried_object();
$cateID = $cate->term_id;

$next_cateID = $cateID + 1;
$prev_cateID = $cateID - 1; 

$next_term_link = get_term_link( $next_cateID,$taxonomy );
$next_term = get_term( $next_cateID,$taxonomy );
$next_slug = $next_term->name;

$prev_term_link = get_term_link( $prev_cateID,$taxonomy );
$prev_term = get_term( $prev_cateID,$taxonomy );
$prev_slug = $prev_term->name;
?>

<p><a href="<?PHP echo $prev_term_link ?>"><?PHP echo $prev_slug; ?></a></p>
<p><a href="<?PHP echo $next_term_link ?>"><?PHP echo $next_slug; ?></a></p>

解决方法

已更新:

您只需要定义您的第一个和最后一个类别ID。然后它将作为无限循环(假设您的产品类别术语是连续的)

<?php
if ( is_product_category() ) :
$taxonomy    = 'product_cat'; // WooCommerce product category taxonomy
$term_id     = get_queried_object_id(); // Current product category term Id

// Get first product category term Id
$query_args  = array('taxonomy' => 'product_cat','hide_empty' => false,'orderby' => 'term_id','number' => '1','fields' => 'ids');
$term_id_1st = get_terms($query_args);
$term_id_1st = reset($term_id_1st);

// Get last product category term Id
$query_args['order'] = 'DESC';
$term_id_end  = get_terms($query_args);
$term_id_end  = reset($term_id_end);

$next_term_id = $term_id_end == $term_id ? $term_id_1st : $term_id + 1;
$prev_term_id = $term_id_1st == $term_id ? $term_id_end : $term_id - 1; 

$next_term_link = get_term_link( $next_term_id,$taxonomy );
$next_term      = get_term( $next_term_id,$taxonomy );

$prev_term_link = get_term_link( $prev_term_id,$taxonomy );
$prev_term      = get_term( $prev_term_id,$taxonomy );

?>
<p><a href="<?php echo $prev_term_link ?>"><?php echo $prev_term->name; ?></a></p>
<p><a href="<?php echo $next_term_link ?>"><?php echo $next_term->name; ?></a></p>
<?php endif; ?>

要获取最后一个类别,您可以尝试以下

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?