wordpress同时创建多个自定义文章类型的方法

wordpress创建自定义文章类型需要设置很多个参数,如果仅仅是创建一个自定义文章类型对代码的简洁性不会有什么影响,但是如果要创建多个自定义文章类型的时候,就要添加重复的参数代码,不仅麻烦而且不易管理。为了代码的简洁性和易于管理,可以把注册自定义文章类型的代码写成函数,需要创建时直接调用函数即可。

函数代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// register post type label args 
function cutom_post_type_label_args($name, $slugName){
    return $labels = array(
        'name' => $name,
        'singular_name' => $slugName,
        'add_new' => '新增',
        'add_new_item' => '新增 '.$name,
        'edit_item' => '编辑',
        'new_item' => '新加',
        'all_items' => '所有'.$name,
        'view_item' => '浏览'.$name,
        'search_items' => '搜索'.$name,
        'not_found' =>  '没有发现'.$name,
        'not_found_in_trash' => '回收站没有'.$name, 
        'parent_item_colon' => '',
        'menu_name' => $name
    );
}
 
// register post type args 
function custom_post_type_args($name, $slugName, $postType='post', $public=true, $queryable=true, $show_ui=true, $show_menu=true, $query_var=true, $has_archive = true, $hierarchical = false, $menu_position = null, $supports = array(), $menu_icon=null){
    return $args = array(
        'labels' => cutom_post_type_label_args($name,$slugName),
        'public' => $public,
        'publicly_queryable' => $queryable,
        'show_ui' => $show_ui, 
        'show_in_menu' => $show_menu, 
        'query_var' => $query_var,
        'rewrite' => array( 'slug' => strtolower($slugName)),
        'capability_type' => $postType,
        'has_archive' => $has_archive, 
        'hierarchical' => $hierarchical,
        'menu_position' => $menu_position,
        'supports' => $supports,
        'menu_icon' => $menu_icon
    );
}
然后通过以下代码快速创建自定义文章类型:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function add_custom_post_type() {
    register_post_type( 'slides_type', 
        custom_post_type_args(
            '产品',//$name
            'products',//$slugName
            'post',//$postType
            false,//$public
            false,//$queryable
            true,//$show_ui
            true,//$show_menu
            true,//$query_var
            false,//$has_archive
            false,//$hierarchical
            8,//$menu_position
            array('title'),//$supports
            'dashicons-images-alt2' //$menu_icon
        )
    );
    register_post_type( 'piclink_type', 
        custom_post_type_args(
            '视频',//$name
            'video',//$slugName
            'post',//$postType
            false,//$public
            false,//$queryable
            true,//$show_ui
            true,//$show_menu
            true,//$query_var
            false,//$has_archive
            false,//$hierarchical
            8,//$menu_position
            array('title'),//$supports
            'dashicons-images-alt2' //$menu_icon
        )
    );
}
add_action( 'init', 'add_custom_post_type' );

注:每一个register_post_type表示创建一个自定义文章类型,注意修改类型名称。

参考网站:wzbs.org

发表留言