diff --git a/src/wp-includes/html-api/class-wp-html-processor.php b/src/wp-includes/html-api/class-wp-html-processor.php
index cce26a60c5350..856787c34bb8f 100644
--- a/src/wp-includes/html-api/class-wp-html-processor.php
+++ b/src/wp-includes/html-api/class-wp-html-processor.php
@@ -862,6 +862,19 @@ private function step_in_body() {
$this->state->stack_of_open_elements->pop_until( $tag_name );
return true;
+ /*
+ * > A start tag whose tag name is "plaintext"
+ */
+ case '+PLAINTEXT':
+ if ( ! $this->state->stack_of_open_elements->has_p_in_button_scope() ) {
+ $this->close_a_p_element();
+ }
+
+ $this->insert_html_element( $this->state->current_token );
+ $this->state->insertion_mode;
+ return true;
+
+
/*
* > An end tag whose tag name is "p"
*/
@@ -997,7 +1010,6 @@ private function step_in_body() {
case 'OPTGROUP':
case 'OPTION':
case 'PARAM':
- case 'PLAINTEXT':
case 'PRE':
case 'RB':
case 'RP':
diff --git a/tests/phpunit/tests/html-api/wpHtmlProcessor.php b/tests/phpunit/tests/html-api/wpHtmlProcessor.php
index d9f1357b5c66f..51337f860302f 100644
--- a/tests/phpunit/tests/html-api/wpHtmlProcessor.php
+++ b/tests/phpunit/tests/html-api/wpHtmlProcessor.php
@@ -191,7 +191,6 @@ public function data_unsupported_special_in_body_tags() {
'OPTGROUP' => array( 'OPTGROUP' ),
'OPTION' => array( 'OPTION' ),
'PARAM' => array( 'PARAM' ),
- 'PLAINTEXT' => array( 'PLAINTEXT' ),
'PRE' => array( 'PRE' ),
'RB' => array( 'RB' ),
'RP' => array( 'RP' ),