Jak łączyć posty i niestandardowe typy postów w zapytaniach WordPress i kanale RSS?

WordPress lub Elementor Łącz lub łącz posty i niestandardowe typy postów w zapytaniu

Jedną z najbardziej niesamowitych funkcji WordPressa jest możliwość budowania Rodzaje custom post. Ta elastyczność jest fantastyczna… ponieważ niestandardowe typy wpisów można wykorzystać w firmie do łatwego organizowania innych rodzajów wpisów, takich jak wydarzenia, lokalizacje, często zadawane pytania, elementy portfolio. Możesz tworzyć niestandardowe taksonomie, dodatkowe pola metadanych, a nawet niestandardowe szablony do ich wyświetlania.

Na naszej stronie pod adresem Highbridge, mamy skonfigurowany niestandardowy typ posta projektowanie oprócz naszego bloga, na którym dzielimy się wiadomościami o firmie. Dzięki niestandardowemu typowi posta jesteśmy w stanie dopasować projekty na naszych stronach dotyczących możliwości… więc jeśli przeglądasz nasze Usługi WordPress, automatycznie zostaną wyświetlone projekty, nad którymi pracowaliśmy, związane z WordPressem. Ciężko pracuję, próbując udokumentować wszystkie nasze projekty, aby odwiedzający naszą witrynę mogli zobaczyć zakres pracy, którą wykonujemy dla firm.

Scalanie postów i niestandardowych typów postów

Nasza strona główna jest już dość obszerna, więc nie chciałem tworzyć sekcji na nasze posty na blogu ORAZ sekcji na nasze najnowsze projekty. Chcę połączyć posty i projekty w to samo wyjście za pomocą naszego kreatora szablonów, Elementor. Elementor nie ma interfejsu do łączenia lub łączenia postów i niestandardowych typów postów, ale możesz to zrobić samodzielnie!

Na stronie functions.php motywu potomnego, oto przykład, jak połączyć te dwa:

function add_query_news_projects( $query ) {
	if ( is_home() && $query->is_main_query() )
		$query->set( 'post_type', array( 'post', 'project' ) );
	return $query;
}
add_filter( 'pre_get_posts', 'add_query_news_projects' );

Filtr pre_get_posts umożliwia aktualizację zapytania i ustawienie go tak, aby pobierał zarówno Twój post, jak i projekt niestandardowy typ postu. Oczywiście, kiedy piszesz swój kod, musisz zaktualizować niestandardowe typy postów do aktualnej konwencji nazewnictwa.

Scalanie postów i niestandardowych typów postów w Twoim kanale

Mam też witrynę automatycznie publikującą w mediach społecznościowych za pośrednictwem swojego kanału… więc chciałem użyć tego samego zapytania do ustawienia kanału RSS. Aby to zrobić, musiałem po prostu dodać wyrażenie OR i dołączyć is_feed.

function add_query_news_projects( $query ) {
	if ( is_home() && $query->is_main_query() || is_feed() )
		$query->set( 'post_type', array( 'post', 'project' ) );
	return $query;
}
add_filter( 'pre_get_posts', 'add_query_news_projects' );

Scalanie postów i niestandardowych typów postów w Elementor

Jeszcze jedna uwaga… Elementor ma naprawdę świetną funkcję, dzięki której możesz nazwać i zapisać zapytanie w swojej witrynie. W tym przypadku buduję zapytanie o nazwie news-projects, a następnie mogę je wywołać z interfejsu użytkownika Elementora w sekcji Posts Query.

function my_query_news_projects( $query ) {
	$query->set( 'post_type', array( 'post', 'project' ) );
}
add_action( 'elementor/query/news-projects', 'my_query_news_projects' );

Oto jak to wygląda w interfejsie użytkownika Elementora:

zapytanie o posty elementor

Ujawnienie: używam mojego Elementor link partnerski w tym artykule.