[WordPress] 外掛分享: Customize Inline Editing

首頁外掛目錄 › Customize Inline Editing
10+
安裝啟用
★★★★★
5/5 分(2 則評價)
634 天前
最後更新
問題解決
WordPress 4.7.0+ v0.2.1 上架:2014-09-18

內容簡介

在 WordPress 4.5 版中,核心中引入了「selective refresh」框架。其中的關鍵概念是「partial」,當相關設定值被修改時,該「partial」區域會被選擇性地重新整理。這意味著一個或多個設定值會與預覽中的特定元素相關聯。當 select refresh 開始被引入時,使用者可以使用「shift click」來跳轉並聚焦於側邊欄控件中的關聯控件。在 WordPress 4.7 版中,這功能得到加強,並提供「visible edit shortcuts」,讓使用者可以按一下(甚至觸控)圖示,以顯示側邊欄中的控件。

「Customize Inline Editing」外掛將編輯方式改進,讓使用者可以透過直接在預覽中進行內嵌編輯,而不必把焦點從預覽中移開到控件面板上。這在小螢幕的手機等行動裝置上非常有用,因為使用者不能同時看到控件和預覽,可以參考這裡的比較:

使用這種方式進行內嵌編輯也有利於輔助功能,因為在目前被編輯的元素中保持鍵盤焦點,如此一來即可在桌面瀏覽器上實現內嵌編輯,如下圖所示:

此外,本外掛還提供了Customizer中實現內嵌編輯的可行方式。 自2014年的0.1版之後,這個外掛已為Selective Refresh打底,特別是在關聯CSS選擇器和定制設置方面。

可以通過將註冊的部分分配合適的類型來支援本外掛在Customizer中的內嵌編輯:

add_action( 'customize_register', function( $wp_customize ) {
$opt_in_partials = array_filter( array(
$wp_customize->selective_refresh->get_partial( 'blogname' ),
$wp_customize->selective_refresh->get_partial( 'blogdescription' )
) );
foreach ( $opt_in_partials as $partial ) {
$partial->type = 'inline_editable';
}
}, 100 );

單擊編輯快捷方式可開始編輯該元素,然後鍵盤焦點轉移到可編輯元素上。如果值具有伺服器端呈現的值(例如,使用 PHP 过滤器(例如wptexturize)来改善排版的值),在开始編輯時,將提供原始值。可以通過單擊可編輯元素之外,或將焦點從該元素中轉移到另一處(使其模糊)來完成編輯,也可以單擊編輯圖示(該圖示會在按下回車時變為「done」勾選圖示)。此外,你也可以使用「Shift+點擊元素」進行編輯。

目前僅支援基本文本字段的內嵌編輯;樣式和任何添加到contentEditable區域的標記都將被剝離。最終,豐富的文本格式可能會被允許,特別是針對「文本小工具」(通過JS Widgets)或文章內容(通過Customize Posts)進行整合。

WordPress 4.5版的「selective refresh」介紹中提到了它和內嵌編輯的可能未來:

如果我們可以使Customizer中不再成為覆頁刷新的主要方式,我們就可以開始在預覽中直接引入控件。如果整個預覽不重新加載,那麼內嵌控件就不會因每次更改而被破壞。例如,考慮一個小部件控制

外掛標籤

開發者團隊

⬇ 下載最新版 (v0.2.1) 或搜尋安裝

① 下載 ZIP → 後台「外掛 › 安裝外掛 › 上傳外掛」
② 後台搜尋「Customize Inline Editing」→ 直接安裝(推薦)
📦 歷史版本下載

原文外掛簡介

In WordPress 4.5 the selective refresh framework was introduced in core. One of the key concepts in this framework is the “partial”, the region in a document which is selectively refreshed when a related setting is modified. This means that one or more settings are linked with a given element in the preview. When selective refresh was first was introduced it supported the ability for a user to “shift click” on a partial to jump to and focus on the related control in the pane. In WordPress 4.7 this was then enhanced with visible edit shortcuts so that users could click (touch even) on the icon to be able to reveal the control in the pane.
The Customize Inline Editing plugin builds on edit shortcuts by allowing the setting to be modified inline via direct manipulation in the preview without having focus removed and placed on the controls pane. This is particularly useful on mobile devices on small screens where a user cannot both see the controls and preview at the same time, as can be compared here:

Inline editing in this way is also helpful for accessibility since keyboard focus remains in the preview at the element being edited, as can be seen in this demonstration of inline editing on a desktop browser:

This plugin provides one example implementation of inline editing this can be accomplished in the customizer. Version 0.1 of this plugin from 2014 was a precursor in some ways to selective refresh, specifically in regards to how CSS selectors are associated with customizer settings.
Themes can opt-in to support this plugin’s inline editing within the customizer by assigning the appropriate type to the registered partials:

add_action( 'customize_register', function( $wp_customize ) {
$opt_in_partials = array_filter( array(
$wp_customize->selective_refresh->get_partial( 'blogname' ),
$wp_customize->selective_refresh->get_partial( 'blogdescription' )
) );
foreach ( $opt_in_partials as $partial ) {
$partial->type = 'inline_editable';
}
}, 100 );

Click on the edit shortcut to begin editing the element, with keyboard focus then given to the editable element. If the value has a server-side rendered value (e.g. where PHP filters like wptexturize apply to improve typography), the raw value will be supplied when editing starts. Editing can be completed by clicking out of the editable element, tabbing out of the element (blurring it), or clicking the edit icon which then appears as a “done” checkmark icon. You may also shift-click on an element to edit it.
Currently only basic text fields can currently be edited; styling and any tags added to contentEditable areas will be stripped out. Eventually rich text formatting may be allowed, specifically for integrations with the Text widget (via JS Widgets) or post content (via Customize Posts).
The selective refresh writeup from 4.5 concludes with a section on a possible future for it and inline editing:

If we can eliminate full-page refreshes from being the norm for the Customizer, we can start to introduce controls inline with the preview. If the entire preview does not reload, then the inline controls won’t get destroyed by the refresh with each change. For example, consider a widget control floating immediately next to the widget in the sidebar it is editing. With selective refresh, it will then also be possible to eliminate the Customizer altogether. The Customizer could be available to anyone who is logged in, with the controls being bootstrapped on demand when a user wants to edit a given element. There would be no need to navigate way from a page on the frontend to enter a unique Customizer state: the Customizer would come to the user. Any controls not relevant to being inline could remain in the Customizer pane, but it could slide in only as needed instead of appearing by default. That is to say, selective refresh makes the Customizer a much better framework for implementing frontend editing.

Development of this plugin is done on GitHub. Pull requests welcome. Please see issues reported there before going to the plugin forum.

延伸相關外掛

文章
Filter
Mastodon