亚洲精品电影网站_国产精品午夜一区二区三区_超级碰碰久久_都市激情久久久久久久久久久_香蕉久久精品_伊人久久视频_亚洲精品一区二区三区蜜桃下载 _亚洲一区二区三_国产精品久久综合av爱欲tv_国产日韩亚洲欧美

HAScom 與你分享

WordPress 6.5 中引入插件依賴關系

WordPress 通過插件和Hooks?API的可擴展性是其最有益的功能之一。有許多插件純粹作為其他插件的擴展,在其之上構建功能。插件依賴項功能旨在使安裝和激活插件(依賴項)及其依賴的插件(依賴項)的過程一致且簡單。

WordPress 通過插件和Hooks?API的可擴展性是其最有益的功能之一。有許多插件純粹作為其他插件的擴展,在其之上構建功能。插件依賴項功能旨在使安裝和激活插件(依賴項)及其依賴的插件(依賴項)的過程一致且簡單。

新插件

Requires Plugins引入了新的標頭。

它必須包含其依賴項的以逗號分隔的WordPress.org格式的 slugs 列表,例如my-plugin(my-plugin/my-plugin.php不支持)。它不支持插件中的逗號。

如何使用新標頭

/**
* Plugin Name: Express Payment Gateway Checkout for Shop
* Requires Plugins: shop, payment-gateway
?*/

要求

依賴插件

對依賴插件有以下要求:

  • 在安裝其依賴項之前無法安裝。
  • 在激活其依賴項之前無法激活。

依賴插件

對依賴插件有以下要求:

  • 當其依賴項被激活時無法停用。
  • 安裝其依賴項后無法刪除。

如果不再滿足依賴性會發生什么?

如果通過FTP或部署刪除依賴項插件,管理的插件屏幕上將顯示一條通知,通知用戶缺少需要安裝和/或激活的依賴項。此外,不再滿足依賴項的每個依賴項將在其插件行中顯示錯誤通知。

如果插件更新有新的依賴項會發生什么?

目前將允許更新,并且依賴項將保持活動狀態。管理的插件屏幕上將顯示一條通知,通知用戶缺少需要安裝和/或激活的依賴項。

如果存在循環依賴會發生什么?

循環依賴是指兩個或多個插件在其需求中形成循環。

例如:插件A需要插件B需要插件C需要插件A

插件依賴包括循環依賴檢測,并且會顯示通知以告知用戶需求無效的插件。插件無法激活,用戶應聯系插件作者,以便在適當的情況下打破此循環引用。

還需要防御性編碼嗎?

是的。插件依賴項使用戶可以更輕松地安裝和激活所需的插件,并在不滿足這些插件時通知他們。這意味著插件作者可以在未安裝或激活其依賴項時安全地刪除檢查和通知。

但是,目前,插件依賴項不包括對依賴項的最小或最大版本支持,也不考慮插件的加載順序。因此,插件作者應該繼續使用function|class|interface_exists()和版本檢查,他們的插件依賴于在給定時間可用的特定功能。

插件依賴關系會影響WP-CLI嗎?

插件依賴項不會阻止通過 WP-CLI 安裝沒有依賴項的依賴插件,因為假設使用 WP-CLI 的用戶是了解其依賴項堆棧的高級用戶。但是,為了避免丟失依賴項而被忽視,在依賴項被激活之前,無法使用 WP-CLI 激活依賴項插件。

這會影響wp plugin activate --all,如果依賴項按字母順序出現早于其依賴項,則可能需要運行多次。我們計劃與 WP-CLI 維護者合作,通過探索 WordPress Core、WP-CLI 或兩者(如果合適)中的加載順序來減輕這一負擔。

局限性

托管在 WordPress.org 上的插件

WordPress.org 上托管的依賴插件只能聲明也在 WordPress.org 上托管的依賴項。如果您托管在 WordPress.org 上的插件需要未托管在那里的插件,建議您Requires Plugins此時不要在插件中使用標頭。

插件未托管在 WordPress.org 上

未托管在 WordPress.org 上的依賴插件可以聲明依賴項,無論托管在 WordPress.org 還是其他地方。但是,UI不會提供第三方依賴項的安裝鏈接,這些依賴項必須繼續由用戶手動安裝。

必須使用插件作為依賴項

WordPress Core 目前不正式支持必須使用的插件作為依賴項。討論將在#60504中繼續,我們將在做出有關未來可能支持的決定后發布更多信息。

需要插件的主題

插件依賴項目前不支持需要插件的主題,主題作者應繼續使用他們現有的檢查和消息傳遞。

過濾器

wp_plugin_dependencies_slug引入過濾器掛鉤是為了允許更改依賴項。例如,如果依賴插件聲明my-plugin為依賴項,并且存在高級版本my-plugin,則高級版本可以過濾 slug 并將其轉換my-plugin-pro為插件依賴項可以檢測到的插件。

  • 參數
    string $slug——子彈。

用法示例

add_filter( 'wp_plugin_dependencies_slug', 'convert_myplugin_to_myplugin_pro' );

function convert_myplugin_to_myplugin_pro( $slug ) {
if ( 'my-plugin' === $slug ) {
$slug = 'my-plugin-pro';
}
return $slug;
}

用戶界面的變化

插件 > 已安裝的插件

進行了以下更改:

  • 依賴插件行現在包含其依賴項列表,鏈接到相應的插件模式以安裝和激活依賴項。
  • 依賴插件行現在包含其依賴項的列表。
  • 如果插件具有未安裝且未激活的依賴項,則“激活”鏈接將被禁用。
  • 如果插件具有處于活動狀態的依賴項,則“停用”“刪除”鏈接將被禁用。
  • 依賴插件的批量操作被禁用。

改進前

沒有列出依賴項或依賴項。

改進后

列出依賴項和依賴項,并根據需求的狀態啟用/禁用操作。

插件 > 添加新插件

進行了以下更改:

  • 如果插件具有未滿足的依賴項,則其插件卡和插件信息模式中的“立即安裝”“激活”按鈕將被禁用。
  • 依賴插件卡現在包含一個列出其依賴項的通知,其中包含指向依賴項信息模式的“更多詳細信息”鏈接,其中包含基于當前安裝狀態的“立即安裝”或“激活”按鈕。
  • 現在,單擊按鈕后插件信息模式會持續存在,并且現在可以直接在模式內通過 AJAX 執行基于模式的插件安裝和激活。

改進前

盡管未滿足依賴關系,但未列出依賴關系的插件卡和活動的“立即安裝”按鈕。

改進后

列出了依賴項的插件卡,其中包含用于安裝和激活每個依賴項的模式鏈接,并且在依賴項未滿足時禁用“立即安裝”按鈕。

使用體驗

由于插件 > 添加新屏幕上現在使用統一的 AJAX 方法,插件的激活將不再自動重定向到插件 > 已安裝的插件屏幕,或插件作者實現的入門體驗。這允許用戶在不離開當前上下文的情況下安裝和激活多個插件。

具有入門體驗的插件通常會包含檢查,例如,如果使用 WP-CLI 安裝并激活其插件,則當用戶進入插件的設置屏幕之一時,將觸發入門體驗。此類實現將不受插件依賴關系的影響,從插件 > 安裝的插件屏幕激活鏈接激活也是如此。

WP_Plugin_Dependencies CLass

WP_Plugin_Dependencies引入了一個新類別。

可以使用以下公共 API 方法:

static ::initialize()
通過從 Requires Plugins 標頭讀取依賴項并獲取依賴項的插件 API 數據來初始化插件依賴項。每次執行僅運行一次。

static ::has_dependents( $plugin_file )
確定插件是否有依賴于它的插件。

  • 參數
    string $plugin_file– 插件文件,相對于插件目錄。
  • 返回值
    bool插件是否有依賴它的插件。

static ::has_dependencies( $plugin_file )
確定插件是否具有插件依賴項。

  • 參數
    string $plugin_file– 插件文件,相對于插件目錄。
  • 返回值
    bool?插件是否有插件依賴。

static ::has_active_dependents( $plugin_file )
確定插件是否有活動的依賴項。

  • 參數
    string $plugin_file– 插件文件,相對于插件目錄。
  • 返回值
    bool插件是否有活動的依賴項。

static ::get_dependents( $slug )
獲取需要依賴的插件的文件路徑。

  • 參數
    string $slug– 依賴項的 slug。
  • 返回值
    array相對于插件目錄的依賴插件文件路徑的數組。

static ::get_dependencies( $plugin_file )
獲取依賴項所需的插件的slugs。

  • 參數
    string $plugin_file– 依賴插件的文件路徑,相對于插件目錄。
  • 返回值
    array依賴插件 slugs 的數組。

