wake-up-neo.net

Wie kann man die Seiten einschränken, die für die Auswahl der übergeordneten Seite im Menü des Seitenattributs angezeigt werden?

Ich habe eine Seite mit vielen Seiten. Ich möchte wissen, ob es eine Methode gibt, mit der nur die Seiten angezeigt werden, die im Menü zur Auswahl der übergeordneten Seite angezeigt werden sollen.

Viele von ihnen sind untergeordnete Seiten, und ich brauche sie nicht, um im Menü der übergeordneten Seite zu sein.

Weiß jemand, wie es geht?

3
nagato saitou

Diese Meta-Box wird mit page_attributes_meta_box gedruckt und das Auswahlfeld für die Auswahl des übergeordneten Elements wird mit diesem Code generiert:

if ( is_post_type_hierarchical( $post->post_type ) ) :
    $dropdown_args = array(
        'post_type'        => $post->post_type,
        'exclude_tree'     => $post->ID,
        'selected'         => $post->post_parent,
        'name'             => 'parent_id',
        'show_option_none' => __('(no parent)'),
        'sort_column'      => 'menu_order, post_title',
        'echo'             => 0,
    );

    $dropdown_args = apply_filters( 'page_attributes_dropdown_pages_args', $dropdown_args, $post );
    $pages = wp_dropdown_pages( $dropdown_args );
    if ( ! empty($pages) ) :
?>
<p class="post-attributes-label-wrapper"><label class="post-attributes-label" for="parent_id"><?php _e( 'Parent' ); ?></label></p>
<?php echo $pages; ?>

Wie Sie sehen, wird dort die Funktion wp_dropdown_pages verwendet, und Sie können den page_attributes_dropdown_pages_args-Filter verwenden, um die Argumente für den Aufruf zu ändern.

Nehmen wir also an, Sie möchten nur Top-Level-Seiten darin haben:

function wpse_modify_parent_dropdown_args($args, $post) {
    $args['depth'] = 1;
    return $args;
}
add_filter( 'page_attributes_dropdown_pages_args', 'wpse_modify_parent_dropdown_args', 10, 2 );
2