Vážení zákazníci, v dňoch od 27.2. do 8.3.2026 máme dovolenku.

Ako použiť vlastný query filter pre taxonómie v Elementore (Loop Grid & Carousel)

Elementor ponúka medzi svojimi elemetami aj element Loop Grid, resp. Loop Carousel, ktorý je veľmi užitočný pri vytváraní dynamického obsahu, tzv. “listingu” alebo zoznamu položiek. Umožňuje zobraziť zoznam príspevkov (posts) ale aj výrazov jednotlivých taxonómii (terms). Pomocou vlastného filtra dotazu (Custom Query Filter) a zadanim vlastného Query ID vieme prispôsbiť, ktoré dáta sa majú použiť pri generovaní zoznamu – úpravou objektu WP_Query

				
					function my_query_by_post_types( $query ) {
	$query->set( 'post_type', [ 'custom-post-type1', 'custom-post-type2' ] );
}
add_action( 'elementor/query/{$query_id}', 'my_query_by_post_types' );
				
			

Avšak v prípade použitia taxonómie táto možnosť nefunguje, hoci ju Elementor ponúka. Po zadaní vlastného filtra dotazu (Query ID), v našom prípade “px_current_child_terms”, sa nezobrazia žiadne výsledky. Je to preto, že hook ‘elementor/query/{query_id}’ ako sme uviedli upravuje objekt WP_Query, ktorý slúži na dopytovanie príspevkov a nie výrazov taxonómii. 

Taxonomy Loop Grid
Loop Grid - nastavenie Rozloženia
Taxonomy Loop Grid - Nastavenia
Loop Grid - nastavenie Dotazu

Ak chceme upraviť dotaz pre výrazy taxónómii, je potrebné použiť hook elementor/loop_taxonomy/args. Napríklad ak chceme na stránke kategórie (archiv produktov) zobrazovať ich priame dcérske kategórie pomocou elementu Loop Grid, resp. Loop Carousel. 

				
					function px_elementor_loop_taxonomy_args( $args, $settings, $display_settings ) {

	if ( isset( $settings['term_taxonomy_id'] ) && $settings['term_taxonomy_id'] === 'px_current_child_terms' ) {
		$queried_object = get_queried_object();

		if ( $queried_object && isset( $queried_object->term_id ) ) {
			$parent_id = $queried_object->term_id;
			$args['parent'] = $parent_id; //child_of ak chcem zobrazit vsetky dcerske kategorie aj z nizsich urovni
		}

		//archiv ale nie kategoria = obchod, zobraz vsetky kategorie
		if ( is_archive() && ! is_tax() ) {
			$args['parent'] = "0";
		}

		$args['term_taxonomy_id'] = null; //reset term_taxonomy_id

	}

	return $args;
}

add_filter( 'elementor/loop_taxonomy/args', 'px_elementor_loop_taxonomy_args', 20, 3 );
				
			

Výsledok použitia tohto kódu je zobrazený na nižšie uvedeném obrázku, kde sa nachdáza screenshot kategórie “Pneumatiky” aj so spominaným Loop Grid-om, ktorý zobrazuje náhľady s odkazmi na priame dcérske kategórie “Celoročné pneumatiky”, “Letné pneumatiky” atď.

Taxonomy Loop Grid
Picture of Roman Kraiger

Roman Kraiger

Zakladateľ agentúry Pixeler, vášnivý cyklista, programátor a občasný bloger.

Páčil sa Vám tento článok?

Odmeňte ho páčikom.

alebo ho zdieľajte medzi priateľmi na:

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *