jrobinsonc
8/19/2016 - 12:07 PM

WPML WordPress plugin

WPML WordPress plugin

WPML WordPress plugin

Links

WPML Coding API
http://wpml.org/documentation/support/wpml-coding-api/

Coding reference

SNIPPETCOMMENTS
icl_register_string(context, name, value)Registers a string for translation.
icl_unregister_string(context, name)Removes a string from the translation table.
icl_t(context, name, value)Gets the translated value of a string.
icl_makes_duplicates($master_post_id)Duplicate the post $master_post_id to all the site’s languages.
icl_get_home_url()Link to the home page in the active language.
icl_object_id(ID, type, return_original_if_missing, language_code)Used to calculate the IDs of objects (usually categories) in the current language.
ICL_LANGUAGE_CODECode for the current language (example: fr)
define('ICL_DONT_LOAD_LANGUAGE_SELECTOR_CSS', true);Remove language selector css for front-end.

Snippets

Custom language switcher:

/**
 * get_language_links
 *
 * @see https://wpml.org/documentation/getting-started-guide/language-setup/custom-language-switcher/
 * @return array Returns an array with the links for each available language.
 */
function get_language_links( $link_format = '<a href="%1$s">%2$s</a>' ) {
    if ( ! function_exists( 'icl_get_languages' ) ) {
        trigger_error(
            'The plugin WPML is not installed.',
            E_USER_ERROR
        );
        return array();
    }

    $languages = icl_get_languages( 'skip_missing=N&orderby=KEY&order=DIR&link_empty_to=str' );
    $links     = array();

    foreach ( $languages as $lang ) {
        $links[] = sprintf( $link_format, $lang['url'], $lang['native_name'] );
    }

    return $links;
}

Redirects users from splash-intro page to the default language of your site:

/**
 * Redirects users from splash-intro page to the default language of your site
 * Must configure the ID.
 */
add_action('wp', function () {
    if (!function_exists('icl_get_home_url')) {
        return;
    }

    $introPageId = 0; // ID of your intro page.

    if (get_the_ID() === $introPageId) {
        wp_redirect(icl_get_home_url());
        exit;
    }
});