__( 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.

Top ↑

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 2 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.