public function updateBase($params = array()) { if (isset($params['base']) && !empty($params['base']) && isset($params['daogou']) && !empty($params['daogou']) && isset($params['help']) && !empty($params['help'])) { $global = get_option(XT_OPTION_GLOBAL); $oldBase = isset($global['base']) && !empty($global['base']) ? $global['base'] : 'share'; $oldDaogou = isset($global['daogou']) && !empty($global['daogou']) ? $global['daogou'] : 'daogou'; $oldHelp = isset($global['help']) && !empty($global['help']) ? $global['help'] : 'help'; $newBase = trim($params['base']); $newDaogou = trim($params['daogou']); $newHelp = trim($params['help']); //replace option_value(widgets and html) xt_replace_base($global, $newBase, $newDaogou, $newHelp); $global['daogou'] = $newDaogou; $global['help'] = $newHelp; if (!isset($global['base']) || empty($global['base'])) { $global['base'] = $newBase; } elseif ($global['base'] != $newBase) { global $wpdb; $home_id = $wpdb->get_var("SELECT id FROM `" . $wpdb->posts . "` WHERE `post_name` = '" . $wpdb->escape($global['base']) . "'\tAND `post_type` != 'revision'"); if (!empty($home_id)) { $newpost = array(); $newpost['ID'] = $home_id; $newpost['post_name'] = $newBase; wp_update_post($newpost); } $global['base'] = $newBase; } global $wpdb, $wp_rewrite; $index = ''; if ($wp_rewrite->using_index_permalinks()) { $global['index'] = '/' . $wp_rewrite->index; $index = $wp_rewrite->index . '/'; } else { $global['index'] = ''; } update_option(XT_OPTION_GLOBAL, $global); xt_register_post_type(); xt_register_taxonomy_for_object_types(); $wp_rewrite->flush_rules(); //flush //update menus $menus = get_terms('nav_menu', array('hide_empty' => true)); if (!empty($menus)) { foreach ($menus as $menu) { $menu_id = $menu->term_id; $posts = wp_get_nav_menu_items($menu_id); if (!empty($posts)) { foreach ($posts as $post) { if ($post->type == 'custom') { $url = $post->url; $newUrl = str_replace(array(home_url($index . $oldDaogou), home_url($index . $oldBase), home_url($index . $oldHelp)), array(home_url($index . $newDaogou), home_url($index . $newBase), home_url($index . $newHelp)), $url); update_post_meta($post->ID, '_menu_item_url', $newUrl); } } } } } return true; } return false; }
function xt_default_custom() { xt_register_post_type(); add_action('add_meta_boxes', 'xt_meta_box'); add_action('save_post', 'xt_meta_box_save'); add_image_size('xt-daogou-post-thumbnail', 180, 180, false); }