实际上,如果你仔细看一下法典,你可以看到这个设置\'post_type\'
参数到any
默认情况下,将从查询中删除某些帖子类型:https://codex.wordpress.org/Class_Reference/WP_Query#Type_Parameters
“any”-检索除“exclude\\u from\\u search”设置为true的修订和类型之外的任何类型。
因此,您可以注册一个post类型并将其设置为非公共类型,正如您可能知道的那样,这里有很多参数,因此您可以使用这些参数:
$args = array(
\'public\' => false,
\'show_ui\' => false,
\'show_in_menu\' => false,
\'show_in_admin_bar\' => false,
\'show_in_nav_menus\' => false,
\'show_in_rest\' => false,
\'can_export\' => false,
\'has_archive\' => false,
\'exclude_from_search\' => true, // this one is important!
\'publicly_queryable\' => false,
);
register_post_type( \'hidden_post_type\', $args );
考虑到这一点,我要说的是,大多数时候使用CPT是正确的方式,许多流行的插件都在这样做,使用非公开的帖子。
您总是可以寻找一种极端的解决方案,比如在数据库中为插件构建额外的表,但在我看来,这不是WordPress的方式。通过使用CPT,您可以获得许多现成的东西,例如缓存,您不必担心将来的兼容性。