• C:Wordpress自定义文章类型(图视频)


    自定义文章类型,包括:

    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
      }
    ?>    
  • 相关阅读:
    [公告]Google个性化主页可以正常阅读博客园的RSS了
    致歉
    [公告]网站程序已经升级到ASP.NET 2.0
    GTF: Great Teacher Friedman
    Node.js : exports と module.exports の違い
    拨开历史的迷雾从篡夺者战争到五王之战的政经原因
    javascript模板系统 ejs v10
    window.name + postMessage实现不用代理页的跨域通信
    node.js Domain 時代のエラー処理のコーディングパターン
    鲜为人知的get,set操作符
  • 原文地址:https://www.cnblogs.com/roluce/p/6049849.html
Copyright © 2020-2023  润新知