WordPressクエリとRSSフィードで投稿とカスタム投稿タイプを組み合わせる方法

WordPressまたはElementorは、クエリで投稿とカスタム投稿タイプをマージまたは結合します

WordPressの最も驚くべき機能のXNUMXつは、ビルドする機能です。 カスタムポストタイプ。 この柔軟性は素晴らしいです…カスタム投稿タイプは、イベント、場所、FAQ、ポートフォリオアイテムなどの他のタイプの投稿を簡単に整理するためにビジネスに利用できるためです。 カスタム分類法、追加のメタデータフィールド、さらにはそれらを表示するためのカスタムテンプレートを作成できます。

私たちのサイトで Highbridge、カスタム投稿タイプが設定されています プロジェクト 会社のニュースを共有しているブログに加えて。 カスタム投稿タイプを使用することで、機能ページでプロジェクトを調整できます。 WordPressサービス、WordPress関連のプロジェクトが自動的に表示されます。 私は、サイトの訪問者が私たちが企業のために行っている一連の作業を見ることができるように、すべてのプロジェクトを文書化しようと懸命に取り組んでいます。

投稿とカスタム投稿タイプのマージ

私たちのホームページはすでにかなり広範であるため、ブログ投稿用のセクションと最新のプロジェクト用のセクションを作成する必要はありませんでした。 テンプレートビルダーを使用して、投稿とプロジェクトの両方を同じ出力にマージしたいのですが、 Elementor。 Elementorには、投稿とカスタム投稿タイプをマージまたは結合するためのインターフェースがありませんが、これを自分で行うのは非常に簡単です。

子テーマのfunctions.phpページ内で、XNUMXつを組み合わせる方法の例を次に示します。

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フィードを設定したいとも思いました。 これを行うには、ORステートメントを追加して含める必要がありました 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での投稿とカスタム投稿タイプのマージ

もうXNUMXつ注意してください… Elementor サイト内でクエリに名前を付けて保存できる非常に優れた機能があります。 この場合、news-projectsというクエリを作成しており、PostsQueryセクションの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投稿クエリ

開示:私は自分の Elementor この記事のアフィリエイトリンク。