Register a New Format Edit
The first thing you’re going to do in this tutorial is to register the new format that the plugin intends to apply. WordPress has the registerFormatType
function to do so.
Let’s prepare a minimal plugin to make this work. Create a new folder and a file named my-custom-format.php
within it containing the necessary PHP code to register and enqueue the JavaScript assets:
<?php /** * Plugin Name: My custom format */ function my_custom_format_script_register() { wp_register_script( 'my-custom-format-js', plugins_url( 'my-custom-format.js', __FILE__ ), array( 'wp-rich-text' ) ); } add_action( 'init', 'my_custom_format_script_register' ); function my_custom_format_enqueue_assets_editor() { wp_enqueue_script( 'my-custom-format-js' ); } add_action( 'enqueue_block_editor_assets', 'my_custom_format_enqueue_assets_editor' );
Then add a new file named my-custom-format.js
with the following contents:
( function ( wp ) { wp.richText.registerFormatType( 'my-custom-format/sample-output', { title: 'Sample output', tagName: 'samp', className: null, } ); } )( window.wp );
import { registerFormatType } from '@wordpress/rich-text'; registerFormatType( 'my-custom-format/sample-output', { title: 'Sample output', tagName: 'samp', className: null, } );
Make that plugin available in your WordPress setup and activate it. Then, load a new page/post.
The list of available format types is maintained in the core/rich-text
store. You can query the store to check that your custom format is now available. To do so, run this code in your browser’s console:
wp.data.select( 'core/rich-text' ).getFormatTypes();
It’ll return an array containing the format types, including your own.