Skip to content

Wszystko o WordPressie, tworzeniu stron — i nie tylko

🔗 Powiązane wpisy w Elementorze przez niestandardowy filtr zapytań

🔗 Powiązane wpisy w Elementorze przez niestandardowy filtr zapytań

Standardowy widżet „Posty" w Elementor Pro potrafi trzy rzeczy: najnowsze wpisy, według kategorii oraz listę ręczną. Kiedy jednak pod artykułem potrzebny jest blok „Podobne wpisy", dopasowane tagami i kategoriami do bieżącego, nie ma żadnej wbudowanej opcji. Owszem, na liście rozwijanej Source od wersji 2.5 widnieje pozycja „Related", ale logika jest prymitywna: wpisy z tych samych kategorii, bez uwzględniania wagi dopasowań. Rezultat jest przewidywalny, blok wygląda jak przypadkowy zestaw, a nie jak przemyślana rekomendacja.

Zadanie: zachować design kart Elementor, ale przekazać zapytanie do zewnętrznej wtyczki, która oblicza trafność na podstawie wszystkich powiązanych taksonomii jednocześnie. W efekcie otrzymujemy blok „Podobne wpisy", w którym każdy kolejny post jest rzeczywiście bliższy temu, co czytelnik widzi teraz, a nie tylko wypełnia siatkę.

Metoda działa na czystym PHP, bez zbędnych add-onów i bez edycji szablonów. Elementor rysuje kartę, wtyczka Related Posts By Taxonomy oblicza ID, a hook elementor/query/{$query_id} łączy jedno z drugim. 10 minut konfiguracji i blok ożywa.

💡 Szybki przegląd:

  • Instalują Państwo bezpłatną wtyczkę Related Posts By Taxonomy: wyszukuje ona powiązane wpisy na podstawie wspólnych kategorii, tagów i niestandardowych taksonomii, bez obciążania frontendu.
  • W widżecie Posts Elementor Pro definiują Państwo unikalny Query ID, ten ciąg znaków zamieni się w nazwę hooka do przechwycenia WP_Query.
  • Dodają Państwo fragment PHP na stronę: funkcja pobiera tablicę ID z wtyczki i przekazuje ją do zapytania Elementora przez post__in.
  • Dostrajają Państwo liczbę, sortowanie, szablon wyświetlania i cache za pomocą filtrów wtyczki do własnych potrzeb.

Wtyczka Related Posts By Taxonomy jest obecna w oficjalnym repozytorium WordPress.org od 2014 roku. Na czerwiec 2026, wersja 2.7.9, przetestowana aż do WordPress 7.0, 10 000+ aktywnych instalacji. Autor, Kees Meijer, stabilnie utrzymuje wtyczkę: ostatnie wydanie ukazało się kilka dni przed tą publikacją.

Główną zaletą jest minimalny footprint. Żadnego panelu administracyjnego w konsoli, żadnych zbędnych skryptów na frontendzie, żadnego zapisywania w bazie danych. Cała konfiguracja odbywa się przez filtry i atrybuty shortcode’a. Dla developera to plus: czysta instalacja, przewidywalne zachowanie, zero śmieci.

Algorytm szereguje wpisy według liczby wspólnych terminów taksonomii. Wpis, który uzyskał najwięcej dopasowań w kategoriach i tagach z bieżącym artykułem, otrzymuje najwyższy priorytet. Wtyczka działa nie tylko ze standardowymi kategoriami i tagami, obsługuje niestandardowe taksonomie zarejestrowane przez WooCommerce, ACF lub CPT UI. A skoro współpracuje z dowolnymi typami wpisów, blok „Podobne wpisy" wyświetla się zarówno na stronach portfolio, jak i w niestandardowych sekcjach.

Konfiguracja widżetu Posts w Elementorze

Proszę dodać na stronę Single Post Template widżet Posts z biblioteki Elementor Pro. Proszę skonfigurować skin, Cards lub Classic, i osiągnąć pożądany design: okładka, tytuł, data, excerpt. Na tym etapie widżet pokazuje najnowsze wpisy bloga i jest to normalne.

