Это кажется немного сложнее, чем нужно, почему бы просто не добавить их вручную в поле, если это будут те 3 типа записей или, может быть, просто изменить:
$post_types = get_post_types();
до
$post_types = [
'post' => 'post',
'page' => 'page',
'people' => 'people'
];
Вся функция get_post_types () делает это для получения имен типов записей?
Хорошо, возможное решение, которое может работать для вас, в зависимости от того, насколько динамичным вы хотите, чтобы это было.
Если вы возвращаете объекты из функции get_post_types ()
$all_post_types = get_post_types($args, 'objects');
И дайте вашим типам постов описание, чтобы различать их, например. include_in_select, затем вы можете перебрать те, которые соответствуют этому описанию, и поместить их в массив, а затем использовать этот массив в вашей исходной функции.
$post_types_no_junk = [];
foreach($all_post_types as $post_type){
if($post_type->description === 'include_in_select'){
$post_types_no_junk[] = $post_type;
}
}
Не идеально, но может быть достаточно для достижения того, что вы ищете.