1. Wird das Menü automatisch von WordPress erstellt? Dann erscheinen veröffentlichte Seiten dort automatisch. Man könnte ein Menü selbst anlegen oder aber auch wahlweise diese Tochter-Seiten auf "Entwurf" setzen und im Code [FONT=courier new]'post_status' => 'publish',[/FONT] durch [FONT=courier new]'post_status' => 'draft',[/FONT] ersetzen. Dann aber beim Bearbeiten darauf achten, dass man "Speichern" klickt und nicht "Publizieren".
2. Verstehe ich noch nicht ganz, bitte genauer beschreiben.
3. Wenn kein Child-Theme benutzt wird, dann ja. Wahlweise kann man den Shortcode auch als Plugin implementieren, dann muss kein Code in die functions.php eingefügt werden (und der bestehende Code muss vor Plugin Upload entfernt werden).
Hier als Plugin, den ganzen Inhalt (hier mit dem [FONT=courier new]<?php[/FONT] am Anfang) in eine Datei z.B. [FONT=courier new]b3317133_children.php[/FONT] kopieren und diese in [FONT=courier new]../wp-content/plugins/[/FONT] hochladen, danach über das Plugins Menü aktivieren.
<?php
/*
Plugin Name: Page children
Description: Provides [b3317133_children] shortcode
Version: 0.1
Author: b3317133
*/
function b3317133_children_init() {
function b3317133_children_func( $atts, $content = null ) {
$output = '';
$navi = array();
global $post;
$args = array(
'posts_per_page' => -1,
'post_type' => $post->post_type,
'post_status' => 'publish', // 'draft' fuer Entwurf Status
'post_parent' => $post->ID,
'orderby' => 'title',
'order' => 'ASC'
);
$posts = get_posts( $args );
foreach( $posts as $post ) {
setup_postdata( $post );
// for navigation
$navi[] = get_the_title();
// use buffer to get content including the_content filters & wptexturize
ob_start();
?>
<hr />
<h1 id="<?php echo esc_attr( get_the_title() ); ?>"><?php the_title(); ?></h1>
<?php the_content(); ?>
<?php
$output .= ob_get_clean();
}
wp_reset_postdata();
// build navigation
array_walk( $navi, function( &$n ) {
$n = '<a href="#' . esc_attr( $n ) . '">' . $n . '</a>';
});
// add navigation
$output = '<p>' . implode( ' ', $navi ) . '</p>' . $output;
return $output;
}
add_shortcode( 'b3317133_children', 'b3317133_children_func' );
}
add_action('init', 'b3317133_children_init');
Alles anzeigen