user
  • 0
Гуру

Проверить первую и последнюю дочерние страницы wordpress

  • 0

У меня есть индексная/родительская страница и несколько подстраниц/страниц в WordPress.

Как проверить, какая подстраница является первой дочерней, а какая последней?

Большое спасибо!

Share
  1. Для этого вы можете использовать функцию get_pages() :

    global $post;
    $current_page_id = $post->ID;
    //Sort by creation time:
    
    $args = array(
        'child_of' => $current_page_id,
        'sort_order' => 'ASC',
        'sort_column' => 'post_date',
        'hierarchical' => 1,
        'number' => 1,
    );
    $first_child = get_pages($args);
    
    //moddify args to get the last child:
    
    $args['sort_order'] = 'DESC';
    $last_child = get_pages($args);
    
    //when loopting thrugh your pages you can check if 
    //they match and do what you want based on that:
    ...
    if($current_page->ID = $first_child->ID){
    //this is the first child page
    }elseif($current_page->ID = $first_child->ID){
    //this is the last child page
    }
    ...
    

    Теперь, поскольку в вашем вопросе не указано, в каком порядке вы их извлекаете, я добавлю следующее: если вы хотите проверить порядок, основанный на чем-то другом, а не на дате создания, просто измените sort_column параметр, который принимает любое поле в таблице wp_post базу данных WordPress, вот несколько примеров из кодекса:

    *  'post_title' - Sort Pages alphabetically (by title) - default
    * 'menu_order' - Sort Pages by Page Order. N.B. Note the difference between Page Order and Page ID. The Page ID is a unique number assigned by WordPress to every post or page. The Page Order can be set by the user in the Write>Pages administrative panel.
    * 'post_date' - Sort by creation time.
    * 'post_modified' - Sort by time last modified.
    * 'ID' - Sort by numeric Page ID.
    * 'post_author' - Sort by the Page author's numeric ID.
    * 'post_name' - Sort alphabetically by Post slug. 
    

    Надеюсь это поможет.

    • 0
  2. Разобраться:

    global $post;
    $pagekids = get_pages("child_of=$post->post_parent&sort_order=ASC");
    $firstchild = $pagekids[0];
    
    $pagekids = get_pages("child_of=$post->post_parent&sort_order=DESC");
    $lastchild = $pagekids[0];
    

    Большое спасибо Байинтернет.

    • 0

Оставить ответ

You must login to add an answer.