Как комбинировать сообщения и пользовательские типы сообщений в запросах WordPress и RSS-канале

WordPress или Elementor объединяют или объединяют сообщения и пользовательские типы сообщений в запросе

Одной из самых удивительных особенностей WordPress является возможность создавать ТАМОЖЕННЫЙ ПОСТ Виды. Эта гибкость просто фантастическая… так как пользовательские типы сообщений могут быть использованы в бизнесе для организации других типов сообщений, таких как события, места, часто задаваемые вопросы, элементы портфолио. Вы можете создавать собственные таксономии, дополнительные поля метаданных и даже собственные шаблоны для их отображения.

На нашем сайте в Highbridge, у нас есть настраиваемый тип записи для проектов в дополнение к нашему блогу, где мы делимся новостями компании. Имея настраиваемый тип сообщений, мы можем согласовывать проекты на наших страницах возможностей… поэтому, если вы просмотрите наш Сервисы WordPress, автоматически отобразятся проекты, над которыми мы работали и которые связаны с WordPress. Я усердно работаю, пытаясь задокументировать все наши проекты, чтобы посетители нашего сайта могли увидеть весь спектр работы, которую мы делаем для компаний.

Объединение постов и пользовательских типов постов

Наша домашняя страница уже довольно обширна, поэтому я не хотел создавать раздел для наших сообщений в блоге И раздел для наших последних проектов. Я хочу объединить как сообщения, так и проекты в один и тот же результат, используя наш конструктор шаблонов, Факир. У Elementor нет интерфейса для объединения или объединения сообщений и пользовательских типов сообщений, но это довольно просто сделать самостоятельно!

На странице functions.php вашей дочерней темы приведен пример того, как их можно объединить:

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' );

Фильтр pre_get_posts позволяет вам обновить запрос и настроить его так, чтобы он получал как ваш пост, так и проект пользовательский тип поста. Конечно, когда вы пишете свой код, вам нужно будет обновить пользовательские типы сообщений в соответствии с вашими фактическими соглашениями об именах.

Объединение сообщений и пользовательских типов сообщений в вашей ленте

У меня также есть сайт, который автоматически публикуется в социальных сетях через свою ленту… поэтому я также хотел использовать тот же запрос для установки RSS-канала. Для этого мне просто нужно было добавить оператор ИЛИ и включить 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' );

Объединение сообщений и пользовательских типов сообщений в Elementor

Еще одно замечание… Факир имеет действительно замечательную функцию, с помощью которой вы можете назвать и сохранить запрос на своем сайте. В этом случае я создаю запрос под названием news-projects, а затем могу вызвать его из пользовательского интерфейса Elementor в разделе «Запрос сообщений».

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

Вот как это выглядит в пользовательском интерфейсе Elementor:

elementor публикует запрос

Раскрытие: я использую свой Факир партнерская ссылка в этой статье.