给你的wordpress添加自定义类型文章、分类和标签

2017年12月08日 13:47:57665次阅读

wordpress默认只有一个文章,一般情况可以通过分类来区别文章和使用不同的模板,但是为了更方便管理,一般情况我们是添加自定义类型的文章。下面直接上代码:

//新增自定义文章类型:作品
function ws_work() {
    register_post_type( 'work', //这里的work可以自行修改,主要体现在URL里面
        array(
            'labels' => array(
                'name' => '作品',
                'singular_name' => '所有作品',
                'add_new' => '添加作品',
                'add_new_item' => '添加新作品',
                'edit' => '编辑',
                'edit_item' => '编辑作品',
                'new_item' => '新作品',
                'view' => '查看作品',
                'view_item' => '查看作品',
                'search_items' => '搜索作品',
                'not_found' => '没有找到相关作品',
                'not_found_in_trash' => '没有作品评论',
                'parent' => '作品评论',
            ),
            'exclude_from_search'=>false,
            'public' => true,
            'menu_position' => 6,
            'supports' => array( 'title', 'editor','comments', 'custom-fields','thumbnail','excerpt'), //为自定义文章添加标题,编辑器,评论,自定义字段,特色图像,摘要功能
            'taxonomies' => array( '' ), //分类法,我们是单独定义
            'has_archive' => true,
            'taxonomies'=> array('post_tag'), //没有这一句是没有标签功能的
        )
    );
}
add_action( 'init', 'ws_work' ); //挂载函数

//为商品类自定义类型增加分类功能
add_action( 'init', 'ws_works', 0 ); 
function ws_works() {
    register_taxonomy(
        'works', //这个分类法
        'work', //这个是自定义文章类型,默认文章是post,其他是你自己定义的
        array(
            'labels' => array(
                'name' => '作品分类',
                'add_new_item' => '添加作品',
                'new_item_name' => "新作品分类"
            ),
            'show_ui' => true,
            'show_tagcloud' => true,
            'hierarchical' => true,
        )
    );
}

有了上面的内容,你的博客后台就会出现新的文章类型了。如下图:

就是这么简单。当然还有其他问题。比如说自定义文章类型的伪静态怎么操作?我们将在以后慢慢讲解。

发表评论
发布评论时请遵守国家相关法律法规!
  1. #34nixonli 发表于
    我想请问一下已经自定义文章类型了也添加了标签,但是文章类型为我自定义的类型在标签页不会显示我自定义类型的文章. 这个需要怎么做才能让我的标签页可以显示此标签在自定义类型的文章?谢谢!
    • #35qingtian 发表于
      把自定义文章加入正常文档流,类似下面的操作。 如果其他页面不需要可以只判断标签页面 function ashuwp_posts_per_page($query){ //首页或者搜索页的主循环 if ( (is_home() || is_search()) && $query->is_main_query() ) //$query->set( ‘post_type’, array( ‘product’ ) ); //只显示product $query->set( ‘post_type’, array( ‘post’, ‘product’ ) ); //主循环中显示post和product return $query; } add_action(‘pre_get_posts’,’ashuwp_posts_per_page’);
站内通知
博客新改版,内容正在建设中,如果有产品需求请联系:248758228@qq.com
主题商店

WordPress自学网|Mr.Long博客会员登录