Search code examples
phpwordpresswoocommerceunderscores-wp

Use of underscore in PHP code


Firstly, to be clear, I'm not talking about the use of underscores as for visual separation of words in function names, etc., for example from the code below, woocommerce_wp_text_input.

In following a particular PHP WordPress WooCommerce related tutorial, I noticed the coder was randomly inserting underscores and multiple consecutive underscores, for example: _text_field and __( 'Enter the custom value here.', 'woocommerce' ). This is either a convention that is used in demonstration code snippets or it has some PHP meaning.

    // Text Field
woocommerce_wp_text_input( 
    array( 
        'id'          => '_text_field[' . $variation->ID . ']', 
        'label'       => __( 'My Text Field', 'woocommerce' ), 
        'placeholder' => 'http://',
        'desc_tip'    => 'true',
        'description' => __( 'Enter the custom value here.', 'woocommerce' ),
        'value'       => get_post_meta( $variation->ID, '_text_field', true )
    )
);

Is there a convention regarding the use of an arbitrary number of underscores in coding demonstrations? At first I suspected he was using underscores to highlight that certain values were specific to his case, but I really don't know.


Solution

  • There isn't any convention.

    _() (one underscore) is an alias of the PHP function gettext(). It is used for localization.

    __() (two underscores) is a function defined by Wordpress, also for localization. You can think at it as a more flexible version of _() but it is available only in WP projects.