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

15 окт. 2017 г., 23:29:56
Просмотры: 13.5K
Голосов: 4

Мне нужен код, чтобы определить, есть ли у записи дочерние страницы или нет.

К сожалению, я пока не нашел подходящего решения, поэтому любая идея будет полезна.

Что я хочу достичь:

if has child 

// какие-то действия 

else: 
// другие действия

Сейчас я использую:

$args = array(
'post_parent' => get_the_ID(), // ID текущей записи
);
$children = get_children( $args );
// Проверяем, есть ли у записи дочерние элементы
if ( ! empty($children) ) {
// У записи есть хотя бы одна дочерняя страница

echo 'да';
} else {
// У этой записи нет дочерних страниц

echo 'нет';
}

Но любая запись с миниатюрой возвращает "да", а если использовать post_type=post в аргументах, все записи возвращают "нет", даже если у них есть дочерние страницы.

1
Комментарии

попробуйте эту функцию https://codex.wordpress.org/Function_Reference/get_children

mmm mmm
16 окт. 2017 г. 00:31:55
Все ответы на вопрос 1
0
14

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

$args = array(
    'post_parent' => get_the_ID(), // ID текущего поста
);
$children = get_children( $args );
// Проверяем, есть ли у поста дочерние записи
if ( ! empty($children) ) {
    // У поста есть хотя бы одна дочерняя запись
} else {
    // У этого поста нет дочерних записей
}
16 окт. 2017 г. 00:53:09