static ::get_dependent_filepath( $slug )
獲取依賴插件的文件路徑。

  • 參數
    string $slug– 依賴插件的 slug。
  • 返回值
    string|false依賴插件的文件路徑,相對于插件目錄,如果插件沒有依賴項,則返回 false。

static ::get_dependency_filepath( $slug )
獲取依賴項相對于插件目錄的文件路徑。

  • 參數
    string $slug– 依賴項的 slug。
  • 返回值
    string|false如果已安裝,則為相對于插件目錄的依賴項的文件路徑,否則為 false。

static ::has_unmet_dependencies( $plugin_file )
確定插件是否有未滿足的依賴項。

  • 參數
    string $plugin_file– 插件的文件路徑,相對于插件目錄。
  • 返回值
    bool插件是否有未滿足的依賴關系。

static ::has_circular_dependency( $plugin_file )
確定插件是否具有循環依賴。

  • 參數
    string $plugin_file– 插件的文件路徑,相對于插件目錄。
  • 返回值
    bool插件是否存在循環依賴。

static ::get_dependent_names( $plugin_file )
獲取需要該插件的插件的名稱。

  • 參數
    string $plugin_file– 插件的文件路徑,相對于插件目錄。
  • 返回值
    array依賴名稱數組。

static ::get_dependency_names( $plugin_file )
獲取插件所需的插件名稱。

  • 參數
    string $plugin_file– 依賴插件的文件路徑,相對于插件目錄。
  • 返回值
    array依賴項名稱數組。

static ::get_dependency_data( $slug )
返回依賴項的 API 數據。

  • 參數
    string $slug– 依賴項的 slug。
  • 返回值
    array|false成功時為依賴項的 API 數據,否則為 false。
