在导航菜单中将标签类添加到当前的Woocommerce产品类别

时间:2018-08-22 04:02:21

标签: php wordpress woocommerce custom-taxonomy

我有这样打印的产品类别的导航菜单

<?php
$orderby = 'name';
$order = 'asc';
$hide_empty = false ;
$cat_args = array(
    'orderby'    => $orderby,
    'order'      => $order,
    'hide_empty' => $hide_empty,
            );
$product_categories = get_terms( 'product_cat', $cat_args );
if( !empty($product_categories) ){
        echo '<ul>';
    foreach ($product_categories as $key => $category) {
        echo '<li class="menuNav">';
        echo '<a href="/'.$category->slug.'_product_sale/" >';
        echo get_term_meta($category->term_id, 'cat_one', true);
        echo '</a>';
        echo '</li>';
    }
    echo '</ul>';
}
?>

现在,我想比较它们的href属性和当前页面的子条目,如果它们匹配,我想给该定位标记一个类名“当前”。 这样我就可以设置一个锚标记的样式,以显示当前选择的类别。

我发现我可以像这样抓住当前页面的弹头

$current_page_slug = $post->post_name;

我不知道如何一一抓取href属性并与之比较。 我可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您可以像这样抓住当前页面的子弹,

public static class DbSetExtensions
{
   public static string EntityName<TEntity>(this DbSet<TEntity> dbSet) where TEntity : class
   {
      return typeof(TEntity).Name;
   }
}

使用get_queried_object()获取当前页面对象更加可靠,并且不太可能被修改,除非您使用邪恶的query_posts破坏了主查询对象,但这一切都取决于您。

此外,您可以按照以下说明使用

// Get the queried object and sanitize it
$current_page = sanitize_post( $GLOBALS['wp_the_query']->get_queried_object() );
// Get the page slug
$slug = $current_page->post_name;