wordpress默认这样一种文章类型===文章,我们可以对齐进行二次开发添加属于自己的文章类型,如作品、案例等
通过 register_post_type
方法注册文章类型 更多参照
基本文章类型
新键插件文件键入如下代码
<?php
/*
Plugin Name:Article_TYPE
Description:自定义文章类型
Version:1.0.0
Author:tzh
*/
date_default_timezone_set('Asia/Shanghai');
class my_book{
public function __construct()
{
add_action('init',array($this,'create_my_book'));
}
public function create_my_book(){
//注册文章类型
register_post_type('my_book',
array(
'labels'=>array(
'name'=>'我的作品',
'add_new'=>'添加作品',
'add_new_item'=>'添加一个新作品',
'edit'=>'编辑',
'edit_item'=>'编辑作品',
'new_item'=>'新作品',
'view'=>'查看',
'view_item'=>'查看作品',
'search_items'=>'搜索作品',
'not_found'=>'没有任何作品',
'not_found_in_trash'=>'没有任何被删除的作品'
),
'public'=>true,//可见性
'menu_position'=>15 ,//菜单位置("文章"之后)
'supports'=>array('title','editor','comments','thumbnail','custom-fields'),//显示哪些自定义字段
'taxonomies'=>array('')//自定义分类
)
);
}
}
new my_book();
在控制台激活插件 ,此时一个基本的文章类型完成
添加元数据框 在钩子函数添加
//添加元数据框
add_action('add_meta_boxes',array($this,'add_meta_boxes_my_book'));
add_meta_boxes_my_book
//添加元数据框
public function add_meta_boxes_my_book(){
add_meta_box(
'my_book_admin_meta_box',//ID
'作品链接', //标题
array($this,'display_my_book_meta_box'), //处理函数
'my_book', //显示在哪个文章类型 当前文章类型
'side'//显示位置
);
}
display_my_book_meta_box
public function display_my_book_meta_box($post){
$my_book_url = get_post_meta($post->ID,'my_book_url',true);
echo '<input type="text" id="my_book_url" name="my_book_url" value="'.$my_book_url.'">';
}
设置保存选项功能
...
//添加元数据框
add_action('add_meta_boxes',array($this,'add_meta_boxes_my_book'));
//保存元数据
add_action('save_post',array($this,'save_my_book_fields'),10,2);
public function save_my_book_fields($post_id,$post){
//触发时 自动获取到$post_id 和 $post
if($post->post_type == 'my_book'){
//判断当前是否为my_book文章类型
$my_book_url = $_POST['my_book_url'];
//更新当前文章
update_post_meta($post_id,'my_book_url',$my_book_url);
}
}
设置文章类型内容模板
设置文章内容模板就简单多了,只需要在主题目录新键文件 single-{post-type}.php
写好布局即可 如single-my_book.php