是的,有很多插件使用CPT作为数据保持器(例如,高级自定义字段)。不过,其他人会小心地使用这个类WP_List_Table 符合默认接口(例如backwup)。
When registering a post type, 我们可以选择控制其可见性和“可查询性”:public
, show_ui
, publicly_queryable
和其他人。ACF是这样注册的:
register_post_type(\'acf\', array(
\'labels\' => $labels,
\'public\' => false,
\'show_ui\' => true,
\'_builtin\' => false,
\'capability_type\' => \'page\',
\'hierarchical\' => true,
\'rewrite\' => false,
\'query_var\' => "acf",
\'supports\' => array(
\'title\',
),
\'show_in_menu\' => false,
));
所以,是的,创建一个只出现在后端的CPT,然后在系统的其他部分使用它是完全可以的。例如,导航菜单(
wp-admin/nav-menus.php
) 是CPT,注册方式如下:
register_post_type( \'nav_menu_item\', array(
\'labels\' => $labels,
\'public\' => false,
\'_builtin\' => true, /* internal use only. don\'t use this when registering your own post type. */
\'hierarchical\' => false,
\'rewrite\' => false,
\'delete_with_user\' => false,
\'query_var\' => false,
) );
您的示例(用作短代码)类似于在帖子或页面中使用的内容:
[my_shortcode id="77"]
它所做的是:
get ID为77的CPT中包含的任何信息,并将其显示出来。
忘记functions.php
对于这种东西。研究我们的档案plugin-development 因为有大量的入门材料,简单而复杂。