Cum activezi arhiva pentru un atribut Woo în Elementor?

Cum activezi arhiva pentru un atribut Woo în Elementor?

Elementor Pro are chestia asta numită Theme Builder, unde poți genera layout-uri cam pentru orice secțiune din site, inclusiv pagina de arhivă, autori, 404 etc. Are chiar integrare cu Woo Commerce, deci… yay!

Practic poți face rapid o temă simplă, fără prea mult cod scris. De fapt, este mai multă explicație decât cod. :D

Atributele Woo

Modul în care funcționează atributele produselor din Woo Commerce este destul de simplu: practic fiecare atribut este un term dintr-o taxonomie custom. Deci dacă ai atributul book-author, fiecare autor de carte va fi un term din acea taxonomie. Simplu și eficient.

În plus, fiecare atribut/taxonomie permite opțiunea de a avea sau nu arhivă (e.g. să poți avea link-ul book-author/ion-creanga).

Arhivele din Elementor

Arhivele din elementor pentru taxonomii au un mic quirk: sunt activate doar dacă TOATE aceste condiții sunt îndeplinite:

  1. Taxonomia are arhivă (evident)
  2. Taxonomia este publică ('public' => true)
  3. Este vizibilă în meniuri ('show_in_nav_menus' => true)

Eh, unde este problema? Woo nu setează show_in_nav_menus ca fiind true.

Cum le combinăm

Din fericire, Woo are filtre când înregistrează taxonomiile (atributele):

register_taxonomy( $name, 
  apply_filters( "woocommerce_taxonomy_objects_{$name}", array( 'product' ) ), 
  apply_filters( "woocommerce_taxonomy_args_{$name}", $taxonomy_data ) 
);

(sursa)

Tot sursa ne spune că, implicit, Woo înregistrează atributele ca pa_slug-name. Prin urmare, filtrul corect este:

<?php

add_filter("woocommerce_taxonomy_args_pa_book-author", function ($data) {
    $data['show_in_nav_menus'] = true;
    return $data;
});

Codul ăsta îl poți plasa ori în functions.php în tema ta, ori în wp-content/mu-plugins/show-attributes-in-nav-menus.php, pentru a funcținoa indiferent de temă.

În Elementor te duci la Theme Builder -> Product Archive și creezi un nou template acolo. La publicarea acelui template vei putea alege unde va fi afișat șiii… cam asta e tot.

Un Comentariu

Adaugă un comentariurăspuns pentru

Poți adăuga bucăți de cod folosind [code]codul tău aici[/code], [js][/js], [php][/php] etc.

Link-urile în context sunt binevenite. Comentariile fără nume/email valid sunt șterse.
PS: Comentariul NU este editabil.

Acest sit folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Site-ul blog.iamntz.com utilizează cookie-uri. Continuarea navigării presupune acceptarea lor. Mai multe informații.

windows apple dropbox facebook twitter