亚洲精品电影网站_国产精品午夜一区二区三区_超级碰碰久久_都市激情久久久久久久久久久_香蕉久久精品_伊人久久视频_亚洲精品一区二区三区蜜桃下载 _亚洲一区二区三_国产精品久久综合av爱欲tv_国产日韩亚洲欧美
欧美自拍资源在线| 欧美日韩在线播放| 91麻豆精品国产91久久久资源速度| 精品成人免费观看| 一区二区三区四区在线播放| 精品无人码麻豆乱码1区2区| 91久久国产综合久久蜜月精品| 日韩欧美三级电影| 日韩亚洲欧美成人一区| ...av二区三区久久精品| 免费成人你懂的| 51国偷自产一区二区三区| 亚洲欧美日韩国产yyy| 日韩免费一区二区| 亚洲精品国产一区二区三区四区在线| 久久精品99久久久| 国产精品日韩一区二区免费视频| 色综合天天天天做夜夜夜夜做| 亚洲精品一区二区精华| 亚洲一区二区三区四区的| 懂色av中文字幕一区二区三区| 欧美日韩最好看的视频| 欧美一二区视频| 一区二区在线观看免费视频播放 | 视频一区二区三区中文字幕| 成+人+亚洲+综合天堂| 三区精品视频| 精品久久久久久无| 手机精品视频在线观看| 91欧美激情一区二区三区成人| 亚洲午夜精品久久久中文影院av | 一区二区三区在线观看视频 | 欧美日韩久久久| 日韩久久一区二区| 国产传媒久久文化传媒| 午夜精品一区二区三区四区| 久久女同性恋中文字幕| 青青草国产精品97视觉盛宴| 国产美女99p| 3d动漫精品啪啪| 亚洲国产wwwccc36天堂| 91美女片黄在线观看91美女| 欧美午夜一区二区三区| 亚洲免费视频中文字幕| 99久久国产免费看| 在线免费观看不卡av| 综合久久久久久| 本田岬高潮一区二区三区| 一本色道a无线码一区v| 亚洲图片你懂的| 99免费精品在线| 欧美日韩精品专区| 亚洲自拍欧美精品| 成人自拍网站| 日韩视频免费观看高清完整版| 五月婷婷综合激情| 九九九九久久久久| 久久综合99re88久久爱| 精品在线一区二区| 亚洲国产日韩欧美| 亚洲欧洲另类国产综合| 99久久精品免费精品国产| 精品视频999| 亚洲成人tv网| 久久精品国产精品国产精品污 | 亚洲成人av一区| 国产私拍一区| 亚洲精品一区在线观看| 国内精品伊人久久久久av影院| 四虎影院一区二区三区| 综合久久久久久| 99热在线国产| 久久综合九色综合欧美就去吻| 国内精品国产成人国产三级粉色| 在线观看成人av电影| 一区av在线播放| 国产一区在线免费观看| 久久精品亚洲一区二区三区浴池| 成人一区二区三区视频在线观看| 欧美亚洲国产一卡| 香蕉成人啪国产精品视频综合网 | 亚洲欧洲性图库| 99高清视频有精品视频| 精品久久一区二区三区| 国产精品一二三区在线| 欧美日韩精品电影| 免费成人性网站| 色综合天天在线| 亚洲va中文字幕| 日韩欧美手机在线| 一区二区三区中文字幕电影 | 亚洲女与黑人做爰| 国产精品国产精品国产专区不卡| 久久伊99综合婷婷久久伊| 成人va在线观看| 日韩三级.com| 国产河南妇女毛片精品久久久| 欧美日韩一级片在线观看| 久久精品国产999大香线蕉| 91黄色免费观看| 蜜臀精品久久久久久蜜臀| 色婷婷av久久久久久久| 日本少妇一区二区| 91成人免费在线视频| 日本午夜精品一区二区三区电影| 一本在线高清不卡dvd| 亚洲成av人片www| 一区二区三区国产福利| 日韩精品91亚洲二区在线观看| 亚洲三区视频| 日韩av一区二区三区| 一区二区冒白浆视频| 午夜精品福利一区二区三区av| 亚洲一区二区三区涩| 五月天亚洲精品| 色噜噜夜夜夜综合网| 奇米888四色在线精品| 欧美性猛交xxxx黑人交| 韩国欧美国产一区| 欧美一区二视频| 成人免费视频免费观看| 久久久综合九色合综国产精品| 91蝌蚪porny| 亚洲欧洲av色图| 欧美二区在线| 五月婷婷综合在线| 精品视频在线看| 国产激情一区二区三区四区| 日韩欧美国产麻豆| 91在线你懂得| 国产欧美精品一区aⅴ影院| 国产欧美丝袜| 亚洲三级小视频| 亚洲图片都市激情| 精品中文字幕一区二区| 欧美一二区视频| 91网免费观看| 亚洲欧美精品午睡沙发| 亚洲精品在线免费看| 麻豆91在线观看| 日韩欧美国产一二三区| 高清av免费一区中文字幕| 一区二区三区资源| 在线国产电影不卡| 成人免费看的视频| 日本一区二区高清| 日韩av电影免费播放| 美女诱惑一区二区| 欧美变态tickle挠乳网站| 国产成人av一区二区三区| 一区二区三区免费在线观看| 欧亚洲嫩模精品一区三区| 国产.精品.日韩.另类.中文.在线.播放 | 亚洲综合久久久久| 欧美视频中文字幕| www.色综合.com| 中文字幕人成不卡一区| 色诱视频网站一区| 波波电影院一区二区三区| **性色生活片久久毛片| 色婷婷综合久久久中文字幕| 福利一区在线观看| 综合欧美一区二区三区| 在线影视一区二区三区| 9色porny自拍视频一区二区| 亚洲欧美日韩国产中文在线| 欧洲中文字幕精品| 91在线国产福利| 一区二区三区欧美激情| 欧美高清精品3d| 国产超碰91| 日韩av一级片| 久久亚洲精品国产精品紫薇| 欧美一区激情视频在线观看| 国内国产精品久久| 国产精品久久久久影视| 91黄色激情网站| 91看片淫黄大片一级| 亚洲成a人片在线不卡一二三区| 日韩一区二区三免费高清| 久久精品日产第一区二区三区乱码| 蜜桃久久av一区| 日本一区二区三区高清不卡| 色综合久久88色综合天天免费| av电影在线观看一区| 亚洲第一狼人社区| 日韩欧美在线1卡| 欧美一区二区视频17c| 国产成人免费网站| 亚洲乱码国产乱码精品精小说| 在线电影欧美成精品| 韩国成人一区| 国产一区二区三区四区五区入口| 国产精品黄色在线观看 | 美女被吸乳得到大胸91| 欧美国产一区视频在线观看| 欧洲人成人精品| 国产精品一 二 三| 精品一区二区三区在线播放| ...中文天堂在线一区|