get_current_language(); $wpml_post = new WPML_Post_Element( $post_id, $sitepress ); $trid = $sitepress->get_element_trid( $post_id, "post_$post_type" ); $translations = $sitepress->get_element_translations( $trid, "post_$post_type" ); if ( is_array( $translations ) && isset( $translations[ $lang ] ) ) { $post_id = $translations[ $lang ]->element_id; } return $post_id; } /** * Returns the translated root node ID for a node template. This makes * it so the translated version of a global node will render. * * @since 2.1.3 * @param string template_node_id * @param object $parent * @param array $layout_data * @return string */ static public function filter_parent_template_node_id( $template_node_id, $parent, $layout_data ) { if ( ! isset( $parent->template_root_node ) ) { return $template_node_id; } $root = FLBuilderModel::get_node_template_root( $parent->type, $layout_data ); if ( $root && isset( $root->template_root_node ) && isset( $root->template_node_id ) && ! empty( $root->template_node_id ) ) { $template_node_id = $root->template_node_id; } return $template_node_id; } /** * WPML fudges the siteurl when in domain mode so our url detection feature * thinks the url has changed, so lets just give it the * siteurl as the saved url so it bypasses it. */ static public function fix_url_check( $url ) { global $sitepress; $settings = $sitepress->get_settings(); if ( '2' === $settings['language_negotiation_type'] ) { return base64_encode( get_option( 'siteurl' ) ); } return $url; } } FLBuilderWPML::init();