<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                以下是一些最佳做法來幫助組織您的代碼,使其與WordPress核心和其他WordPress插件一起工作良好。 ## 避免命名沖突 當您的插件與變量,函數或類作為另一個插件使用相同的名稱時,會發生命名沖突。 幸運的是,您可以通過使用以下方法避免命名沖突。 ## 程序 默認情況下,所有變量,函數和類都在全局命名空間中定義,這意味著插件可以覆蓋由另一個插件設置的變量,函數和類,反之亦然。 在函數或類中定義的變量不受此影響。 ## 前綴一切 所有變量,函數和類應以唯一標識符為前綴。 前綴可防止其他插件覆蓋變量,并意外調用您的函數和類。 它也會阻止你做同樣的事情。 ## 檢查現有的實現 PHP提供了許多函數來驗證變量,函數,類和常量的存在。 如果實體存在,所有這些將返回true。 - Variables: isset() (includes arrays, objects, etc.) - Functions: function_exists() - Classes: class_exists() - Constants: defined() ## 示例 ``` <?php //Create a function called "wporg_init" if it doesn't already exist if ( !function_exists( 'wporg_init' ) ) { function wporg_init() { register_setting( 'wporg_settings', 'wporg_option_foo' ); } } //Create a function called "wporg_get_foo" if it doesn't already exist if ( !function_exists( 'wporg_get_foo' ) ) { function wporg_get_foo() { return get_option( 'wporg_option_foo' ); } } ``` ## OOP 解決命名沖突問題的一個更簡單的方法是使用一個類來代替你的插件。 您仍然需要注意檢查您想要的類的名稱是否已經被使用,其余的將由PHP來處理。 ## 示例 ``` <?php if ( !class_exists( 'WPOrg_Plugin' ) ) { class WPOrg_Plugin { public static function init() { register_setting( 'wporg_settings', 'wporg_option_foo' ); } public static function get_foo() { return get_option( 'wporg_option_foo' ); } } WPOrg_Plugin::init(); WPOrg_Plugin::get_foo(); } ``` ## 文件組織 您的插件目錄的根級別應該包含你的plugin-name.php文件,并且可以選擇你的uninstall.php文件。 所有其他文件應盡可能地組織成子文件夾。 ## 文件夾結構 一個清晰的文件夾結構可以幫助您和其他在您的插件上工作的人保持類似的文件 以下是一個示例文件夾結構供參考: ``` /plugin-name plugin-name.php uninstall.php /languages /includes /admin /js /css /images /public /js /css /images ``` ## 插件架構 您為插件選擇的架構或代碼組織可能取決于您的插件的大小。 對于與WordPress核心,主題或其他插件進行有限交互的小型單用途插件,在復雜類工程中幾乎沒有什么好處; 除非你知道這個插件會在以后擴大很多。 對于具有大量代碼的大型插件,請注意課程。 獨立的樣式和腳本文件,甚至與構建相關的文件。 這將有助于代碼組織和長期維護的插件。 ## 有條件加載 將管理員代碼與公共代碼分開是有幫助的。 使用條件is_admin()。 例如: ``` <?php if ( is_admin() ) { // we are in admin mode require_once( dirname( __FILE__ ) . '/admin/plugin-name-admin.php' ); } ``` ## 建筑模式 雖然有許多可能的架構模式,但它們可以廣泛地分為三個變體: - 單個插件文件,包含功能 - 單個插件文件,包含類,實例化對象和可選功能 - 主要插件文件,然后一個或多個類文件 ## 架構模式解釋 上述代碼組織的更復雜的具體實現已經寫成教程和幻燈片: - 斜杠 - 單身人士,裝載機,動作,屏幕,處理程序 - MVC啟發式WordPress插件開發方法 - 在WordPress插件中實現MVC模式 ## 鍋爐起點 而不是從頭開始為每個你寫的新插件,你可能想從一個樣板開始。 使用樣板的一個優點是在您自己的插件之間保持一致。 如果您使用他們已經熟悉的樣板,其他人員也可以輕松地為其他人員提供代碼。 這些也作為不同但可比較的架構的進一步示例。 - WordPress插件Boilerplate:WordPress插件開發的基礎,旨在為構建您的插件提供清晰一致的指南。 - WordPress插件引導:使用Grunt,Compass,GIT和SVN開發WordPress插件的基本引導。 - WP骨架插件:骷髏插件,專注于單元測試和使用作曲家進行開發。 一般在GitHub上搜索WordPress插件當然,您可以采取這些和其他方面的不同方面來創建自己的自定義樣板。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看