Example #1
0
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;
}
Example #2
0
 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);
     }
 }