Teraz kluczowy krok. W bocznym panelu edycji proszę otworzyć zakładkę Query. Proszę znaleźć pole Query ID i wpisać unikalny identyfikator, na przykład related_posts_by_tax. To właśnie ten ciąg znaków zamieni się w nazwę hooka elementor/query/related_posts_by_tax, przez który przechwycimy zapytanie.

Pole Query ID w ustawieniach widżetu Posts Elementor Pro

Parametr Query ID pojawił się w Elementor Pro od wersji 2.0. Został zaprojektowany specjalnie dla developerów: definiują Państwo ciąg identyfikatora, a następnie podpinają pod hook elementor/query/{ваш_id} swoją funkcję callback. Szczegółowa dokumentacja znajduje się na portalu deweloperskim Elementora.

Pozostałe ustawienia Query, Post Type, Taxonomies, Order By, proszę zostawić bez zmian. Są one nadal stosowane, a nasz filtr jest dodawany na wierzchu. Na przykład, jeśli w widżecie wybrano Post Type „Posts", wtyczka Related Posts By Taxonomy będzie szukać powiązanych wpisów tylko wśród postów bloga.

Fragment PHP: łączymy dwie wtyczki

Kod składa się z jednego wywołania add_action i krótkiej funkcji. Wywołuje ona metodę km_rpbt_get_related_posts() z wtyczki, pobiera tablicę ID trafnych wpisów i przekazuje ją do WP_Query przez parametr post__in.

Proszę dodać fragment do functions.php motywu potomnego lub przez wtyczkę Code Snippets:

1/**
2 * Подменяет запрос виджета Posts Elementor на связанные записи.
3 * Использует плагин Related Posts By Taxonomy.
4 *
5 * @param \WP_Query $query Объект запроса Elementor.
6 */
7add_action( 'elementor/query/related_posts_by_tax', 'sdstudio_related_posts' );
8function sdstudio_related_posts( $query ) {
9 global $post;
10
11 $related_ids = km_rpbt_get_related_posts(
12 $post->ID,
13 array( 'fields' => 'ids' )
14 );
15
16 if ( ! empty( $related_ids ) ) {
17 $query->set( 'post__in', $related_ids );
18 $query->set( 'orderby', 'post__in' );
19 }
20}

Analiza linijka po linijce:

  • elementor/query/related_posts_by_tax, hook, którego nazwa pokrywa się z Query ID w widżecie. Jeśli podali Państwo inny ID, proszę zastąpić ciąg znaków.
  • global $post daje dostęp do bieżącego wpisu, od którego zaczynamy.
  • km_rpbt_get_related_posts(), funkcja wtyczki, zwraca tablicę ID powiązanych wpisów. Parametr 'fields' => 'ids' przyspiesza zapytanie: wtyczka nie pobiera pełnych obiektów.
  • $query->set( 'post__in', $related_ids ) twardo ogranicza WP_Query tylko do znalezionych wpisów.
  • $query->set( 'orderby', 'post__in' ) zachowuje kolejność zwróconą przez wtyczkę, od najbardziej trafnego do najmniej.

Formalnie wykonywane są dwa zapytania: najpierw wtyczka szuka ID, potem Elementor zbiera na ich podstawie pełne obiekty. W praktyce przy 3-5 powiązanych wpisach obciążenie jest niezauważalne. Dla maksymalnej wydajności proszę włączyć we wtyczce opcję persistent cache, buforuje ona wyniki na zadany czas.

Dostrajanie wyświetlania

Powyższy fragment to wersja podstawowa. Dalej zapytanie jest dostosowywane do konkretnego zadania.

Ograniczenie liczby. Domyślnie wtyczka zwraca do 5 wpisów. Aby zmienić limit, proszę przekazać parametr posts_per_page:

1$related_ids = km_rpbt_get_related_posts(
2 $post->ID,
3 array(
4 'fields' => 'ids',
5 'posts_per_page' => 3,
6 )
7);

Wykluczenie bieżącego wpisu. Wtyczka robi to automatycznie, ale jeśli chcą się Państwo upewnić, proszę dodać $query->set( 'post__not_in', array( $post->ID ) ).

