__( string $text, string $domain = 'default' )

Retrieve the translation of $text.

Description Description

If there is no translation, or the text domain isn’t loaded, the original text is returned.

Parameters Parameters


(string) (Required) Text to translate.


(string) (Optional) Text domain. Unique identifier for retrieving translated strings.

Default value: 'default'

Top ↑

Return Return

(string) Translated text.

Top ↑

Source Source

File: wp-includes/l10n.php

function __( $text, $domain = 'default' ) {
	return translate( $text, $domain );

Top ↑

Changelog Changelog

Version Description
2.1.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by Codex

    Make a string inside your plugin or theme translatable:

    $translated = __( 'Hello World!', 'mytextdomain' );

    ‘mytextdomain’ needs to be a unique text domain used throughout your plugin/theme. This should always be directly passed as a string literal as shown above, not a string assigned to a variable or constant. E.g., this is incorrect:

    $text_domain = 'mytextdomain';
    $string = 'Hello World!';
    $translated = __( $string, $text_domain );

    This seems to work, but it will interfere in automatic parsing of your plugin/theme’s files for translation.

  2. Skip to note 3 content
    Contributed by Saurabh Ranjan

    We have _e as well which do the same thing but and only difference between them is
    _e echo directly whereas __ we need to echo them.

    For Example:

    _e(‘this is some message’, ‘twentyfourteen’);

    is same as

    echo __(‘this is a some message’, ‘twentyfourteen’);

You must log in before being able to contribute a note or feedback.