An das erste Kind des benutzerdefinierten Posttyps redirect (ohne Vorlage)

Ich muss auf die erste untergeordnete Seite in einem hierarchischen benutzerdefinierten Post-Typ redirect. Für die Liebe von mir habe ich hoch und niedrig durchforstet, aber alle Lösungen scheinen mit dem Anwenden einer Vorlage auf das Elternteil zu beginnen, die die Weiterleitung anstößt.

Ich muss die Schablone umgehen und zum ersten Kind mit einem netten, sauberen Bit des Codes in functions.php redirect. Kann jemand helfen?

Vielen Dank!

Solutions Collecting From Web of "An das erste Kind des benutzerdefinierten Posttyps redirect (ohne Vorlage)"

Ich bin mir nicht sicher, wie Sie “erstes Kind” definieren – alphabetisch, nach der höchsten oder niedrigsten ID usw., aber wenn Sie das gewünschte Kind über WP_Query , dann können Sie single_template filtern, um die Umleitung basierend darauf single_template , ob Der angeforderte Post hat einen Elternteil oder nicht:

 function wpa87313_redirect_post_type( $template ){ // if this isn't the right post type, return if( ! is_singular( 'my_post_type' ) ) return $template; // if this post has a parent, return global $wp_query; if( 0 != $wp_query->post->post_parent ) return $template; // query for the child of this parent // here's where you need to sort out what a first child is $child = new WP_Query( array( 'post_parent' => $wp_query->post->ID, 'post_type' => 'my_post_type', 'posts_per_page' => 1, // orderby? // order? ) ); // if a child was found, redirect to it if( ! empty( $child->posts ) ){ wp_redirect( get_permalink( $child->post->ID ) ); exit; } return $template; } add_filter( 'single_template', 'wpa87313_redirect_post_type', 10, 1 );