前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WordPress二次开发之自定义文章类型

WordPress二次开发之自定义文章类型

作者头像
切图仔
发布2022-09-14 15:36:53
5880
发布2022-09-14 15:36:53
举报
文章被收录于专栏:生如夏花绚烂

wordpress默认这样一种文章类型===文章,我们可以对齐进行二次开发添加属于自己的文章类型,如作品、案例等

通过 register_post_type 方法注册文章类型 更多参照

基本文章类型

新键插件文件键入如下代码

代码语言:javascript
复制
<?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();

在控制台激活插件 ,此时一个基本的文章类型完成

添加元数据框 在钩子函数添加

代码语言:javascript
复制
 //添加元数据框
 add_action('add_meta_boxes',array($this,'add_meta_boxes_my_book'));

add_meta_boxes_my_book

代码语言:javascript
复制
//添加元数据框
 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

代码语言:javascript
复制
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.'">';
}

设置保存选项功能

代码语言:javascript
复制
...
//添加元数据框
add_action('add_meta_boxes',array($this,'add_meta_boxes_my_book'));
//保存元数据
add_action('save_post',array($this,'save_my_book_fields'),10,2);
代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档