>它還帶有atext>視圖,該視圖允許用戶在其內容中插入或修改HTML。
WordPress Visual Editor由Tinymce編輯器控件提供動力,該編輯器提供了Wysiwyg視圖以及您看到的格式按鈕:感謝Tinymce API和WordPress的濾鏡掛鉤,我們可以將自己的功能添加到WordPress Visual Editor中。具體來說,我們將研究如何創建和註冊一個自定義Tinymce插件,該插件將選定的文本包裝在CSS類中。
創建Tinymce插件在您的WordPress網站上,創建WP-CONTENT/插件/Tinymce-Custom-Class文件夾。
>我們將在這裡存儲插件的文件,因此下一個使用以下代碼創建一個名為tinymce-custom-class.php的文件:
WordPress Tinymce濾波器
Tinymce提供了兩個關鍵過濾器,用於在Visual Editor工具欄上註冊元素:
<span>/** </span><span> * Plugin Name: TinyMCE Custom Class </span><span> * Plugin URI: https://www.sitepoint.com </span><span> * Version: 1.0 </span><span> * Author: Tim Carr </span><span> * Author URI: http://www.n7studios.co.uk </span><span> * Description: TinyMCE Plugin to wrap selected text in a custom CSS class, within the Visual Editor </span><span> * License: GPL2 </span><span> */ </span> <span>class TinyMCE_Custom_Class { </span> <span>/** </span><span> * Constructor. Called when the plugin is initialised. </span><span> */ </span> <span>function __construct() { </span> <span>} </span> <span>} </span> <span>$tinymce_custom_class = new TinyMCE_Custom_Class;</span>
mce_external_plugins:用於加載外部Tinymce插件(https://codex.wordpress.org/plugin_api/filter/filter_reference/mce_external_plugins)
>在調用這些過濾器之前,我們希望檢查我們在WordPress管理屏幕中。將以下代碼添加到__ -construct:
<span>/** </span><span> * Plugin Name: TinyMCE Custom Class </span><span> * Plugin URI: https://www.sitepoint.com </span><span> * Version: 1.0 </span><span> * Author: Tim Carr </span><span> * Author URI: http://www.n7studios.co.uk </span><span> * Description: TinyMCE Plugin to wrap selected text in a custom CSS class, within the Visual Editor </span><span> * License: GPL2 </span><span> */ </span> <span>class TinyMCE_Custom_Class { </span> <span>/** </span><span> * Constructor. Called when the plugin is initialised. </span><span> */ </span> <span>function __construct() { </span> <span>} </span> <span>} </span> <span>$tinymce_custom_class = new TinyMCE_Custom_Class;</span>
接下來,添加setup_tinymce_plugin函數以執行一些進一步的檢查:
<span>if ( is_admin() ) { </span> <span>add_action( 'init', array( &$this, 'setup_tinymce_plugin' ) ); </span><span>}</span>
這檢查了WordPress用戶是否可以編輯帖子或頁面。如果他們不能的話,為該用戶註冊我們的Tinymce插件是沒有意義的,因為他們永遠不會看到視覺編輯器。 然後,我們檢查用戶是否正在使用Visual Editor,因為某些WordPress用戶通過
>用戶>您的個人資料關閉了此功能。同樣,如果用戶不使用視覺編輯器,我們將返回(退出)函數,因為我們不需要做任何其他操作。 > 如果上述檢查通過,則註冊了兩個Tinymce WordPress濾波器-MCE_EXTERNEN_PLUGINS和MCE_BUTTONS。
>第一個過濾器 - MCE_EXTERNAL_PLUGINS - 允許我們註冊將與Visual Editor進行交互的Tinymce JavaScript插件文件。讓我們在同類中添加此過濾器的函數調用:
在這裡,我們在$ plugin_array中註冊一個JavaScript文件,其中包含所有Tinymce JavaScript插件。
<span>/** </span><span>* Check if the current user can edit Posts or Pages, and is using the Visual Editor </span><span>* If so, add some filters so we can register our plugin </span><span>*/ </span><span>function setup_tinymce_plugin() { </span> <span>// Check if the logged in WordPress User can edit Posts or Pages </span> <span>// If not, don't register our TinyMCE plugin </span> <span>if ( ! current_user_can( 'edit_posts' ) && ! current_user_can( 'edit_pages' ) ) { </span> <span>return; </span> <span>} </span> <span>// Check if the logged in WordPress User has the Visual Editor enabled </span> <span>// If not, don't register our TinyMCE plugin </span> <span>if ( get_user_option( 'rich_editing' ) !== 'true' ) { </span> <span>return; </span> <span>} </span> <span>// Setup some filters </span> <span>add_filter( 'mce_external_plugins', array( &$this, 'add_tinymce_plugin' ) ); </span> <span>add_filter( 'mce_buttons', array( &$this, 'add_tinymce_toolbar_button' ) ); </span> <span>}</span>
第二個過濾器 - MCE_BUTTONS - 告訴Tinymce我們想在Visual Editor中註冊一個按鈕。同樣,讓我們在我們的課內添加此過濾器的函數調用:
此註冊我們的tinymce按鈕的編程名稱(custom_class)。
<span>/** </span><span> * Adds a TinyMCE plugin compatible JS file to the TinyMCE / Visual Editor instance </span><span> * </span><span> * <span>@param <span>array</span> $plugin_array Array of registered TinyMCE Plugins </span></span><span> * <span>@return <span>array</span> Modified array of registered TinyMCE Plugins </span></span><span> */ </span><span>function add_tinymce_plugin( $plugin_array ) { </span> <span>$plugin_array['custom_class'] = plugin_dir_url( __FILE__ ) . 'tinymce-custom-class.js'; </span> <span>return $plugin_array; </span> <span>}</span>
創建JavaScript插件
>在插件文件夾中創建一個新文件,稱為tinymce-custom-class.js,插入以下代碼:
>此JavaScript函數執行了一些操作:
<span>/** </span><span> * Adds a button to the TinyMCE / Visual Editor which the user can click </span><span> * to insert a custom CSS class. </span><span> * </span><span> * <span>@param <span>array</span> $buttons Array of registered TinyMCE Buttons </span></span><span> * <span>@return <span>array</span> Modified array of registered TinyMCE Buttons </span></span><span> */ </span><span>function add_tinymce_toolbar_button( $buttons ) { </span> <span>array_push( $buttons, 'custom_class' ); </span> <span>return $buttons; </span> <span>}</span>
>它調用Tinymce插件管理器類,我們可以用來執行許多與Tinymce插件相關的操作。具體來說,我們使用添加功能將插件添加到Tinymce。 在添加例程中,我們可以通過編輯器實例訪問視覺編輯器。我們使用AddButton函數註冊我們的按鈕,該函數由標題,命令和圖標映像。
接下來,創建或編輯頁面或帖子,您希望使用圖標看到您的按鈕:
單擊按鈕,您將看到
>按鈕單擊!警報:
>讓我們用提示替換警報,向用戶詢問他們想在視覺編輯器中包裹所選文本的CSS類名稱:
><span>/** </span><span> * Plugin Name: TinyMCE Custom Class </span><span> * Plugin URI: https://www.sitepoint.com </span><span> * Version: 1.0 </span><span> * Author: Tim Carr </span><span> * Author URI: http://www.n7studios.co.uk </span><span> * Description: TinyMCE Plugin to wrap selected text in a custom CSS class, within the Visual Editor </span><span> * License: GPL2 </span><span> */ </span> <span>class TinyMCE_Custom_Class { </span> <span>/** </span><span> * Constructor. Called when the plugin is initialised. </span><span> */ </span> <span>function __construct() { </span> <span>} </span> <span>} </span> <span>$tinymce_custom_class = new TinyMCE_Custom_Class;</span>
此命令執行一些理智檢查,以確保用戶選擇了一些文本,輸入了CSS類名稱並且沒有取消該過程。
如果一切正常,請切換到“文本”視圖,您會看到所選的文本現在包裹在跨度標籤中:
結論
>要下載完整的源代碼,請訪問github存儲庫或直接zip文件下載鏈接。
在下一篇文章中,我們將介紹一些更高級的步驟,以進一步自定義Tinymce插件。>在WordPress Visual Editor中添加自定義功能的常見問題(常見問題解答)
>如何在WordPress Visual Editor中添加自定義按鈕?此API允許您在工具欄中添加新按鈕並定義其功能。您可以在WordPress安裝插件目錄中創建一個新的插件文件,並使用“ MCE_BUTTONS”過濾器添加按鈕。然後,您可以使用'MCE_EXTERNAL_PLUGINS'過濾器加載插件的JavaScript文件,該文件將定義按鈕的功能。>我可以在不編碼的情況下自定義WordPress Visual Editor嗎?自定義WordPress Visual Editor而無需使用插件編碼。有幾個插件可讓您在工具欄上添加,刪除或重新排列按鈕,更改編輯器的外觀,並添加自定義樣式和格式。為此目的的一些流行插件包括Tinymce Advanced,WP編輯和Ultimate Tinymce。
Tinymce是一種基於平台獨立於Web的JavaScript HTML Wysiwyg編輯器控制。這是為WordPress Visual編輯器提供動力的基礎軟件。通過理解和使用Tinymce API,您可以在WordPress Visual Editor中添加自定義功能。
您可以添加自定義字體通過使用“ MCE_CSS”過濾器來到WordPress Visual Editor。該過濾器允許您將其他CSS文件添加到編輯器。您可以創建一個CSS文件,該文件導入您的自定義字體並定義使用它的類,然後使用“ MCE_CSS”過濾器將此文件添加到編輯器中。
我可以在WordPress Visual Editor中使用短代碼?您可以在WordPress Visual Editor中使用短代碼。只需在編輯器中輸入短代碼即可在顯示帖子時對其進行處理。
>以上是將自定義功能添加到WordPress Visual Editor的詳細內容。更多資訊請關注PHP中文網其他相關文章!