WordPress bietet standardmäßig die Möglichkeit Beiträge in einem sogenannten Feed abzurufen. Das ist hilfreich, wenn man seine Webseite automatisiert publizieren möchte, z.B. in Link-Aggregatoren oder Suchmaschinen. Nutzt man in WordPress allerdings Seiten statt Beiträge (Pages statt Posts im Englischen), dann steht diese Funktion nich zur Verfügung. Es gibt Plugins mit denen man das Problem beheben kann. Die machen aber meist noch mehr und je nachdem was man möchte sind sie auch kostenpflichtig. Für mich hat sich daher diese Lösung durchgesetzt:
/ ** * CHANGES TS **
*
* Add RSS Feed for Pages
*/
add_action( 'pre_get_posts', 't5_pages_in_feed' );
/**
* Set post type to 'page' if it was requested.
*
* @param object $query
* @return void
*/
function t5_pages_in_feed( &$query ) {
if ( isset ( $_GET['post_type'] ) && $_GET['post_type'] === 'page' && is_feed() ) {
$query->set( 'post_type', 'page' );
$post_ids = array(22,75,87);
$query->set('post__not_in', $post_ids);
}
}
Das habe ich am Ende der functions.php angefügt (Vor Änderungen an dieser Datei sollte immer ein Backup gemacht werden). Damit kannst Du auch „Seiten“ im Feed zeigen. Bei der Variablen $post_ids musst Du noch die IDs der Seiten eintragen, die Du nicht im Feed willst. Bei mir ist das Impressum, Datenschutz und Kontakt (22, 75 und 87)
Die ID bekommst Du, wenn Du mit der Maus im WP Admin in der Seiten-Liste über den Titel fährst und den Link anschaust. Also z.B. ist der Link für meine Datenschutzseite so: https://abc.de/wp-admin/post.php?post=87&action=edit
Wenn ich die nicht haben will, muss also die 87 in die Liste.
Den Feed erreichst Du dann über https://abc.de/feed/?post_type=page
Der Parameter hinter dem Fragezeichen kümmert sich darum dass der Feed die Seiten (also Pages) enthält. Die beiden Feeds sind nun kongruent. Der normale Feed (ohne Parameter) enthält weiterhin die Beiträge (Posts), der andere die Seiten. Möchte man einen Feed für alles, dann wird das etwas aufwändiger. Je nach technischer Expertise bietet sich in einem solchen Fall dann vielleicht doch ein Plugin an.