Skip to content

Textarea Field

A multi-line text input field.

Overview

The Textarea field renders a multi-line text input and returns a plain string value. Use it for longer content such as descriptions, custom messages, footer text, copyright notices, or any other content that may span multiple lines.


Field Registration

php

[
    'id'       => 'footer_text',
    'type'     => 'textarea',
    'title'    => __('Footer Text', 'your-textdomain'),
    'subtitle' => __('Shown in the footer area', 'your-textdomain'),
    'default'  => '© 2026 My Theme. All rights reserved.',
]

Field Options

OptionTypeRequiredDescription
idstringUnique field identifier — used as the option key
typestringMust be textarea
titlestringLabel shown above the field
subtitlestringSmaller descriptive text shown below the label
descstringHelp text shown below the input
defaultstringDefault value
placeholderstringPlaceholder text shown inside the input when empty
rowsintNumber of visible rows — default is 4
requiredarrayConditional logic rules — see Conditional Logic

Return Value

Type: string

Returns the text entered by the user, including line breaks, or the default value if nothing has been saved yet.

php

$footer_text = themeplus_get_option( 'footer_text', '' );
// Returns: '© 2026 My Theme. All rights reserved.'

Usage Examples

Basic output

php

$footer_text = themeplus_get_option( 'footer_text', '' );

if ( $footer_text ) {
    echo '<p class="footer-text">' . esc_html( $footer_text ) . '</p>';
}

Preserving line breaks

php

$description = themeplus_get_option( 'about_description', '' );

if ( $description ) {
    echo '<div class="about-text">';
    echo wp_kses_post( wpautop( $description ) );
    echo '</div>';
}

Custom copyright notice

php

$copyright = themeplus_get_option( 'copyright_text', '© ' . date('Y') . ' All rights reserved.' );

echo '<div class="copyright">' . esc_html( $copyright ) . '</div>';

With a conditional field

php

[
    'id'      => 'show_custom_404',
    'type'    => 'toggle',
    'title'   => __('Custom 404 Message', 'your-textdomain'),
    'default' => false,
],
[
    'id'          => 'custom_404_text',
    'type'        => 'textarea',
    'title'       => __('404 Message Text', 'your-textdomain'),
    'placeholder' => __('Sorry, the page you are looking for could not be found.', 'your-textdomain'),
    'rows'        => 4,
    'required'    => ['show_custom_404', '==', true],
],

Notes

  • Always escape output with esc_html() for plain text, or wp_kses_post( wpautop() ) if you want to preserve paragraph breaks as HTML.
  • The Textarea field does not support HTML input from users — it stores and returns plain text only. For HTML content, use the Raw field.
  • For single-line text, use the Text field instead.

On This Page