我有这样打印的产品类别的导航菜单
<?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属性并与之比较。 我可以帮忙吗?
答案 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;