Impack WordPress – 面向對象方式開發WordPress主題

    利于面向對象方式開發 WordPress 主題、插件的 PHP 公共代碼包。

    利于面向對象方式開發 WordPress 主題、插件的 PHP 公共代碼包。

    注冊元框/分類法字段

    1.一種元框一個類

    use Impack\WP\Utils\Metabox;
    class Custombox extends Metabox
    {
        function render($post)
        {
            echo '自定義內容';
        }
        function save($postid)
        {
            // 保存數據
        }
    }

    2.在 add_meta_boxes 鉤子執行

    Custombox::add('boxid', '標題');

    3.注冊字段:創建有 addField/editField/saveField 方法的類后執行 add 方法

    SeoField::add('category');

    注冊類型/分類法

    1.類型配置文件 post.php 填注冊參數

    return [
        'news' => [
            // 'class' => News::class,
            'name' => 'news',
            'label' => '新聞',
            'taxonomy' => ['tag'], //分類法配置的鍵名
            'metabox' => [
                //key=元框ID,val=類名和add方法的參數數組
                'boxid' => [Custombox::class, '標題'],
            ],
        ],
    ];

    2.分類法配置文件 taxonomy.php

    return [
        'tag' => [
            'field' => [SeoField::class], //字段類名數組
        ],
    ];

    3.init 鉤子內執行

    (new Impack\WP\Register\Registrar())->post();

    4.配置項有 metabox/taxonomy/field 時,自動注冊這些功能

    5.配置項有 class 時,自動以單例形式綁定到容器,數組鍵用作綁定的 ID

    異常處理規則

    • 簡單錯誤不終止程序運行
    • 非調試模式下不輸出任何簡單錯誤
    • 調試模式下顯示所有錯誤和詳細信息
    • JSON 請求返回 JSON 格式的信息

    使用自定義異常響應 AJAX 請求

    1.定義異常消息

    use Impack\Support\Enum;
    class CustomEnum extends Enum
    {
        const ERROR = [0, '錯誤消息'];
    }

    2.定義異常類

    class CustomException extends Exception{
        use \Impack\WP\Exceptions\Render;
        protected $enum = CustomEnum::class
    }

    3.拋出異常,參數支持 WP_Error、Enum

    throw new CustomException('ERROR');

    數據模型:Post/Comment/Term/User

    使用時不需要 new 實例,調用靜態方法 where

    • where:返回單例,自動添加基礎參數,支持傳參
    • limit/order/in/notin/search/meta/metas:添加查詢參數
    • param/merge:鍵值對添加參數/合并參數
    • edit:編輯 add/update 常用的參數
    • get:讀取數據,參數默認為 null 返回自定義對象數組
    • add:新增數據
    • update:更新指定 ID 的數據
    • delete:靜態方法,刪除數據
    • Post 方法:parent/post/tax/taxs
    • Term 方法:parent/noChild
    • User 方法:user/role/hasPosts/adminStyle
    • Comment 方法:parent/comment/status/post/author/subtree
    • 新增術語時未提供 slug 會使用名稱代替,中文將轉成拼音
    • setSingle:參數支持類名/init,自定義 get 返回的對象。
    $post = \Impack\WP\Query\Post::where();
    $term = \Impack\WP\Query\Term::where();
    $user = \Impack\WP\Query\User::where();
    $comment = \Impack\WP\Query\Comment::where();
    
    // 查詢文章
    $post->limit(10)->get();
    
    // 刪除數據
    $term::delete(1);
    
    // 新增文章
    $post->edit('標題', '內容')->add();
    
    // 更新文章
    $post->edit('修改標題')->update(1);
    
    // 新增評論
    $comment->edit('新評論')->add();
    
    // 更新評論
    $comment->edit('修改評論')->update(1);
    
    // 新增術語
    $term->edit('名稱')->add();
    
    // 更新術語
    $term->parent(1)->update(2);
    
    // 新增用戶
    $user->edit('login', 'pass', 'name')->add();
    
    // 更新用戶
    $user->edit(null, null, '新名字')->update(1);

    WordPress 內置的全局對象參考

    • wp、wp_object_cache、wp_embed
    • wpdb、wp_query、wp_rewrite
    • wp_user、wp_roles、wp_widget_factory
    • wp_locale、wp_locale_switcher

    工作區目錄建議

    • src:所有類存放的目錄
    • config:配置信息。放置所有硬編碼參數以便修改
    • assets:js/css/fonts/images 等靜態資源目錄
    • view:模板文件目錄
    下載權限
    查看
    • 免費下載
      評論并刷新后下載
      登錄后下載
    • {{attr.name}}:
    您當前的等級為
    登錄后免費下載登錄 小黑屋反思中,不準下載! 評論后刷新頁面下載評論 支付以后下載 請先登錄 您今天的下載次數(次)用完了,請明天再來 支付積分以后下載立即支付 支付以后下載立即支付 您當前的用戶組不允許下載升級會員
    您已獲得下載權限 您可以每天下載資源次,今日剩余

    給TA贊賞
    共{{data.count}}人
    人已贊賞
    ??
    Npcink上的部份代碼及教程來源于互聯網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
    無意侵害您的權益,請發送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
    ?
    購物車
    優惠劵
    搜索
    主站蜘蛛池模板: 国产精品一区不卡| 日韩国产免费一区二区三区| 极品人妻少妇一区二区三区| 午夜视频一区二区| 福利视频一区二区牛牛| 波多野结衣一区二区| 亚洲AV综合色一区二区三区 | 亚洲国产一区在线| 日本在线电影一区二区三区 | 亚洲综合av一区二区三区| 乱色熟女综合一区二区三区| 日韩一区二区视频在线观看| 国产一区二区免费| 中文字幕一区二区三区有限公司 | 精品乱人伦一区二区| 91视频国产一区| 国产精品va无码一区二区| 福利视频一区二区牛牛| 亚洲av成人一区二区三区在线播放 | 日韩免费无码视频一区二区三区| 国产天堂一区二区综合| 日韩美女视频一区| 国产精品久久久久一区二区三区| 人妻久久久一区二区三区| 日本不卡一区二区三区| 99精品高清视频一区二区| 国产成人综合精品一区| 无码日韩人妻AV一区免费l| 无码精品人妻一区二区三区影院| 激情久久av一区av二区av三区| 精品无码国产一区二区三区51安 | 亚洲色偷偷偷网站色偷一区| 国产成人一区二区三区在线观看 | 无码AV中文一区二区三区| 久久99热狠狠色精品一区| 亚洲国产精品一区二区成人片国内| 国产一区二区电影在线观看| 亚洲av综合av一区| 日韩爆乳一区二区无码| 精品视频一区二区三区四区| 一区二区和激情视频|