我有一个网站,有一些自定义帖子类型,每个都有自己的自定义数据、元框和;资源(样式表、图像、JavaScript)。
通常我会add_meta_boxes
注册我的所有元框和save_post
来处理数据,但在这种情况下,我想将每个帖子类型的所有功能包装在一个类&;抽象出实例化过程。
我的建议如下:;
function my_prefix_admin_load_post()
{
/* Grab current post type - can\'t use global $post_type since it isn\'t set yet! */
if ( isset( $_GET[\'post\'] ) )
$post_type = get_post_type( $_GET[\'post\'] );
elseif ( isset( $_REQUEST[\'post_type\'] ) )
$post_type = basename( $_REQUEST[\'post_type\'] );
else
$post_type = \'post\';
/* Construct classname & filename from post type. */
$post_type_file = dirname( __FILE__ ) . "/inc/class-post-$post_type.php";
$post_type_class = \'Class_Prefix_\' . ucfirst( $post_type );
if ( is_file( $post_type_file ) )
require $post_type_file;
if ( class_exists( $post_type_class ) )
new $post_type_class;
}
add_action( \'load-post.php\', \'my_prefix_admin_load_post\' );
add_action( \'lost-post-new.php\', \'my_prefix_admin_load_post\' );
这样,我可以随时为新的或现有的帖子类型添加增强功能(无需修改基本函数),也无需为不同的帖子类型编写代码。
However, 我忍不住觉得加载过程有点。。。恶心。I\'d really love to hear of suggestions, whether improvements or alternate approaches!