Mam taki mały skrypcik do nawigowania po kategoriach Woocommerce w wordpress'ie
Generalnie wszystko działa ok, ale...
Jedyne co mu "dolega" to to co pokazuje na poniższym przykładzie.
np. struktura menu wygląda mniej wiecej tak
1. Rodzic
1.1 Dziecko
1.2 Dziecko
1.3 Dziecko
1.3.1 Wnuk
1.3.2 Wnuk
2. Rodzic
2.1 Dziecko
2.2 Dziecko
2.3 Dziecko
2.3.1 Wnuk
2.3.2 Wnuk
Działa to na ten moment tak:
Klikam 1. Rodzic - tutaj jest ok
Wyświetla:
1.1 Dziecko
1.2 Dziecko
1.3 Dziecko
Klikam 1.1 Dziecko (Dziecko które nie ma już wnuków)
Wyświetla:
1.1 Dziecko
1.2 Dziecko
1.3 Dziecko
1.3.1 Wnuk - tego nie powinno
1.3.2 Wnuk - tego nie powinno
Klikam 1.3 Dziecko (Dziecko, które ma wnuki)
Wyświetla:
1.1 Dziecko - tego nie powinno
1.2 Dziecko - tego nie powinno
1.3 Dziecko - tego nie powinno
1.3.1 Wnuk
1.3.2 Wnuk
Klikam 1.3.1 Wnuk - i tutaj jest ok
Wyświetla:
1.3.1 Wnuk
1.3.2 Wnuk
<?php
$term = get_queried_object()->term_id;
$termid = get_term($term, 'product_cat' );
if($termid->parent > 0)
{
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => false,
'child_of' => $termid->parent,
);
$siblingproducts = get_terms( 'product_cat', $args);
foreach ($siblingproducts as $siblingproduct) {
if ($siblingproduct->term_id == $term ) {
echo '<li class="subcatmenu"><span class="subcatlinkmenu"><span class="fusion-megamenu-bullet"></span>';
}
else {
echo '<li class="subcatmenu"><span class="subcatlinkmenu"><span class="fusion-megamenu-bullet"></span>';
}
echo '<a href="';
echo get_term_link( $siblingproduct );
echo '">';
echo $siblingproduct->name;
echo '</a></span></li>';
}
}
else {
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => false,
'parent' => $term
);
$subproducts = get_terms( 'product_cat', $args);
foreach ($subproducts as $subproduct) {
echo '<li class="subcatmenu"><span class="subcatlinkmenu"><span class="fusion-megamenu-bullet"></span><a href="'.get_term_link( $subproduct ).'">';
echo $subproduct->name;
echo '</a></span></li>';
}
}
?>
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}