Ograniczenie datą. Pokazywać tylko wpisy z ostatnich 12 miesięcy:

1$related_ids = km_rpbt_get_related_posts(
2 $post->ID,
3 array(
4 'fields' => 'ids',
5 'limit_month' => 12,
6 )
7);

Zmiana szablonu wyświetlania. Wtyczka obsługuje niestandardowe szablony HTML przez filtr rpbt_template. Proszę umieścić plik related-posts-by-taxonomy.php w folderze motywu, a układ będzie całkowicie Państwa. Dokumentacja z przykładami znajduje się na stronie autora, jak na bezpłatną wtyczkę jest imponująco szczegółowa.

Tryb Ajax. Jeśli blok powiązanych wpisów znajduje się głęboko poniżej linii zagięcia ekranu, proszę włączyć leniwe ładowanie przez filtr rpbt_ajax_load, wtyczka pobierze wpisy asynchronicznie, nie wpływając na First Contentful Paint.

Wideo od zespołu Elementora pokazuje zaawansowane zarządzanie zapytaniami w działaniu, w tym dobór powiązanych wpisów i filtrowanie według daty:

⁉️🤔 Często zadawane pytania

Czy do tej metody potrzebny jest Elementor Pro?

Tak, niestandardowy filtr zapytań elementor/query/{$query_id} jest dostępny tylko w Elementor Pro. W wersji bezpłatnej nie ma widżetu Posts z polem Query ID.

Co zrobić, jeśli wtyczka nie znajduje powiązanych wpisów?

Proszę sprawdzić, czy wpisy mają wspólne taksonomie. Wtyczka szuka dopasowań we wszystkich publicznych taksonomiach przypisanych do typu wpisu. Jeśli wpisy są rozrzucone po kategoriach, które się nie pokrywają, powiązanych wpisów nie będzie. Proszę zdefiniować fallback: na przykład pokazać najnowsze wpisy z tej samej kategorii.

Czy można zastosować to podejście do niestandardowych typów wpisów?

Tak. Proszę wskazać żądany Post Type w ustawieniach Query widżetu Elementora, wtyczka Related Posts By Taxonomy automatycznie obsłuży taksonomie zarejestrowane dla tego typu. Metoda działa z portfolio, produktami WooCommerce i dowolnymi CPT.

Czy metoda działa z motywem blokowym (Full Site Editing)?

Widżet Posts Elementor Pro nie zależy od motywu, działa zarówno w motywach klasycznych, jak i blokowych. Kluczowe jest, aby szablon Single Post był zarządzany przez Theme Builder Elementora.

Czym ta metoda jest lepsza od wbudowanej opcji „Related" w Elementorze?

Wbudowana opcja po prostu filtruje wpisy według tych samych kategorii, bez uwzględniania liczby dopasowań i bez obsługi niestandardowych taksonomii. Related Posts By Taxonomy szereguje wpisy według wszystkich powiązanych taksonomii jednocześnie i zwraca najbardziej trafne, a nie tylko „z tej samej kategorii".

Czy warto zawracać sobie głowę ręcznym filtrem

Na niewielkich blogach z kilkunastoma kategoriami wbudowana opcja „Related" w Elementor Pro w zupełności wystarczy. Jednak gdy tylko pojawiają się niestandardowe taksonomie, kilka typów wpisów lub potrzeba precyzyjnego skonfigurowania logiki doboru, ręczny filtr przez elementor/query/{$query_id} staje się jedynym czystym rozwiązaniem. Bez kupowania dodatkowych add-onów.

Wtyczka Related Posts By Taxonomy zamyka zadanie za zero dolarów i nie dodaje zbędnego kodu na frontend. Konfiguracja zajmuje 10 minut, a rezultat, trafny blok „Podobne wpisy", zatrzymuje odwiedzającego na stronie dłużej niż przypadkowy zestaw najnowszych publikacji.

Proszę wypróbować na środowisku testowym: proszę postawić lokalny WordPress, zainstalować wtyczkę i Elementor Pro, dodać fragment i przekonać się, że metoda działa dokładnie tak, jak Państwo potrzebują.