Para poner los custom post types privados por defecto en Wordpress, podemos añadir un pequeño código al archivo functions.php del tema (siempre recomendable en el tema hijo).
Muy importante: Previamente hemos de tener en cuenta que no deberá haber nada en la papelera, ya que si no es así, no nos permitirá enviar los post a la papelera

// Forzar custom post type a ser privado
function exi_forzar_tipo_privado($post)
{
if ($post['post_type'] == 'nombre_custom_post_type') {
if ($post['post_status'] != 'trash') $post['post_status'] = 'private';
}
return $post;
}
add_filter('wp_insert_post_data', 'exi_forzar_tipo_privado');

Donde debéis reemplazar ‘nombre_custom_post_type’ por el nombre de vuestro campo personalizado.
Con este pequeño código, todos los nuevos post que añadamos por defecto serán privados.

Si necesitaramos más de uno cambiariamos la linea del condicional ‘if’:

if ($post['post_type'] == 'nombre_custom_post_type' or 'nombre_custom_post_type2')