|
/', $content) ) {
if ( $page > 1 )
$more = 1;
$multipage = 1;
$content = str_replace("\n\n", '', $content);
$content = str_replace("\n", '', $content);
$content = str_replace("\n", '', $content);
$pages = explode('', $content);
$numpages = count($pages);
} else {
$pages[0] = $post->post_content;
$multipage = 0;
}
return true;
}
function is_new_day() {
global $day, $previousday;
if ( $day != $previousday ) {
return(1);
} else {
return(0);
}
}
// Filters: these are the core of WP's plugin architecture
function merge_filters($tag) {
global $wp_filter;
if ( isset($wp_filter['all']) ) {
foreach ($wp_filter['all'] as $priority => $functions) {
if ( isset($wp_filter[$tag][$priority]) )
$wp_filter[$tag][$priority] = array_merge($wp_filter['all'][$priority], $wp_filter[$tag][$priority]);
else
$wp_filter[$tag][$priority] = array_merge($wp_filter['all'][$priority], array());
$wp_filter[$tag][$priority] = array_unique($wp_filter[$tag][$priority]);
}
}
if ( isset($wp_filter[$tag]) )
ksort( $wp_filter[$tag] );
}
function apply_filters($tag, $string) {
global $wp_filter;
$args = array_slice(func_get_args(), 2);
merge_filters($tag);
if ( !isset($wp_filter[$tag]) ) {
return $string;
}
foreach ($wp_filter[$tag] as $priority => $functions) {
if ( !is_null($functions) ) {
foreach($functions as $function) {
$all_args = array_merge(array($string), $args);
$function_name = $function['function'];
$accepted_args = $function['accepted_args'];
if ( $accepted_args == 1 )
$the_args = array($string);
elseif ( $accepted_args > 1 )
$the_args = array_slice($all_args, 0, $accepted_args);
elseif ( $accepted_args == 0 )
$the_args = NULL;
else
$the_args = $all_args;
$string = call_user_func_array($function_name, $the_args);
}
}
}
return $string;
}
function add_filter($tag, $function_to_add, $priority = 10, $accepted_args = 1) {
global $wp_filter;
// check that we don't already have the same filter at the same priority
if ( isset($wp_filter[$tag]["$priority"]) ) {
foreach($wp_filter[$tag]["$priority"] as $filter) {
// uncomment if we want to match function AND accepted_args
// if ( $filter == array($function, $accepted_args) ) {
if ( $filter['function'] == $function_to_add ) {
return true;
}
}
}
// So the format is wp_filter['tag']['array of priorities']['array of ['array (functions, accepted_args)]']
$wp_filter[$tag]["$priority"][] = array('function'=>$function_to_add, 'accepted_args'=>$accepted_args);
return true;
}
function remove_filter($tag, $function_to_remove, $priority = 10, $accepted_args = 1) {
global $wp_filter;
// rebuild the list of filters
if ( isset($wp_filter[$tag]["$priority"]) ) {
foreach($wp_filter[$tag]["$priority"] as $filter) {
if ( $filter['function'] != $function_to_remove ) {
$new_function_list[] = $filter;
}
}
$wp_filter[$tag]["$priority"] = $new_function_list;
}
return true;
}
// The *_action functions are just aliases for the *_filter functions, they take special strings instead of generic content
function do_action($tag, $arg = '') {
global $wp_filter;
$extra_args = array_slice(func_get_args(), 2);
if ( is_array($arg) )
$args = array_merge($arg, $extra_args);
else
$args = array_merge(array($arg), $extra_args);
merge_filters($tag);
if ( !isset($wp_filter[$tag]) ) {
return;
}
foreach ($wp_filter[$tag] as $priority => $functions) {
if ( !is_null($functions) ) {
foreach($functions as $function) {
$function_name = $function['function'];
$accepted_args = $function['accepted_args'];
if ( $accepted_args == 1 ) {
if ( is_array($arg) )
$the_args = $arg;
else
$the_args = array($arg);
} elseif ( $accepted_args > 1 ) {
$the_args = array_slice($args, 0, $accepted_args);
} elseif ( $accepted_args == 0 ) {
$the_args = NULL;
} else {
$the_args = $args;
}
$string = call_user_func_array($function_name, $the_args);
}
}
}
}
function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1) {
add_filter($tag, $function_to_add, $priority, $accepted_args);
}
function remove_action($tag, $function_to_remove, $priority = 10, $accepted_args = 1) {
remove_filter($tag, $function_to_remove, $priority, $accepted_args);
}
function get_page_uri($page_id) {
$page = get_page($page_id);
$uri = urldecode($page->post_name);
// A page cannot be it's own parent.
if ( $page->post_parent == $page->ID )
return $uri;
while ($page->post_parent != 0) {
$page = get_page($page->post_parent);
$uri = urldecode($page->post_name) . "/" . $uri;
}
return $uri;
}
function get_posts($args) {
global $wpdb;
parse_str($args, $r);
if ( !isset($r['numberposts']) )
$r['numberposts'] = 5;
if ( !isset($r['offset']) )
$r['offset'] = 0;
if ( !isset($r['category']) )
$r['category'] = '';
if ( !isset($r['orderby']) )
$r['orderby'] = 'post_date';
if ( !isset($r['order']) )
$r['order'] = 'DESC';
$now = current_time('mysql');
$posts = $wpdb->get_results(
"SELECT DISTINCT * FROM $wpdb->posts " .
( empty( $r['category'] ) ? "" : ", $wpdb->post2cat " ) .
" WHERE post_date <= '$now' AND (post_status = 'publish') ".
( empty( $r['category'] ) ? "" : "AND $wpdb->posts.ID = $wpdb->post2cat.post_id AND $wpdb->post2cat.category_id = " . $r['category']. " " ) .
" GROUP BY $wpdb->posts.ID ORDER BY " . $r['orderby'] . " " . $r['order'] . " LIMIT " . $r['offset'] . ',' . $r['numberposts'] );
update_post_caches($posts);
return $posts;
}
function &query_posts($query) {
global $wp_query;
return $wp_query->query($query);
}
function update_post_cache(&$posts) {
global $post_cache;
if ( !$posts )
return;
for ($i = 0; $i < count($posts); $i++) {
$post_cache[$posts[$i]->ID] = &$posts[$i];
}
}
function clean_post_cache($id) {
global $post_cache;
if ( isset( $post_cache[$id] ) )
unset( $post_cache[$id] );
}
function update_page_cache(&$pages) {
global $page_cache;
if ( !$pages )
return;
for ($i = 0; $i < count($pages); $i++) {
$page_cache[$pages[$i]->ID] = &$pages[$i];
wp_cache_add($pages[$i]->ID, $pages[$i], 'pages');
}
}
function clean_page_cache($id) {
global $page_cache;
if ( isset( $page_cache[$id] ) )
unset( $page_cache[$id] );
}
function update_post_category_cache($post_ids) {
global $wpdb, $category_cache;
if ( empty($post_ids) )
return;
if ( is_array($post_ids) )
$post_ids = implode(',', $post_ids);
$dogs = $wpdb->get_results("SELECT post_id, category_id FROM $wpdb->post2cat WHERE post_id IN ($post_ids)");
if ( empty($dogs) )
return;
foreach ($dogs as $catt)
$category_cache[$catt->post_id][$catt->category_id] = &get_category($catt->category_id);
}
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 = $version[1];
else
$version ='';
if ( preg_match("|Status:(.*)|i", $theme_data, $status) )
$status = $status[1];
else
$status ='publish';
$description = wptexturize($description[1]);
$name = $theme_name[1];
$name = trim($name);
$theme = $name;
if ( '' == $author_uri[1] ) {
$author = $author_name[1];
} else {
$author = '' . $author_name[1] . '';
}
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 ( strstr($uri, '?') ) {
$parts = explode('?', $uri, 2);
if ( 1 == count($parts) ) {
$base = '?';
$query = $parts[0];
} else {
$base = $parts[0] . '?';
$query = $parts[1];
}
}
else if ( 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 = $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;
}
?>
|