コード例 #1
0
 function set_string_language($value, $context, $name, $language)
 {
     if (WPML_SUPPORT_STRINGS_IN_DIFF_LANG) {
         global $wpdb;
         $string_id = icl_get_string_id($value, $context, $name);
         $string_object = new WPML_ST_String($string_id, $wpdb);
         $string_language = $string_object->set_language($language);
         return $string_language;
     } else {
         return false;
     }
 }
コード例 #2
0
 static function save_sync_options()
 {
     global $sitepress, $wpdb;
     $slug_settings = $sitepress->get_setting('posts_slug_translation');
     if (isset($slug_settings['on']) && $slug_settings['on'] && !empty($_POST['translate_slugs'])) {
         foreach ($_POST['translate_slugs'] as $type => $data) {
             $slug_settings['types'][$type] = isset($data['on']) ? intval(!empty($data['on'])) : false;
             if (empty($slug_settings['types'][$type])) {
                 continue;
             }
             $post_type_obj = get_post_type_object($type);
             $slug = trim($post_type_obj->rewrite['slug'], '/');
             $string_id = $wpdb->get_var(self::get_sql_to_get_string_id($type));
             $string_id = empty($string_id) ? self::register_string_for_slug($type, $slug) : $string_id;
             if ($string_id) {
                 if (!isset($data['original'])) {
                     $data['original'] = $sitepress->get_default_language();
                 }
                 $string = new WPML_ST_String($string_id, $wpdb);
                 if ($string->get_language() != $data['original']) {
                     $string->set_language($data['original']);
                 }
                 if (isset($data['langs'])) {
                     foreach ($sitepress->get_active_languages() as $lang) {
                         if ($lang['code'] != $data['original']) {
                             $data['langs'][$lang['code']] = join('/', array_map(array('WPML_Slug_Translation', 'sanitize'), explode('/', $data['langs'][$lang['code']])));
                             $data['langs'][$lang['code']] = urldecode($data['langs'][$lang['code']]);
                             icl_add_string_translation($string_id, $lang['code'], $data['langs'][$lang['code']], ICL_TM_COMPLETE);
                         }
                     }
                 }
                 icl_update_string_status($string_id);
             }
         }
     }
     $sitepress->set_setting('posts_slug_translation', $slug_settings, true);
 }