Cum să adaugi clasa active pe elementul curent din meniu?
Am două linkuri: Produse și Știri.
Când dau click pe Produse sau Știri, sunt direcționat către o pagină de arhivă care conține câteva articole, iar când dau click pe un articol sunt direcționat către pagina individuală a acestuia.
În meniu folosesc acest cod pe <li>
pentru a adăuga o clasă numită active dacă pagina este home:
<li<?php if(is_home()) {?> class="active"<?php } ?>>
Dar nu știu cum să fac acest lucru când am două pagini de arhivă și două pagini individuale.
Dacă folosesc if( is_archive() || is_single() )
va adăuga clasa pe ambele elemente din meniu.
Orice ajutor ar fi apreciat.

Puteți adăuga clase condiționale pentru fiecare în fișierul de funcții al temei child:
Iată un exemplu pe care îl puteți modifica pentru a se potrivi nevoilor dumneavoastră.
add_filter('nav_menu_css_class' , 'wpsites_nav_class' , 10 , 2);
function wpsites_nav_class($classes, $item){
if( is_archive() && $item->title == "Produse"){
$classes[] = "clasa-produse";
}
return $classes;
Sursă http://codex.wordpress.org/Function_Reference/wp_nav_menu#Adding_Conditional_Classes_to_Menu_Items
Apoi puteți stiliza meniul de navigare folosind noua clasă în fișierul style.css al temei child.
.clasa-produse {
Declarațiile dumneavoastră CSS
}
Acest cod CSS este condiționat de codul PHP de mai sus.

unde ar trebui să pun acest cod? în function.php? și unde va apărea această clasă "products-class"?

Pune codul la sfârșitul fișierului tău functions.php. Folosește clasa în fișierul style.css al temei tale child.

Adaugă acest lucru la elementul din meniul de navigație pe care îl incluzi în codul PHP. Adaugă condiționat acest lucru doar la elementul de meniu pentru produse atunci când te afli pe o pagină de arhivă. Pur și simplu modifică tag-urile condiționale pentru a se potrivi nevoilor tale.http://codex.wordpress.org/Conditional_Tags

Presupun că postările tale Products
și News
sunt postări personalizate.
Pentru ambele condiții, există echivalente specifice pentru $post_type
:
if (is_post_type_archive('products')) {
// ...
} elseif (is_post_type_archive(array('news', 'something'))) {
// ...
} elseif (is_singular('products')) {
// ...
} elseif (is_singular(array('news', 'something'))) {
// ...
}
Deci, pentru Products, ar fi:
if (is_post_type_archive('products') || is_singular('products'))
News în mod corespunzător.
Referințe:
