function wpsw_get_field_objects($post_id, $fields = array()) { $field_groups = array(); //acf_delete_cache('get_field_groups'); if (is_numeric($post_id)) { $field_groups = acf_get_field_groups(array('post_id' => $post_id)); } elseif ($post_id == 'options') { $keys = array_keys(wpsw_get_config('acf/options')); foreach ($keys as $key) { $field_groups = array_merge($field_groups, acf_get_field_groups(array('options_page' => $key))); } } foreach ($field_groups as $field_group) { //acf_delete_cache("get_fields/ID={$field_group['ID']}"); $fields = array_merge($fields, acf_get_fields($field_group)); } $field_objects = array(); foreach ($fields as $key => $field) { $field_objects[$field['name']] = $field; } return $field_objects; }
protected function create_nav_menu() { if (!function_exists('wp_create_nav_menu')) { require_once ABSPATH . 'wp-admin/includes/nav-menu.php'; } $nav_menu_locations = array(); foreach (wpsw_get_config('register.nav_menus') as $menu_key => $menu_name) { wp_delete_nav_menu($menu_name); $items = array_get($this->menus, $menu_key, array()); $menu_items = array(); foreach ($items as $key => $item) { $data = array(); $data['menu-item-title'] = $item['title']; $data['menu-item-position'] = $key + 1; if (isset($item['class'])) { $data['menu-item-classes'] = explode(' ', $item['class']); } if (isset($item['link'])) { $src = preg_replace('/\\.html$/i', '.md', $item['link']); $id = wpsw_get_alias_id($src); $post = get_post($id); if ($post) { $data['menu-item-type'] = 'post_type'; $data['menu-item-object'] = $post->post_type; $data['menu-item-object-id'] = $id; } else { $data['menu-item-url'] = $item['link']; } } $menu_item = $this->perpare_nav_item_data($data); $menu_item_db_id = $this->add_nav_menu_item($menu_name, $menu_item); pc($menu_item_db_id, 'menu_item_db_id'); foreach (array_get($item, 'sub_menu', array()) as $index => $sub_item) { $data = array(); $data['menu-item-title'] = $sub_item['title']; $data['menu-item-position'] = $index + 1; $data['menu-item-parent-id'] = $menu_item_db_id; if (isset($sub_item['class'])) { $data['menu-item-classes'] = explode(' ', $sub_item['class']); } if (isset($sub_item['link'])) { $src = preg_replace('/\\.html$/i', '.md', $sub_item['link']); $id = wpsw_get_alias_id($src); $post = get_post($id); if ($post) { $data['menu-item-type'] = 'post_type'; $data['menu-item-object'] = $post->post_type; $data['menu-item-object-id'] = $id; } else { $data['menu-item-url'] = $sub_item['link']; } } $sub_menu_item = $this->perpare_nav_item_data($data); $sub_menu_item_db_id = $this->add_nav_menu_item($menu_name, $sub_menu_item); } } // items loop $menu = wp_get_nav_menu_object($menu_name); $nav_menu_locations[$menu_key] = $menu->term_id; } // register.nav_menus loop $theme_mods = array(false, 'nav_menu_locations' => $nav_menu_locations); $theme = get_option('stylesheet'); if (get_option("theme_mods_{$theme}")) { update_option("theme_mods_{$theme}", $theme_mods); } else { add_option("theme_mods_{$theme}", $theme_mods); } }