【Day 29】Custom post type,让你海量的文章也能分类起来

当你制作了海量文章,你应该会发现一个问题,就是这些文章很难简单地找出来,极为不方便於你,进行打理。你或许会希望像平时电脑的档案那样,能够为你每一项项目,开启一个档案,这样麻烦的问题,就消失不见了。但你看完整个wordpress的版面,却还是找不到任何解决方案。不过其实wordpress是有提供的,只是它需要我们花费上一点功夫,才能把它弄出来,没错它就是我们这篇的主题Custom post type了。

Custom post type 的基本制作

正如你所看到,在wordpress里,这是没法子设定的。所以这次,我们需要直接到後台,加入编码。我们到function的档案里,加入这功能。像之前那样,我们先在里面,加入一个新的funciton,并且在function里,把它登记好并在下方,在之前加入css档案那样,启动它,编码参考:

function post_type() 
{     
register_post_type('drawing',$args); 
}
add_action ('init','post_type');

-名称不一定要post_type的

-drawing为这posttype的名称,$arg则是他的称号(variable变数),方便你之後利用array,修改post type样式

-init,为wordpress的一个设定,这功能让你的设定可以先於主题的header下载下来。

接下来我们可以开始调整post type的设定,以下为一些常用设定的介绍:

-hierachical => 来设定这分类,是给post还是page的(true:page ,false:post)

-public => 是否公开的 (true:允许,false:不允许)

-has_archive => 和 hierachical分别不大,主要要来设定是否允许post的(true:允许,false:不允许)

-supports => 要来设定,这里允许用家来修改什麽的,最常用的有:comments, title, editor, thumbnail

-menu_icon => 修改在栏位会出现的图标,可以在wordpress dashicons里找到,找到合适时只需要复制名称就可以

-labels => 用作修改custom post type 在栏位会显示出来的名称,原设会为post/page,常用设定:
-name 栏位显示的名字
-singular_name 在增新文章时,它会显示增新【你加入的名字】,例如输入drawing的,就会是增新 drawing这样

    注意name和singular_name需要放到array里的
    

编码用法参考:

 $args = array(
    'labels'=> array(
     'name'  => 'drawing',
     'singular_name' => 'drawing' , 

    ),
    'hierachical'=> true,
    'public' => true,
    'has_archive' =>true,
    'menu_icon' => 'dashicons-welcome-write-blog',
    'supports' => array('title','editor','thumbnail'),

  );

加入独立的分类/tag

跟上方的类近,我们同样需要透过加入一个新function,来设定一个新分类,不过这回有部份地方是不同的:

  • register_taxonomy => 这里比较特别的是,我们除了加入名称和变数外,我们亦要加入array,内里放的则是,你 希望这分类会在那个post_type里出现

  • hierachical => 这次在这里影响到的,不再是post/page,而是category/tag(true:category,false: tag)

  • labels和public在这里都是有的,功能也是一样

编码用法参考:

function post_type_taxonomy()
{
  $args = array(
     
     'labels'=> array(
     'name'  => 'time',
     'singular_name' => 'time' , 

    ),
    'hierachical'=> false,
    'public' => true,
  );
  register_taxonomy('time',array('drawing'),$args);
}
add_action('init','post_type_taxonomy');

为您的post_type加入独立页面版面

设定完成後,随意增新新的文章,然後点击标题下方的连结,你会看到,出来的画面会沿用之前对於post版面的设定,然後也许会出现一些错误,这是源於我们在这里并没有任何tag,却要他显示tag,这部分我们一会在创建新版面时一并一拼解决。假若你们页面也没法显示,可以到设定--永久连结里,限制为文章名称,然後在底部选择储存设定。

我们先来学怎样加入新的版面吧,我们先创建一个新文件,设为single-(register了的post-type名称).php,例如我这里就会是:single-drawing.php。

完成後,点击连结後就会进入一个空白页面,这就代表成功了,之後的部分就像之前那样制作就可以了。

错误解决

在之前我们是使用foreach,让它每一个tag都能够正常显示,但当时并没有加入,if让他只有当有tag时,这个loop才会运作,所以我们加入if($tags):

<?php $posttags= get_the_tags();if($tags): foreach($posttags as $tag):?>

接着我们在底部加入end if:

<?php endforeach;endif;?>

这样就完成了。


<<:  DAY29: 什麽是 Webhook?

>>:  [Day 29]TensorFlow矩阵运算

PHP 一些特性

Closure 类、匿名函数 Closure class用来表示匿名函数 (anonymous fu...

单晶片实习问答,请求大神回复

7 段显示器显示1->2->3->4->5->6->7->...

Day 5 Flutter的常用指令与HelloWorld执行

Flutter常用指令 flutter create app:建立一个flutter专案。 flut...

Day 26:开始来学资料系结:事件系结(三)今天的 $event 有型别呢!

昨天我们有稍微提到,使用 $event 的 property 时,要注意大小写的问题,虽然只是轻轻带...

(Vue)创造组件官方教学实作

首先创造元件 Vue.component('MyName',{ template:'<li&g...