parent_dropdown( int $default, int $parent, int $level, int|WP_Post $post = null )

Print out option HTML elements for the page parents drop-down.


Description Description


Parameters Parameters

$default

(int) (Optional) The default page ID to be pre-selected. Default 0.

$parent

(int) (Optional) The parent page ID. Default 0.

$level

(int) (Optional) Page depth level. Default 0.

$post

(int|WP_Post) (Optional) Post ID or WP_Post object.

Default value: null


Top ↑

Return Return

(null|false) Boolean False if page has no children, otherwise print out html elements.


Top ↑

Source Source

File: wp-admin/includes/template.php

875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
function parent_dropdown( $default = 0, $parent = 0, $level = 0, $post = null ) {
    global $wpdb;
    $post  = get_post( $post );
    $items = $wpdb->get_results( $wpdb->prepare( "SELECT ID, post_parent, post_title FROM $wpdb->posts WHERE post_parent = %d AND post_type = 'page' ORDER BY menu_order", $parent ) );
 
    if ( $items ) {
        foreach ( $items as $item ) {
            // A page cannot be its own parent.
            if ( $post && $post->ID && $item->ID == $post->ID ) {
                continue;
            }
 
            $pad      = str_repeat( ' ', $level * 3 );
            $selected = selected( $default, $item->ID, false );
 
            echo "\n\t<option class='level-$level' value='$item->ID' $selected>$pad " . esc_html( $item->post_title ) . '</option>';
            parent_dropdown( $default, $item->ID, $level + 1 );
        }
    } else {
        return false;
    }
}

Top ↑

Changelog Changelog

Changelog
Version Description
4.4.0 $post argument was added.
1.5.0 Introduced.


Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.