自定义文章类型,包括:
1:单独的“文章内容模板”
2:单独的“文章列表模板”
3:单独的“控制后台”(文章分类、添加文章)
创建自定义文章和分类
在functions.php中添加以下代码(注册自定义文章,注册自定文章分类)
后台就有如上图所示的“该文章的单独后台,文章分类和添加文章”
//自定义文章类型和分类法 add_action('init', 'my_custom_init'); function my_custom_init() { //创建自定义文章类型(Media) $labels = array( //后台显示相关的参数 'name' => '图视频', 'all_items' => '所有图视频', 'add_new' => '添加图视频', 'add_new_item' => '添加新图视频', //描述标题 'edit_item' => '修改图视频', //描述标题 'not_found' => '暂未添加图视频', 'not_found_in_trash' => '没有图视频', 'menu_name' => '图视频' ); $args = array( 'labels' => $labels, 'public' => true, //一些显示相关的默认值 'show_ui' => true, 'show_in_menu' => true, 'rewrite' => true, 'query_var' => true, 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => true, 'menu_position' => 4, //菜单位置 'publicly_queryable' => true, '_builtin' => false, 'supports' => array('title','editor','author','thumbnail','excerpt','comments' ) ); register_post_type('media',$args); //本文章类型为product //创建自定义分类法(Cat_media) $labels = array( 'name' => '图视频分类', 'singular_name' => 'cat_media', 'search_items' => '搜索' , 'popular_items' => '热门' , 'all_items' => '所有' , 'parent_item' => null, 'parent_item_colon' => null, 'edit_item' => '编辑' , 'update_item' => '更新' , 'add_new_item' => '添加' , 'new_item_name' => '图视频分类', 'separate_items_with_commas' => '按逗号分开' , 'add_or_remove_items' => '添加或删除', 'choose_from_most_used' => '从经常使用的类型中选择', 'menu_name' => '图视频分类', ); register_taxonomy( 'cat_media', array('media'), array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'query_var' => true, 'rewrite' => true, //这个是干嘛的 ) ); }
创建该自定义文章的“模板文件”
自定义分类模板必须为如下命名:
taxonomy-自定义分类名.php
自定义文章模板必须为如下命名:
single-自定义文章名.php
自定义分类页的变动(相比默认category.php)
category.php 页,$cat 就是当前分类页的ID
自定义分类页获取$cat ,需要如下代码
<?php $cat_title = single_cat_title('', false); $cats = get_term_by( 'name', $cat_title, 'cat_media' ); $cat= $cats->term_id; ?>
导航代码
<a href="<?php echo get_category_link($cat); ?>" ><?php echo get_cat_name($cat); ?></a>
获取分类的子分类
<?php // 得到所有分类列表 $args=array( 'taxonomy'=>'cat_media', 'hide_empty' => 0, 'number'=>5 , //定义5个分类 'orderby'=>'ID', ); $categories = get_categories($args); foreach ($categories as $catt) { ?> <li class="<?php if($cat ==$catt->cat_ID ) echo"cur"; ?> id="sortCss1"> <a href="<?php echo get_category_link($catt->cat_ID) ?> " ><?php echo $catt->cat_name; ?></a> </li> <?php } ?>
获取指定分类的文章列表
<?php while( have_posts() ) { the_post(); $url = get_field("media_vedio",get_the_ID()); if(!$url){ $url = get_field("media_img",get_the_ID()); } ?> <li> <a class="video_info tc" target="_blank"; href="<?php echo $url; ?>" > <img src="<?php echo get_field("media_img",get_the_ID()); ?>" width="200" height="130"> <p><?php the_title();?></p> </a> </li> <?php } ?>