コード例 #1
0
ファイル: wp-import.php プロジェクト: santikrass/apache
 function process_posts()
 {
     $menu_items = $mo_posts = array();
     // store this for future usage as parent function unset $this->posts
     foreach ($this->posts as $post) {
         if ('nav_menu_item' == $post['post_type']) {
             $menu_items[] = $post;
         }
         if (0 === strpos($post['post_title'], 'polylang_mo_')) {
             $mo_posts[] = $post;
         }
     }
     if (!empty($mo_posts)) {
         new PLL_MO();
     }
     // just to register the polylang_mo post type before processing posts
     parent::process_posts();
     global $polylang;
     $polylang->model->clean_languages_cache();
     // to update the posts count in (cached) languages list
     $this->remap_translations($this->post_translations, $this->processed_posts);
     unset($this->post_translations);
     // language switcher menu items
     foreach ($menu_items as $item) {
         foreach ($item['postmeta'] as $meta) {
             if ('_pll_menu_item' == $meta['key']) {
                 update_post_meta($this->processed_menu_items[$item['post_id']], '_pll_menu_item', maybe_unserialize($meta['value']));
             }
         }
     }
     // merge strings translations
     foreach ($mo_posts as $post) {
         $lang_id = (int) substr($post['post_title'], 12);
         if (!empty($this->processed_terms[$lang_id])) {
             if ($strings = unserialize($post['post_content'])) {
                 $mo = new PLL_MO();
                 $mo->import_from_db($this->processed_terms[$lang_id]);
                 foreach ($strings as $msg) {
                     $mo->add_entry_or_merge($mo->make_entry($msg[0], $msg[1]));
                 }
                 $mo->export_to_db($this->processed_terms[$lang_id]);
             }
         }
         // delete the now useless imported post
         wp_delete_post($this->processed_posts[$post['post_id']], true);
     }
 }