Impack WordPress – 面向對象方式開發(fā)WordPress主題

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

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

    注冊元框/分類法字段

    1.一種元框一個類

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

    2.在 add_meta_boxes 鉤子執(zhí)行

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

    3.注冊字段:創(chuàng)建有 addField/editField/saveField 方法的類后執(zhí)行 add 方法

    SeoField::add('category');

    注冊類型/分類法

    1.類型配置文件 post.php 填注冊參數(shù)

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

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

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

    3.init 鉤子內執(zhí)行

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

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

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

    異常處理規(guī)則

    • 簡單錯誤不終止程序運行
    • 非調試模式下不輸出任何簡單錯誤
    • 調試模式下顯示所有錯誤和詳細信息
    • 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.拋出異常,參數(shù)支持 WP_Error、Enum

    throw new CustomException('ERROR');

    數(shù)據(jù)模型:Post/Comment/Term/User

    使用時不需要 new 實例,調用靜態(tài)方法 where

    • where:返回單例,自動添加基礎參數(shù),支持傳參
    • limit/order/in/notin/search/meta/metas:添加查詢參數(shù)
    • param/merge:鍵值對添加參數(shù)/合并參數(shù)
    • edit:編輯 add/update 常用的參數(shù)
    • get:讀取數(shù)據(jù),參數(shù)默認為 null 返回自定義對象數(shù)組
    • add:新增數(shù)據(jù)
    • update:更新指定 ID 的數(shù)據(jù)
    • delete:靜態(tài)方法,刪除數(shù)據(jù)
    • Post 方法:parent/post/tax/taxs
    • Term 方法:parent/noChild
    • User 方法:user/role/hasPosts/adminStyle
    • Comment 方法:parent/comment/status/post/author/subtree
    • 新增術語時未提供 slug 會使用名稱代替,中文將轉成拼音
    • setSingle:參數(shù)支持類名/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();
    
    // 刪除數(shù)據(jù)
    $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

    工作區(qū)目錄建議

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

    給TA贊賞
    共{{data.count}}人
    人已贊賞
    ??
    Npcink上的部份代碼及教程來源于互聯(lián)網(wǎng),僅供網(wǎng)友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
    無意侵害您的權益,請發(fā)送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
    ?
    購物車
    優(yōu)惠劵
    搜索
    主站蜘蛛池模板: 日本精品高清一区二区2021| 狠狠做深爱婷婷久久综合一区| 美女视频一区三区网站在线观看 | 亚洲视频免费一区| 亚洲日韩AV一区二区三区四区 | AA区一区二区三无码精片| 国产成人精品日本亚洲专一区| 亚洲视频在线一区二区| 九九无码人妻一区二区三区| 色欲精品国产一区二区三区AV| 色视频综合无码一区二区三区| 亚洲日韩国产一区二区三区在线| 久久国产视频一区| 国产精品va无码一区二区| 精品免费久久久久国产一区| 一区二区三区视频在线播放| 夜色阁亚洲一区二区三区| 国产精品一区二区四区| 色天使亚洲综合一区二区| 成人免费视频一区| 日本无卡码免费一区二区三区| 亚洲AV一区二区三区四区| 国产精品自拍一区| 无码中文字幕一区二区三区| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 乱子伦一区二区三区| 国产精品区一区二区三在线播放| 中文字幕一区二区三区在线播放 | 国产大秀视频一区二区三区 | 亚洲一区二区三区91| 亚洲国产激情在线一区| 国产对白精品刺激一区二区| 亚无码乱人伦一区二区| 成人精品一区二区三区电影 | 久久精品国产AV一区二区三区| 久久久无码一区二区三区| 97久久精品无码一区二区天美 | 色久综合网精品一区二区| 亚洲视频一区在线观看| 国产一区二区在线| 一区二区三区四区视频在线|