Intereting Posts

Как получить список всех недавно опубликованных дочерних страниц?

Можете ли вы мне помочь, как я могу отобразить список <li> недавно опубликованных дочерних страниц. Я смотрел на Google, как использовать его отображение с помощью wp_list_pages(); но не могу найти там. Я хочу показать его как в «Последние тренировки» или что-то в этом роде.

Это даст вам данные для всех дочерних страниц:

 $args = array( 'post_type' => 'page', 'post_parent__not_in' => array(0), 'no_found_rows' => true, ); $child = new WP_Query($args); var_dump(wp_list_pluck($child->posts,'post_title')); // debugging only 

Затем передайте идентификаторы в wp_list_pages() :

 $args = array( 'post_type' => 'page', 'post_parent__not_in' => array(0), 'no_found_rows' => true, ); $child = new WP_Query($args); $ids = wp_list_pluck($child->posts,'ID'); $ids = implode($ids,','); $args = array( 'include' => $ids, ); wp_list_pages($args); 

Или, даже чище:

 $args = array( 'post_type' => 'page', 'post_parent__not_in' => array(0), 'no_found_rows' => true, 'fields' => 'ids' ); $child = new WP_Query($args); $args = array( 'include' => $child->posts, ); wp_list_pages($args); 

Обратите внимание, что проверка этого кода отсутствует.

Я посмотрю, смогу ли я найти чистый способ сделать это с помощью фильтров. Проверьте позднее.

Попробуйте использовать следующий код для создания дочерних страниц.

 <?php // Set up the objects needed $my_wp_query = new WP_Query(); // Query all pages $all_wp_pages = $my_wp_query->query(array('post_type' => 'page')); $page_ids = get_all_page_ids(); $page_children = get_page_children( $page_ids, $all_wp_pages ); echo '<li>' . print_r( $page_children, true ) . '</li>'; ?> 

Если вы действительно хотите получить список детей с wp_list_pages() , для этого вам следует использовать параметр child_of . Но я предполагаю, что вы действительно хотите ограничить этот список до определенного временного интервала, поскольку этот wp_list_pages() , который использует get_pages() , на самом деле не очень хорошо оборудован.

Поэтому я думаю, что вы должны использовать get_posts() – или даже WP_Query напрямую, где вы можете использовать « WP_Query: параметры даты» . Недостаток здесь – в качестве общей функции wp_list_posts() не существует – это то, что вам нужно написать код для генерации списка. Ответ @ s_ha_dum показывает, как вы можете совместить это, делая недостаток почти исчезающим – требуется немного больше кода.