-
-function update_post_caches(&$posts) {
- global $post_cache, $category_cache, $comment_count_cache, $post_meta_cache;
- global $wpdb;
-
- // No point in doing all this work if we didn't match any posts.
- if ( !$posts )
- return;
-
- // Get the categories for all the posts
- for ($i = 0; $i < count($posts); $i++) {
- $post_id_array[] = $posts[$i]->ID;
- $post_cache[$posts[$i]->ID] = &$posts[$i];
- $comment_count_cache[$posts[$i]->ID] = $posts[$i]->comment_count;
- }
-
- $post_id_list = implode(',', $post_id_array);
-
- update_post_category_cache($post_id_list);
-
- // Get post-meta info
- if ( $meta_list = $wpdb->get_results("SELECT post_id, meta_key, meta_value FROM $wpdb->postmeta WHERE post_id IN($post_id_list) ORDER BY post_id, meta_key", ARRAY_A) ) {
- // Change from flat structure to hierarchical:
- $post_meta_cache = array();
- foreach ($meta_list as $metarow) {
- $mpid = $metarow['post_id'];
- $mkey = $metarow['meta_key'];
- $mval = $metarow['meta_value'];
-
- // Force subkeys to be array type:
- if ( !isset($post_meta_cache[$mpid]) || !is_array($post_meta_cache[$mpid]) )
- $post_meta_cache[$mpid] = array();
- if ( !isset($post_meta_cache[$mpid]["$mkey"]) || !is_array($post_meta_cache[$mpid]["$mkey"]) )
- $post_meta_cache[$mpid]["$mkey"] = array();
-
- // Add a value to the current pid/key:
- $post_meta_cache[$mpid][$mkey][] = $mval;
- }
- }
-}
-
-function update_category_cache() {
- return true;
-}
-
-function wp_head() {
- do_action('wp_head');
-}
-
-function wp_footer() {
- do_action('wp_footer');
-}
-
-function is_single ($post = '') {
- global $wp_query;
-
- if ( !$wp_query->is_single )
- return false;
-
- if ( empty( $post) )
- return true;
-
- $post_obj = $wp_query->get_queried_object();
-
- if ( $post == $post_obj->ID )
- return true;
- elseif ( $post == $post_obj->post_title )
- return true;
- elseif ( $post == $post_obj->post_name )
- return true;
-
- return false;
-}
-
-function is_page ($page = '') {
- global $wp_query;
-
- if ( !$wp_query->is_page )
- return false;
-
- if ( empty($page) )
- return true;
-
- $page_obj = $wp_query->get_queried_object();
-
- if ( $page == $page_obj->ID )
- return true;
- elseif ( $page == $page_obj->post_title )
- return true;
- else if ( $page == $page_obj->post_name )
- return true;
-
- return false;
-}
-
-function is_attachment () {
- global $wp_query;
-
- return $wp_query->is_attachment;
-}
-
-function is_preview() {
- global $wp_query;
-
- return $wp_query->is_preview;
-}
-
-function is_archive () {
- global $wp_query;
-
- return $wp_query->is_archive;
-}
-
-function is_date () {
- global $wp_query;
-
- return $wp_query->is_date;
-}
-
-function is_year () {
- global $wp_query;
-
- return $wp_query->is_year;
-}
-
-function is_month () {
- global $wp_query;
-
- return $wp_query->is_month;
-}
-
-function is_day () {
- global $wp_query;
-
- return $wp_query->is_day;
-}
-
-function is_time () {
- global $wp_query;
-
- return $wp_query->is_time;
-}
-
-function is_author ($author = '') {
- global $wp_query;
-
- if ( !$wp_query->is_author )
- return false;
-
- if ( empty($author) )
- return true;
-
- $author_obj = $wp_query->get_queried_object();
-
- if ( $author == $author_obj->ID )
- return true;
- elseif ( $author == $author_obj->nickname )
- return true;
- elseif ( $author == $author_obj->user_nicename )
- return true;
-
- return false;
-}
-
-function is_category ($category = '') {
- global $wp_query;
-
- if ( !$wp_query->is_category )
- return false;
-
- if ( empty($category) )
- return true;
-
- $cat_obj = $wp_query->get_queried_object();
-
- if ( $category == $cat_obj->cat_ID )
- return true;
- else if ( $category == $cat_obj->cat_name )
- return true;
- elseif ( $category == $cat_obj->category_nicename )
- return true;
-
- return false;
-}
-
-function is_search () {
- global $wp_query;
-
- return $wp_query->is_search;
-}
-
-function is_feed () {
- global $wp_query;
-
- return $wp_query->is_feed;
-}
-
-function is_trackback () {
- global $wp_query;
-
- return $wp_query->is_trackback;
-}
-
-function is_admin () {
- global $wp_query;
-
- return ( $wp_query->is_admin || strstr($_SERVER['REQUEST_URI'], 'wp-admin/') );
-}
-
-function is_home () {
- global $wp_query;
-
- return $wp_query->is_home;
-}
-
-function is_404 () {
- global $wp_query;
-
- return $wp_query->is_404;
-}
-
-function is_comments_popup () {
- global $wp_query;
-
- return $wp_query->is_comments_popup;
-}
-
-function is_paged () {
- global $wp_query;
-
- return $wp_query->is_paged;
-}
-
-function in_the_loop() {
- global $wp_query;
-
- return $wp_query->in_the_loop;
-}
-
-function get_query_var($var) {
- global $wp_query;
-
- return $wp_query->get($var);
-}
-
-function have_posts() {
- global $wp_query;
-
- return $wp_query->have_posts();
-}
-
-function rewind_posts() {
- global $wp_query;
-
- return $wp_query->rewind_posts();
-}
-
-function the_post() {
- global $wp_query;
-
- $wp_query->the_post();
-}
-
-function get_theme_root() {
- return apply_filters('theme_root', ABSPATH . "wp-content/themes");
-}
-
-function get_theme_root_uri() {
- return apply_filters('theme_root_uri', get_settings('siteurl') . "/wp-content/themes", get_settings('siteurl'));
-}
-
-function get_stylesheet() {
- return apply_filters('stylesheet', get_settings('stylesheet'));
-}
-
-function get_stylesheet_directory() {
- $stylesheet = get_stylesheet();
- $stylesheet_dir = get_theme_root() . "/$stylesheet";
- return apply_filters('stylesheet_directory', $stylesheet_dir, $stylesheet);
-}
-
-function get_stylesheet_directory_uri() {
- $stylesheet = rawurlencode( get_stylesheet() );
- $stylesheet_dir_uri = get_theme_root_uri() . "/$stylesheet";
- return apply_filters('stylesheet_directory_uri', $stylesheet_dir_uri, $stylesheet);
-}
-
-function get_stylesheet_uri() {
- $stylesheet_dir_uri = get_stylesheet_directory_uri();
- $stylesheet_uri = $stylesheet_dir_uri . "/style.css";
- return apply_filters('stylesheet_uri', $stylesheet_uri, $stylesheet_dir_uri);
-}
-
-function get_template() {
- $template = get_settings('template');
- if (!file_exists(get_theme_root() . "/$template")) { //works for dirs too
- update_option('template', 'default');
- update_option('stylesheet', 'default');
- }
- return apply_filters('template', get_settings('template'));
-}
-
-function get_template_directory() {
- $template = get_template();
- $template_dir = get_theme_root() . "/$template";
- return apply_filters('template_directory', $template_dir, $template);
-}
-
-function get_template_directory_uri() {
- $template = get_template();
- $template_dir_uri = get_theme_root_uri() . "/$template";
- return apply_filters('template_directory_uri', $template_dir_uri, $template);
-}
-
-function get_theme_data($theme_file) {
- $theme_data = implode('', file($theme_file));
- preg_match("|Theme Name:(.*)|i", $theme_data, $theme_name);
- preg_match("|Theme URI:(.*)|i", $theme_data, $theme_uri);
- preg_match("|Description:(.*)|i", $theme_data, $description);
- preg_match("|Author:(.*)|i", $theme_data, $author_name);
- preg_match("|Author URI:(.*)|i", $theme_data, $author_uri);
- preg_match("|Template:(.*)|i", $theme_data, $template);
- if ( preg_match("|Version:(.*)|i", $theme_data, $version) )
- $version = trim($version[1]);
- else
- $version ='';
- if ( preg_match("|Status:(.*)|i", $theme_data, $status) )
- $status = trim($status[1]);
- else
- $status = 'publish';
-
- $description = wptexturize(trim($description[1]));
-
- $name = $theme_name[1];
- $name = trim($name);
- $theme = $name;
-
- if ( '' == $author_uri[1] ) {
- $author = trim($author_name[1]);
- } else {
- $author = '<a href="' . trim($author_uri[1]) . '" title="' . __('Visit author homepage') . '">' . trim($author_name[1]) . '</a>';
- }
-
- return array('Name' => $name, 'Title' => $theme, 'Description' => $description, 'Author' => $author, 'Version' => $version, 'Template' => $template[1], 'Status' => $status);
-}
-
-function get_themes() {
- global $wp_themes;
- global $wp_broken_themes;
-
- if ( isset($wp_themes) )
- return $wp_themes;
-
- $themes = array();
- $wp_broken_themes = array();
- $theme_root = get_theme_root();
- $theme_loc = str_replace(ABSPATH, '', $theme_root);
-
- // Files in wp-content/themes directory
- $themes_dir = @ dir($theme_root);
- if ( $themes_dir ) {
- while(($theme_dir = $themes_dir->read()) !== false) {
- if ( is_dir($theme_root . '/' . $theme_dir) && is_readable($theme_root . '/' . $theme_dir) ) {
- if ( $theme_dir{0} == '.' || $theme_dir == '..' || $theme_dir == 'CVS' ) {
- continue;
- }
- $stylish_dir = @ dir($theme_root . '/' . $theme_dir);
- $found_stylesheet = false;
- while (($theme_file = $stylish_dir->read()) !== false) {
- if ( $theme_file == 'style.css' ) {
- $theme_files[] = $theme_dir . '/' . $theme_file;
- $found_stylesheet = true;
- break;
- }
- }
- if ( !$found_stylesheet ) {
- $wp_broken_themes[$theme_dir] = array('Name' => $theme_dir, 'Title' => $theme_dir, 'Description' => __('Stylesheet is missing.'));
- }
- }
- }
- }
-
- if ( !$themes_dir || !$theme_files ) {
- return $themes;
- }
-
- sort($theme_files);
-
- foreach($theme_files as $theme_file) {
- if ( ! is_readable("$theme_root/$theme_file") ) {
- $wp_broken_themes[$theme_file] = array('Name' => $theme_file, 'Title' => $theme_file, 'Description' => __('File not readable.'));
- continue;
- }
-
- $theme_data = get_theme_data("$theme_root/$theme_file");
-
- $name = $theme_data['Name'];
- $title = $theme_data['Title'];
- $description = wptexturize($theme_data['Description']);
- $version = $theme_data['Version'];
- $author = $theme_data['Author'];
- $template = $theme_data['Template'];
- $stylesheet = dirname($theme_file);
-
- foreach (array('png', 'gif', 'jpg', 'jpeg') as $ext) {
- if (file_exists("$theme_root/$stylesheet/screenshot.$ext")) {
- $screenshot = "screenshot.$ext";
- break;
- }
- }
-
- if ( empty($name) ) {
- $name = dirname($theme_file);
- $title = $name;
- }
-
- if ( empty($template) ) {
- if ( file_exists(dirname("$theme_root/$theme_file/index.php")) ) {
- $template = dirname($theme_file);
- } else {
- continue;
- }
- }
-
- $template = trim($template);
-
- if ( !file_exists("$theme_root/$template/index.php") ) {
- $wp_broken_themes[$name] = array('Name' => $name, 'Title' => $title, 'Description' => __('Template is missing.'));
- continue;
- }
-
- $stylesheet_files = array();
- $stylesheet_dir = @ dir("$theme_root/$stylesheet");
- if ( $stylesheet_dir ) {
- while(($file = $stylesheet_dir->read()) !== false) {
- if ( !preg_match('|^\.+$|', $file) && preg_match('|\.css$|', $file) )
- $stylesheet_files[] = "$theme_loc/$stylesheet/$file";
- }
- }
-
- $template_files = array();
- $template_dir = @ dir("$theme_root/$template");
- if ( $template_dir ) {
- while(($file = $template_dir->read()) !== false) {
- if ( !preg_match('|^\.+$|', $file) && preg_match('|\.php$|', $file) )
- $template_files[] = "$theme_loc/$template/$file";
- }
- }
-
- $template_dir = dirname($template_files[0]);
- $stylesheet_dir = dirname($stylesheet_files[0]);
-
- if ( empty($template_dir) )
- $template_dir = '/';
- if ( empty($stylesheet_dir) )
- $stylesheet_dir = '/';
-
- // Check for theme name collision. This occurs if a theme is copied to
- // a new theme directory and the theme header is not updated. Whichever
- // theme is first keeps the name. Subsequent themes get a suffix applied.
- // The Default and Classic themes always trump their pretenders.
- if ( isset($themes[$name]) ) {
- if ( ('WordPress Default' == $name || 'WordPress Classic' == $name) &&
- ('default' == $stylesheet || 'classic' == $stylesheet) ) {
- // If another theme has claimed to be one of our default themes, move
- // them aside.
- $suffix = $themes[$name]['Stylesheet'];
- $new_name = "$name/$suffix";
- $themes[$new_name] = $themes[$name];
- $themes[$new_name]['Name'] = $new_name;
- } else {
- $name = "$name/$stylesheet";
- }
- }
-
- $themes[$name] = array('Name' => $name, 'Title' => $title, 'Description' => $description, 'Author' => $author, 'Version' => $version, 'Template' => $template, 'Stylesheet' => $stylesheet, 'Template Files' => $template_files, 'Stylesheet Files' => $stylesheet_files, 'Template Dir' => $template_dir, 'Stylesheet Dir' => $stylesheet_dir, 'Status' => $theme_data['Status'], 'Screenshot' => $screenshot);
- }
-
- // Resolve theme dependencies.
- $theme_names = array_keys($themes);
-
- foreach ($theme_names as $theme_name) {
- $themes[$theme_name]['Parent Theme'] = '';
- if ( $themes[$theme_name]['Stylesheet'] != $themes[$theme_name]['Template'] ) {
- foreach ($theme_names as $parent_theme_name) {
- if ( ($themes[$parent_theme_name]['Stylesheet'] == $themes[$parent_theme_name]['Template']) && ($themes[$parent_theme_name]['Template'] == $themes[$theme_name]['Template']) ) {
- $themes[$theme_name]['Parent Theme'] = $themes[$parent_theme_name]['Name'];
- break;
- }
- }
- }
- }
-
- $wp_themes = $themes;
-
- return $themes;
-}
-
-function get_theme($theme) {
- $themes = get_themes();
-
- if ( array_key_exists($theme, $themes) )
- return $themes[$theme];
-
- return NULL;
-}
-
-function get_current_theme() {
- $themes = get_themes();
- $theme_names = array_keys($themes);
- $current_template = get_settings('template');
- $current_stylesheet = get_settings('stylesheet');
- $current_theme = 'WordPress Default';
-
- if ( $themes ) {
- foreach ($theme_names as $theme_name) {
- if ( $themes[$theme_name]['Stylesheet'] == $current_stylesheet &&
- $themes[$theme_name]['Template'] == $current_template ) {
- $current_theme = $themes[$theme_name]['Name'];
- break;
- }
- }
- }
-
- return $current_theme;
-}
-
-function get_query_template($type) {
- $template = '';
- if ( file_exists(TEMPLATEPATH . "/{$type}.php") )
- $template = TEMPLATEPATH . "/{$type}.php";
-
- return apply_filters("{$type}_template", $template);
-}
-
-function get_404_template() {
- return get_query_template('404');
-}
-
-function get_archive_template() {
- return get_query_template('archive');
-}
-
-function get_author_template() {
- return get_query_template('author');
-}
-
-function get_category_template() {
- $template = '';
- if ( file_exists(TEMPLATEPATH . "/category-" . get_query_var('cat') . '.php') )
- $template = TEMPLATEPATH . "/category-" . get_query_var('cat') . '.php';
- else if ( file_exists(TEMPLATEPATH . "/category.php") )
- $template = TEMPLATEPATH . "/category.php";
-
- return apply_filters('category_template', $template);
-}
-
-function get_date_template() {
- return get_query_template('date');
-}
-
-function get_home_template() {
- $template = '';
-
- if ( file_exists(TEMPLATEPATH . "/home.php") )
- $template = TEMPLATEPATH . "/home.php";
- else if ( file_exists(TEMPLATEPATH . "/index.php") )
- $template = TEMPLATEPATH . "/index.php";
-
- return apply_filters('home_template', $template);
-}
-
-function get_page_template() {
- global $wp_query;
-
- $id = $wp_query->post->ID;
- $template = get_post_meta($id, '_wp_page_template', true);
-
- if ( 'default' == $template )
- $template = '';
-
- if ( ! empty($template) && file_exists(TEMPLATEPATH . "/$template") )
- $template = TEMPLATEPATH . "/$template";
- else if ( file_exists(TEMPLATEPATH . "/page.php") )
- $template = TEMPLATEPATH . "/page.php";
- else
- $template = '';
-
- return apply_filters('page_template', $template);
-}
-
-function get_paged_template() {
- return get_query_template('paged');
-}
-
-function get_search_template() {
- return get_query_template('search');
-}
-
-function get_single_template() {
- return get_query_template('single');
-}
-
-function get_attachment_template() {
- global $posts;
- $type = explode('/', $posts[0]->post_mime_type);
- if ( $template = get_query_template($type[0]) )
- return $template;
- elseif ( $template = get_query_template($type[1]) )
- return $template;
- elseif ( $template = get_query_template("$type[0]_$type[1]") )
- return $template;
- else
- return get_query_template('attachment');
-}
-
-function get_comments_popup_template() {
- if ( file_exists( TEMPLATEPATH . '/comments-popup.php') )
- $template = TEMPLATEPATH . '/comments-popup.php';
- else
- $template = get_theme_root() . '/default/comments-popup.php';
-
- return apply_filters('comments_popup_template', $template);
-}
-
-// Borrowed from the PHP Manual user notes. Convert entities, while
-// preserving already-encoded entities:
-function htmlentities2($myHTML) {
- $translation_table=get_html_translation_table (HTML_ENTITIES,ENT_QUOTES);
- $translation_table[chr(38)] = '&';
- return preg_replace("/&(?![A-Za-z]{0,4}\w{2,3};|#[0-9]{2,3};)/","&" , strtr($myHTML, $translation_table));
-}
-
-
-function is_plugin_page() {
- global $plugin_page;
-
- if ( isset($plugin_page) )
- return true;
-
- return false;
-}
-
-/*
-add_query_arg: Returns a modified querystring by adding
-a single key & value or an associative array.
-Setting a key value to emptystring removes the key.
-Omitting oldquery_or_uri uses the $_SERVER value.
-
-Parameters:
-add_query_arg(newkey, newvalue, oldquery_or_uri) or
-add_query_arg(associative_array, oldquery_or_uri)
-*/
-function add_query_arg() {
- $ret = '';
- if ( is_array(func_get_arg(0)) ) {
- if ( @func_num_args() < 2 )
- $uri = $_SERVER['REQUEST_URI'];
- else
- $uri = @func_get_arg(1);
- } else {
- if ( @func_num_args() < 3 )
- $uri = $_SERVER['REQUEST_URI'];
- else
- $uri = @func_get_arg(2);
- }
-
- if ( preg_match('|^https?://|i', $uri, $matches) ) {
- $protocol = $matches[0];
- $uri = substr($uri, strlen($protocol));
- } else {
- $protocol = '';
- }
-
- if ( strstr($uri, '?') ) {
- $parts = explode('?', $uri, 2);
- if ( 1 == count($parts) ) {
- $base = '?';
- $query = $parts[0];
- } else {
- $base = $parts[0] . '?';
- $query = $parts[1];
- }
- } else if ( !empty($protocol) || strstr($uri, '/') ) {
- $base = $uri . '?';
- $query = '';
- } else {
- $base = '';
- $query = $uri;
- }
-
- parse_str($query, $qs);
- if ( is_array(func_get_arg(0)) ) {
- $kayvees = func_get_arg(0);
- $qs = array_merge($qs, $kayvees);
- } else {
- $qs[func_get_arg(0)] = func_get_arg(1);
- }
-
- foreach($qs as $k => $v) {
- if ( $v != '' ) {
- if ( $ret != '' )
- $ret .= '&';
- $ret .= "$k=$v";
- }
- }
- $ret = $protocol . $base . $ret;
- return trim($ret, '?');
-}
-
-function remove_query_arg($key, $query) {
- return add_query_arg($key, '', $query);
-}
-
-function load_template($file) {
- global $posts, $post, $wp_did_header, $wp_did_template_redirect, $wp_query,
- $wp_rewrite, $wpdb;
-
- extract($wp_query->query_vars);
-
- require_once($file);
-}
-
-function add_magic_quotes($array) {
- global $wpdb;
-
- foreach ($array as $k => $v) {
- if ( is_array($v) ) {
- $array[$k] = add_magic_quotes($v);
- } else {
- $array[$k] = $wpdb->escape($v);
- }
- }
- return $array;
-}
-
-function wp_remote_fopen( $uri ) {
- if ( ini_get('allow_url_fopen') ) {
- $fp = fopen( $uri, 'r' );
- if ( !$fp )
- return false;
- $linea = '';
- while( $remote_read = fread($fp, 4096) )
- $linea .= $remote_read;
- fclose($fp);
- return $linea;
- } else if ( function_exists('curl_init') ) {
- $handle = curl_init();
- curl_setopt ($handle, CURLOPT_URL, $uri);
- curl_setopt ($handle, CURLOPT_CONNECTTIMEOUT, 1);
- curl_setopt ($handle, CURLOPT_RETURNTRANSFER, 1);
- $buffer = curl_exec($handle);
- curl_close($handle);
- return $buffer;
- } else {
- return false;
- }
-}
-
-function wp($query_vars = '') {
- global $wp;
-
- $wp->main($query_vars);
-}
-
-function status_header( $header ) {
- if ( 200 == $header )
- $text = 'OK';
- elseif ( 301 == $header )
- $text = 'Moved Permanently';
- elseif ( 302 == $header )
- $text = 'Moved Temporarily';
- elseif ( 304 == $header )
- $text = 'Not Modified';
- elseif ( 404 == $header )
- $text = 'Not Found';
- elseif ( 410 == $header )
- $text = 'Gone';
-
- @header("HTTP/1.1 $header $text");
- @header("Status: $header $text");
-}
-
-function nocache_headers() {
- @ header('Expires: Wed, 11 Jan 1984 05:00:00 GMT');
- @ header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
- @ header('Cache-Control: no-cache, must-revalidate, max-age=0');
- @ header('Pragma: no-cache');
-}
-
-function get_usermeta( $user_id, $meta_key = '') {
- global $wpdb;
- $user_id = (int) $user_id;
-
- if ( !empty($meta_key) ) {
- $meta_key = preg_replace('|a-z0-9_|i', '', $meta_key);
- $metas = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->usermeta WHERE user_id = '$user_id' AND meta_key = '$meta_key'");
- } else {
- $metas = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->usermeta WHERE user_id = '$user_id'");
- }
-
- if ( empty($metas) ) {
- if ( empty($meta_key) )
- return array();
- else
- return '';
- }
-
- foreach ($metas as $index => $meta) {
- @ $value = unserialize($meta->meta_value);
- if ( $value === FALSE )
- $value = $meta->meta_value;
-
- $values[] = $value;
- }
-
- if ( count($values) == 1 )
- return $values[0];
- else
- return $values;
-}
-
-function update_usermeta( $user_id, $meta_key, $meta_value ) {
- global $wpdb;
- if ( !is_numeric( $user_id ) )
- return false;
- $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key);
-
- if ( is_array($meta_value) || is_object($meta_value) )
- $meta_value = serialize($meta_value);
- $meta_value = trim( $meta_value );
-
- if (empty($meta_value)) {
- delete_usermeta($user_id, $meta_key);
- }
-
- $cur = $wpdb->get_row("SELECT * FROM $wpdb->usermeta WHERE user_id = '$user_id' AND meta_key = '$meta_key'");
- if ( !$cur ) {
- $wpdb->query("INSERT INTO $wpdb->usermeta ( user_id, meta_key, meta_value )
- VALUES
- ( '$user_id', '$meta_key', '$meta_value' )");
- } else if ( $cur->meta_value != $meta_value ) {
- $wpdb->query("UPDATE $wpdb->usermeta SET meta_value = '$meta_value' WHERE user_id = '$user_id' AND meta_key = '$meta_key'");
- } else {
- return false;
- }
-
- $user = get_userdata($user_id);
- wp_cache_delete($user_id, 'users');
- wp_cache_delete($user->user_login, 'userlogins');
-
- return true;
-}
-
-function delete_usermeta( $user_id, $meta_key, $meta_value = '' ) {
- global $wpdb;
- if ( !is_numeric( $user_id ) )
- return false;
- $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key);
-
- if ( is_array($meta_value) || is_object($meta_value) )
- $meta_value = serialize($meta_value);
- $meta_value = trim( $meta_value );
-
- if ( ! empty($meta_value) )
- $wpdb->query("DELETE FROM $wpdb->usermeta WHERE user_id = '$user_id' AND meta_key = '$meta_key' AND meta_value = '$meta_value'");
- else
- $wpdb->query("DELETE FROM $wpdb->usermeta WHERE user_id = '$user_id' AND meta_key = '$meta_key'");
-
- $user = get_userdata($user_id);
- wp_cache_delete($user_id, 'users');
- wp_cache_delete($user->user_login, 'userlogins');
-
- return true;
-}
-
-function register_activation_hook($file, $function) {
- $file = plugin_basename($file);
-
- add_action('activate_' . $file, $function);
-}
-
-function register_deactivation_hook($file, $function) {
- $file = plugin_basename($file);
-
- add_action('deactivate_' . $file, $function);
-}
-
-function plugin_basename($file) {
- $file = preg_replace('|\\\\+|', '\\\\', $file);
- $file = preg_replace('/^.*wp-content[\\\\\/]plugins[\\\\\/]/', '', $file);
- return $file;
-}
-
-function get_num_queries() {
- global $wpdb;
- return $wpdb->num_queries;
-}
-
-function wp_nonce_url($actionurl, $action = -1) {
- return wp_specialchars(add_query_arg('_wpnonce', wp_create_nonce($action), $actionurl));
-}
-
-function wp_nonce_field($action = -1) {
- echo '<input type="hidden" name="_wpnonce" value="' . wp_create_nonce($action) . '" />';
- wp_referer_field();
-}
-
-function wp_referer_field() {
- $ref = wp_specialchars($_SERVER['REQUEST_URI']);
- echo '<input type="hidden" name="_wp_http_referer" value="'. $ref . '" />';
- if ( wp_get_original_referer() ) {
- $original_ref = wp_specialchars(stripslashes(wp_get_original_referer()));
- echo '<input type="hidden" name="_wp_original_http_referer" value="'. $original_ref . '" />';
- }
-}
-
-function wp_original_referer_field() {
- echo '<input type="hidden" name="_wp_original_http_referer" value="' . wp_specialchars(stripslashes($_SERVER['REQUEST_URI'])) . '" />';
-}
-
-function wp_get_referer() {
- foreach ( array($_REQUEST['_wp_http_referer'], $_SERVER['HTTP_REFERER']) as $ref )
- if ( !empty($ref) )
- return $ref;
- return false;
-}
-
-function wp_get_original_referer() {
- if ( !empty($_REQUEST['_wp_original_http_referer']) )
- return $_REQUEST['_wp_original_http_referer'];
- return false;
-}
-
-function wp_explain_nonce($action) {
- if ( $action !== -1 && preg_match('/([a-z]+)-([a-z]+)(_(.+))?/', $action, $matches) ) {
- $verb = $matches[1];
- $noun = $matches[2];
-
- $trans = array();
- $trans['update']['attachment'] = array(__('Are you sure you want to edit this attachment: "%s"?'), 'get_the_title');
-
- $trans['add']['category'] = array(__('Are you sure you want to add this category?'), false);
- $trans['delete']['category'] = array(__('Are you sure you want to delete this category: "%s"?'), 'get_catname');
- $trans['update']['category'] = array(__('Are you sure you want to edit this category: "%s"?'), 'get_catname');
-
- $trans['delete']['comment'] = array(__('Are you sure you want to delete this comment: "%s"?'), 'use_id');
- $trans['unapprove']['comment'] = array(__('Are you sure you want to unapprove this comment: "%s"?'), 'use_id');
- $trans['approve']['comment'] = array(__('Are you sure you want to approve this comment: "%s"?'), 'use_id');
- $trans['update']['comment'] = array(__('Are you sure you want to edit this comment: "%s"?'), 'use_id');
- $trans['bulk']['comments'] = array(__('Are you sure you want to bulk modify comments?'), false);
- $trans['moderate']['comments'] = array(__('Are you sure you want to moderate comments?'), false);
-
- $trans['add']['bookmark'] = array(__('Are you sure you want to add this bookmark?'), false);
- $trans['delete']['bookmark'] = array(__('Are you sure you want to delete this bookmark: "%s"?'), 'use_id');
- $trans['update']['bookmark'] = array(__('Are you sure you want to edit this bookmark: "%s"?'), 'use_id');
- $trans['bulk']['bookmarks'] = array(__('Are you sure you want to bulk modify bookmarks?'), false);
-
- $trans['add']['page'] = array(__('Are you sure you want to add this page?'), false);
- $trans['delete']['page'] = array(__('Are you sure you want to delete this page: "%s"?'), 'get_the_title');
- $trans['update']['page'] = array(__('Are you sure you want to edit this page: "%s"?'), 'get_the_title');
-
- $trans['edit']['plugin'] = array(__('Are you sure you want to edit this plugin file: "%s"?'), 'use_id');
- $trans['activate']['plugin'] = array(__('Are you sure you want to activate this plugin: "%s"?'), 'use_id');
- $trans['deactivate']['plugin'] = array(__('Are you sure you want to deactivate this plugin: "%s"?'), 'use_id');
-
- $trans['add']['post'] = array(__('Are you sure you want to add this post?'), false);
- $trans['delete']['post'] = array(__('Are you sure you want to delete this post: "%s"?'), 'get_the_title');
- $trans['update']['post'] = array(__('Are you sure you want to edit this post: "%s"?'), 'get_the_title');
-
- $trans['add']['user'] = array(__('Are you sure you want to add this user?'), false);
- $trans['delete']['users'] = array(__('Are you sure you want to delete users?'), false);
- $trans['bulk']['users'] = array(__('Are you sure you want to bulk modify users?'), false);
- $trans['update']['user'] = array(__('Are you sure you want to edit this user: "%s"?'), 'get_author_name');
- $trans['update']['profile'] = array(__('Are you sure you want to modify the profile for: "%s"?'), 'get_author_name');
-
- $trans['update']['options'] = array(__('Are you sure you want to edit your settings?'), false);
- $trans['update']['permalink'] = array(__('Are you sure you want to change your permalink structure to: %s?'), 'use_id');
- $trans['edit']['file'] = array(__('Are you sure you want to edit this file: "%s"?'), 'use_id');
- $trans['edit']['theme'] = array(__('Are you sure you want to edit this theme file: "%s"?'), 'use_id');
- $trans['switch']['theme'] = array(__('Are you sure you want to switch to this theme: "%s"?'), 'use_id');
-
- if ( isset($trans[$verb][$noun]) ) {
- if ( !empty($trans[$verb][$noun][1]) ) {
- $lookup = $trans[$verb][$noun][1];
- $object = $matches[4];
- if ( 'use_id' != $lookup )
- $object = call_user_func($lookup, $object);
- return sprintf($trans[$verb][$noun][0], $object);
- } else {
- return $trans[$verb][$noun][0];
- }
- }
- }
-
- return __('Are you sure you want to do this');
-}
-
-function wp_nonce_ays($action) {
- global $pagenow, $menu, $submenu, $parent_file, $submenu_file;
-
- $adminurl = get_settings('siteurl') . '/wp-admin';
- if ( wp_get_referer() )
- $adminurl = wp_get_referer();
-
- $title = __('WordPress Confirmation');
- // Remove extra layer of slashes.
- $_POST = stripslashes_deep($_POST );
- if ( $_POST ) {
- $q = http_build_query($_POST);
- $q = explode( ini_get('arg_separator.output'), $q);
- $html .= "\t<form method='post' action='$pagenow'>\n";
- foreach ( (array) $q as $a ) {
- $v = substr(strstr($a, '='), 1);
- $k = substr($a, 0, -(strlen($v)+1));
- $html .= "\t\t<input type='hidden' name='" . wp_specialchars( urldecode($k), 1 ) . "' value='" . wp_specialchars( urldecode($v), 1 ) . "' />\n";
- }
- $html .= "\t\t<input type='hidden' name='_wpnonce' value='" . wp_create_nonce($action) . "' />\n";
- $html .= "\t\t<div id='message' class='confirm fade'>\n\t\t<p>" . wp_explain_nonce($action) . "</p>\n\t\t<p><a href='$adminurl'>" . __('No') . "</a> <input type='submit' value='" . __('Yes') . "' /></p>\n\t\t</div>\n\t</form>\n";
- } else {
- $html .= "\t<div id='message' class='confirm fade'>\n\t<p>" . wp_explain_nonce($action) . "</p>\n\t<p><a href='$adminurl'>" . __('No') . "</a> <a href='" . add_query_arg( '_wpnonce', wp_create_nonce($action), $_SERVER['REQUEST_URI'] ) . "'>" . __('Yes') . "</a></p>\n\t</div>\n";
- }
- $html .= "</body>\n</html>";
- wp_die($html, $title);
-}
-
-function wp_die($message, $title = '') {
- header('Content-Type: text/html; charset=utf-8');
-
- if ( empty($title) )
- $title = __('WordPress › Error');
-?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title><?php echo $title ?></title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <style media="screen" type="text/css">
- <!--
- html {
- background: #eee;
- }
- body {
- background: #fff;
- color: #000;
- font-family: Georgia, "Times New Roman", Times, serif;
- margin-left: 25%;
- margin-right: 25%;
- padding: .2em 2em;
- }
-
- h1 {
- color: #006;
- font-size: 18px;
- font-weight: lighter;
- }
-
- h2 {
- font-size: 16px;
- }
-
- p, li, dt {
- line-height: 140%;
- padding-bottom: 2px;
- }
-
- ul, ol {
- padding: 5px 5px 5px 20px;
- }
- #logo {
- margin-bottom: 2em;
- }
- -->
- </style>
-</head>
-<body>
- <h1 id="logo"><img alt="WordPress" src="<?php echo get_settings('siteurl'); ?>/wp-admin/images/wordpress-logo.png" /></h1>
- <p><?php echo $message; ?></p>
-</body>
-</html>
-<?php
-
- die();
-}
-
-?>
\ No newline at end of file