Получить массив идентификаторов дочерних сообщений, WordPress 3.0, PHP - PullRequest
3 голосов
/ 20 февраля 2011

Хорошо, вот тебе один ...

В пользовательском шаблоне я использую этот код для извлечения и отображения списка дочерних страниц / сообщений

$args = array(
                    'depth'        => 1,
                    'show_date'    => '',
                    'date_format'  =>     get_option('date_format'),
                    'child_of'     => $post->ID,
                    'exclude'      => '',
                    'include'      => '',
                    'title_li'     => '',
                    'echo'         => 1,
                    'authors'      => '',
                    'sort_column'  => 'menu_order, post_title',
                    'link_before'  => '',
                    'link_after'   => '',
                    'walker' => '' );

                    wp_list_pages( $args );

Это прекрасно работает, мне также интересно, как я могу получить доступ / создать array идентификаторов дочерних постов. Моя цель - получить доступ к некоторым custom fields метаданным через функцию get_post_meta() каждого дочернего сообщения, используя его идентификатор.

Спасибо, ребята.

Ответы [ 3 ]

6 голосов
/ 26 февраля 2011

Полагаю, с этим я не совсем понял, так как я впервые не получил ответа от SO.

Мне удалось найти нужную мне информацию, и она будет размещена здесь для всех, кто просматривает этот же запрос.

ОК - Чтобы получить все дочерние идентификаторы ..

$pages = get_pages('child_of=X');
    foreach($pages as $child) {

    // Now you have an object full of Children ID's that you can use for whatever
    // E.G 
    echo $child->ID . "<br />";
}
3 голосов
/ 11 апреля 2012

Если вы хотите создать массив почтовых идентификаторов для последующего использования, вы можете сделать это:

$pageids = array();
$pages = get_pages('child_of=X');
    foreach($pages as $page){
     $pageids[] = $page->ID;
}

И у вас есть чистый массив только идентификаторов страниц.

0 голосов
/ 13 ноября 2013
$children = get_posts('post_parent=SLUG_OF_PARENT_POST&post_status=publish');
foreach($children as $child)
{
echo '<br/>ID:'.$child->ID;
}

вы можете использовать другие атрибуты (например, $child->post_content) ... если вам нужно определить post_type, добавьте также этот аргумент: &post_type=POST_TYPE_NAME

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...