WordPress Custom Post Types in den Feed holen

Der Inhalt von Custom Post Types kann ebenso relevant sein und damit im Main-Feed gewollt sein, ein kleiner Schnipsel kann dies erledigen.

WordPress erstellt die Feed-Inhalte automatisch (optional in der Parameterübergabe der Funktion zu bestimmen) auch bei Verwendung der Custom Post Types; die sich recht stark in der Nutzung befinden.

Dabei werden aber die Inhalt nicht in den Standard-Feed geholt, sondern ein eigenständiger Feed entsteht. Um die Inhalte der CPT in den Haupt-Feed von WordPress zu holen, muss via Hook nur der CPT bekannt gegeben werden; am besten direkt im Plugin, welches sich um die CPT kümmert. Der folgenden kleine Schnipsel erledigt dies beispielsweise.
Dabei werden in den Parametern nur einige Werte übergeben, die dafür sorgen, dass nur Artikel integriert werden, die öffentlich sind und die Recht von post haben; dies Parameter kann man natürlich anpassen; siehe Codex zur Funktion get_post_types().


// add custom post type to wp post-feed
add_action( 'request', 'fb_add_to_feed' );

// add to post-feed
function fb_add_to_feed ( $request ) {
	
	if ( isset( $request['feed'] ) && ! isset( $request['post_type'] ) ) {
		$request['post_type'] = get_post_types ( $args = array (
			'public'          => TRUE,
			'capability_type' => 'post'
		) );
	}
	
	return $request;
}

Damit werden dem Standard-Feed zu post die Daten übergeben; der Query dafür wird quasi verändert. Wenn es aber verschiedene CPTs gibt und man diese im Feed definieren will, dann muss der CPT übergeben werden, dazu Beispiel zwei ansehen.
In diesem Schnipsel werden in einem Array die CPT definiert und damit an den Feed übergeben.


// add custom post type to wp post-feed
add_action( 'request', 'fb_add_to_feed' );

// add to feed
function fb_add_to_feed ( $request ) {
	
	if ( isset( $request['feed'] ) && ! isset( $request['post_type'] ) ) {
		$request['post_type'] = array( 
			'post', 'stippet', 'archive', 'movies'
		);
	}
	
	return $request;
}

Der obige Schnipsel ändert den Query dahingehend, dass die Post Typen definiert werden, die im Feed sein sollen, während im ersten beispiel alles zum Feed addiert wird.

Kommentare sind geschlossen.