Описание get_ancestors
— Filter
Хук get_ancestors позволяет изменить массив предков для иерархических типов записей в WordPress. Он срабатывает при получении предков определенной записи и позволяет модифицировать их список перед его использованием
Примеры использования
Пример добавления дополнительного предка к массиву предков:
add_filter('get_ancestors', function($ancestors, $post_id) {
$ancestors[] = 123; // Добавляем ID 123 как предка
return $ancestors;
});
В этом примере мы добавляем запись с ID 123 в массив предков текущей записи
Пример фильтрации предков для удаления определенного предка:
add_filter('get_ancestors', function($ancestors, $post_id) {
$ancestors = array_diff($ancestors, [456]); // Удаляем ID 456 из списка предков
return $ancestors;
});
Здесь мы удаляем запись с ID 456 из массива предков
Пример изменения порядка предков:
add_filter('get_ancestors', function($ancestors, $post_id) {
sort($ancestors); // Сортируем предков по возрастанию
return $ancestors;
});
В этом примере мы сортируем массив предков по возрастанию их идентификаторов
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить список предков для иерархических типов записей, таких как страницы или кастомные посты
– Производительность
Этот хук не должен вызывать значительных проблем с производительностью, так как изменения касаются лишь массива идентификаторов
– Предупреждения
Убедитесь, что изменения не нарушают логику иерархии контента на сайте
Альтернативы
Тип: function
Эта функция возвращает предков записи, но не предоставляет возможность изменять их через хуки
Используйте get_post_ancestors, если вам просто нужно получить предков без необходимости их модификации