我用ACF创建了一个颜色选择器字段,它显示在每个类别页面上,并允许最终用户为每个类别分配颜色。这是工作得很好,但我希望我的主导航上的类别也被分配在颜色选择器字段上给出的颜色。
我有一个walker类,我想我需要在上面实现它的是下面的代码。因此,我想我需要添加一个内联样式“colour:”,如果菜单项是带有保存颜色选择器字段中类别颜色的变量的分类法。类似于以下内容:
$item_output = $args->before;
if( $item->object == \'category\' ) {
$post_categories = get_the_category();
foreach( $post_categories as $post_category ) {
$category_color = get_field( \'category_color\', $post_category);
$item_output .= \'<a style="color:\' . $category_color . \';"\'. $attributes .\'>\';
}
} else {
$item_output .= \'<a\'. $attributes .\'>\';
}
$item_output .= $args->link_before . apply_filters( \'the_title\', $item->title, $item->ID ) . $args->link_after;
$item_output .= ( $args->has_children ) ? \'<i class="fa fa-angle-down"></i></a>\' : \'</a>\';
$item_output .= $args->after;
上述代码为主菜单上的所有类别菜单项指定了相同的颜色。我现在想知道如何将每个类别页面颜色选择器字段上选择的颜色分配给每个类别菜单项。
最合适的回答,由SO网友:Madeirense 整理而成
终于成功了!
没有什么比睡个好觉更能重新启动大脑了:)
有效的更新代码:
$item_output = $args->before;
if( $item->object == \'category\' ) {
$category = get_category( $item->object_id );
$category_color = get_field( \'category_color\', $category);
$item_output .= \'<a style="color:\' . $category_color . \';"\'. $attributes .\'>\';
} else {
$item_output .= \'<a\'. $attributes .\'>\';
}
$item_output .= $args->link_before . apply_filters( \'the_title\', $item->title, $item->ID ) . $args->link_after;
$item_output .= ( $args->has_children ) ? \'<i class="fa fa-angle-down"></i></a>\' : \'</a>\';
$item_output .= $args->after;