mirror of
https://github.com/WordPress/WordPress.git
synced 2025-01-03 06:57:35 +01:00
Reworg post/page/attachment functions. #2525
git-svn-id: http://svn.automattic.com/wordpress/trunk@3851 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
741934931d
commit
3c8ed766e1
@ -195,6 +195,52 @@ function wp_allow_comment($commentdata) {
|
||||
return $approved;
|
||||
}
|
||||
|
||||
function wp_blacklist_check($author, $email, $url, $comment, $user_ip, $user_agent) {
|
||||
global $wpdb;
|
||||
|
||||
do_action('wp_blacklist_check', $author, $email, $url, $comment, $user_ip, $user_agent);
|
||||
|
||||
if ( preg_match_all('/&#(\d+);/', $comment . $author . $url, $chars) ) {
|
||||
foreach ($chars[1] as $char) {
|
||||
// If it's an encoded char in the normal ASCII set, reject
|
||||
if ( 38 == $char )
|
||||
continue; // Unless it's &
|
||||
if ($char < 128)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
$mod_keys = trim( get_settings('blacklist_keys') );
|
||||
if ('' == $mod_keys )
|
||||
return false; // If moderation keys are empty
|
||||
$words = explode("\n", $mod_keys );
|
||||
|
||||
foreach ($words as $word) {
|
||||
$word = trim($word);
|
||||
|
||||
// Skip empty lines
|
||||
if ( empty($word) ) { continue; }
|
||||
|
||||
// Do some escaping magic so that '#' chars in the
|
||||
// spam words don't break things:
|
||||
$word = preg_quote($word, '#');
|
||||
|
||||
$pattern = "#$word#i";
|
||||
if ( preg_match($pattern, $author ) ) return true;
|
||||
if ( preg_match($pattern, $email ) ) return true;
|
||||
if ( preg_match($pattern, $url ) ) return true;
|
||||
if ( preg_match($pattern, $comment ) ) return true;
|
||||
if ( preg_match($pattern, $user_ip ) ) return true;
|
||||
if ( preg_match($pattern, $user_agent) ) return true;
|
||||
}
|
||||
|
||||
if ( isset($_SERVER['REMOTE_ADDR']) ) {
|
||||
if ( wp_proxy_check($_SERVER['REMOTE_ADDR']) ) return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function wp_delete_comment($comment_id) {
|
||||
global $wpdb;
|
||||
do_action('delete_comment', $comment_id);
|
||||
|
@ -340,303 +340,6 @@ function delete_option($name) {
|
||||
return true;
|
||||
}
|
||||
|
||||
function add_post_meta($post_id, $key, $value, $unique = false) {
|
||||
global $wpdb, $post_meta_cache;
|
||||
|
||||
if ( $unique ) {
|
||||
if ( $wpdb->get_var("SELECT meta_key FROM $wpdb->postmeta WHERE meta_key
|
||||
= '$key' AND post_id = '$post_id'") ) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$original = $value;
|
||||
if ( is_array($value) || is_object($value) )
|
||||
$value = $wpdb->escape(serialize($value));
|
||||
|
||||
$wpdb->query("INSERT INTO $wpdb->postmeta (post_id,meta_key,meta_value) VALUES ('$post_id','$key','$value')");
|
||||
|
||||
$post_meta_cache['$post_id'][$key][] = $original;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function delete_post_meta($post_id, $key, $value = '') {
|
||||
global $wpdb, $post_meta_cache;
|
||||
|
||||
if ( empty($value) ) {
|
||||
$meta_id = $wpdb->get_var("SELECT meta_id FROM $wpdb->postmeta WHERE
|
||||
post_id = '$post_id' AND meta_key = '$key'");
|
||||
} else {
|
||||
$meta_id = $wpdb->get_var("SELECT meta_id FROM $wpdb->postmeta WHERE
|
||||
post_id = '$post_id' AND meta_key = '$key' AND meta_value = '$value'");
|
||||
}
|
||||
|
||||
if ( !$meta_id )
|
||||
return false;
|
||||
|
||||
if ( empty($value) ) {
|
||||
$wpdb->query("DELETE FROM $wpdb->postmeta WHERE post_id = '$post_id'
|
||||
AND meta_key = '$key'");
|
||||
unset($post_meta_cache['$post_id'][$key]);
|
||||
} else {
|
||||
$wpdb->query("DELETE FROM $wpdb->postmeta WHERE post_id = '$post_id'
|
||||
AND meta_key = '$key' AND meta_value = '$value'");
|
||||
$cache_key = $post_meta_cache['$post_id'][$key];
|
||||
if ($cache_key) foreach ( $cache_key as $index => $data )
|
||||
if ( $data == $value )
|
||||
unset($post_meta_cache['$post_id'][$key][$index]);
|
||||
}
|
||||
|
||||
unset($post_meta_cache['$post_id'][$key]);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function get_post_meta($post_id, $key, $single = false) {
|
||||
global $wpdb, $post_meta_cache;
|
||||
|
||||
if ( isset($post_meta_cache[$post_id][$key]) ) {
|
||||
if ( $single ) {
|
||||
return maybe_unserialize( $post_meta_cache[$post_id][$key][0] );
|
||||
} else {
|
||||
return maybe_unserialize( $post_meta_cache[$post_id][$key] );
|
||||
}
|
||||
}
|
||||
|
||||
$metalist = $wpdb->get_results("SELECT meta_value FROM $wpdb->postmeta WHERE post_id = '$post_id' AND meta_key = '$key'", ARRAY_N);
|
||||
|
||||
$values = array();
|
||||
if ( $metalist ) {
|
||||
foreach ($metalist as $metarow) {
|
||||
$values[] = $metarow[0];
|
||||
}
|
||||
}
|
||||
|
||||
if ( $single ) {
|
||||
if ( count($values) ) {
|
||||
$return = maybe_unserialize( $values[0] );
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
} else {
|
||||
$return = $values;
|
||||
}
|
||||
|
||||
return maybe_unserialize($return);
|
||||
}
|
||||
|
||||
function update_post_meta($post_id, $key, $value, $prev_value = '') {
|
||||
global $wpdb, $post_meta_cache;
|
||||
|
||||
$original_value = $value;
|
||||
if ( is_array($value) || is_object($value) )
|
||||
$value = $wpdb->escape(serialize($value));
|
||||
|
||||
$original_prev = $prev_value;
|
||||
if ( is_array($prev_value) || is_object($prev_value) )
|
||||
$prev_value = $wpdb->escape(serialize($prev_value));
|
||||
|
||||
if (! $wpdb->get_var("SELECT meta_key FROM $wpdb->postmeta WHERE meta_key
|
||||
= '$key' AND post_id = '$post_id'") ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( empty($prev_value) ) {
|
||||
$wpdb->query("UPDATE $wpdb->postmeta SET meta_value = '$value' WHERE
|
||||
meta_key = '$key' AND post_id = '$post_id'");
|
||||
$cache_key = $post_meta_cache['$post_id'][$key];
|
||||
if ( !empty($cache_key) )
|
||||
foreach ($cache_key as $index => $data)
|
||||
$post_meta_cache['$post_id'][$key][$index] = $original_value;
|
||||
} else {
|
||||
$wpdb->query("UPDATE $wpdb->postmeta SET meta_value = '$value' WHERE
|
||||
meta_key = '$key' AND post_id = '$post_id' AND meta_value = '$prev_value'");
|
||||
$cache_key = $post_meta_cache['$post_id'][$key];
|
||||
if ( !empty($cache_key) )
|
||||
foreach ($cache_key as $index => $data)
|
||||
if ( $data == $original_prev )
|
||||
$post_meta_cache['$post_id'][$key][$index] = $original_value;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Retrieves post data given a post ID or post object.
|
||||
// Handles post caching.
|
||||
function &get_post(&$post, $output = OBJECT) {
|
||||
global $post_cache, $wpdb;
|
||||
|
||||
if ( empty($post) ) {
|
||||
if ( isset($GLOBALS['post']) )
|
||||
$_post = & $GLOBALS['post'];
|
||||
else
|
||||
$_post = null;
|
||||
} elseif ( is_object($post) ) {
|
||||
if ( 'page' == $post->post_type )
|
||||
return get_page($post, $output);
|
||||
if ( !isset($post_cache[$post->ID]) )
|
||||
$post_cache[$post->ID] = &$post;
|
||||
$_post = & $post_cache[$post->ID];
|
||||
} else {
|
||||
if ( $_post = wp_cache_get($post, 'pages') )
|
||||
return get_page($_post, $output);
|
||||
elseif ( isset($post_cache[$post]) )
|
||||
$_post = & $post_cache[$post];
|
||||
else {
|
||||
$query = "SELECT * FROM $wpdb->posts WHERE ID = '$post' LIMIT 1";
|
||||
$_post = & $wpdb->get_row($query);
|
||||
if ( 'page' == $_post->post_type )
|
||||
return get_page($_post, $output);
|
||||
$post_cache[$post] = & $_post;
|
||||
}
|
||||
}
|
||||
|
||||
if ( defined(WP_IMPORTING) )
|
||||
unset($post_cache);
|
||||
|
||||
if ( $output == OBJECT ) {
|
||||
return $_post;
|
||||
} elseif ( $output == ARRAY_A ) {
|
||||
return get_object_vars($_post);
|
||||
} elseif ( $output == ARRAY_N ) {
|
||||
return array_values(get_object_vars($_post));
|
||||
} else {
|
||||
return $_post;
|
||||
}
|
||||
}
|
||||
|
||||
function &get_children($post = 0, $output = OBJECT) {
|
||||
global $post_cache, $wpdb;
|
||||
|
||||
if ( empty($post) ) {
|
||||
if ( isset($GLOBALS['post']) )
|
||||
$post_parent = & $GLOBALS['post']->post_parent;
|
||||
else
|
||||
return false;
|
||||
} elseif ( is_object($post) ) {
|
||||
$post_parent = $post->post_parent;
|
||||
} else {
|
||||
$post_parent = $post;
|
||||
}
|
||||
|
||||
$post_parent = (int) $post_parent;
|
||||
|
||||
$query = "SELECT * FROM $wpdb->posts WHERE post_parent = $post_parent";
|
||||
|
||||
$children = $wpdb->get_results($query);
|
||||
|
||||
if ( $children ) {
|
||||
foreach ( $children as $key => $child ) {
|
||||
$post_cache[$child->ID] =& $children[$key];
|
||||
$kids[$child->ID] =& $children[$key];
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( $output == OBJECT ) {
|
||||
return $kids;
|
||||
} elseif ( $output == ARRAY_A ) {
|
||||
foreach ( $kids as $kid )
|
||||
$weeuns[$kid->ID] = get_object_vars($kids[$kid->ID]);
|
||||
return $weeuns;
|
||||
} elseif ( $output == ARRAY_N ) {
|
||||
foreach ( $kids as $kid )
|
||||
$babes[$kid->ID] = array_values(get_object_vars($kids[$kid->ID]));
|
||||
return $babes;
|
||||
} else {
|
||||
return $kids;
|
||||
}
|
||||
}
|
||||
|
||||
function get_page_by_path($page_path, $output = OBJECT) {
|
||||
global $wpdb;
|
||||
$page_path = rawurlencode(urldecode($page_path));
|
||||
$page_path = str_replace('%2F', '/', $page_path);
|
||||
$page_path = str_replace('%20', ' ', $page_path);
|
||||
$page_paths = '/' . trim($page_path, '/');
|
||||
$leaf_path = sanitize_title(basename($page_paths));
|
||||
$page_paths = explode('/', $page_paths);
|
||||
foreach($page_paths as $pathdir)
|
||||
$full_path .= ($pathdir!=''?'/':'') . sanitize_title($pathdir);
|
||||
|
||||
$pages = $wpdb->get_results("SELECT ID, post_name, post_parent FROM $wpdb->posts WHERE post_name = '$leaf_path' AND post_type='page'");
|
||||
|
||||
if ( empty($pages) )
|
||||
return NULL;
|
||||
|
||||
foreach ($pages as $page) {
|
||||
$path = '/' . $leaf_path;
|
||||
$curpage = $page;
|
||||
while ($curpage->post_parent != 0) {
|
||||
$curpage = $wpdb->get_row("SELECT ID, post_name, post_parent FROM $wpdb->posts WHERE ID = '$curpage->post_parent' and post_type='page'");
|
||||
$path = '/' . $curpage->post_name . $path;
|
||||
}
|
||||
|
||||
if ( $path == $full_path )
|
||||
return get_page($page->ID, $output);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Retrieves page data given a page ID or page object.
|
||||
// Handles page caching.
|
||||
function &get_page(&$page, $output = OBJECT) {
|
||||
global $wpdb;
|
||||
|
||||
if ( empty($page) ) {
|
||||
if ( isset($GLOBALS['page']) ) {
|
||||
$_page = & $GLOBALS['page'];
|
||||
wp_cache_add($_page->ID, $_page, 'pages');
|
||||
} else {
|
||||
$_page = null;
|
||||
}
|
||||
} elseif ( is_object($page) ) {
|
||||
if ( 'post' == $page->post_type )
|
||||
return get_post($page, $output);
|
||||
wp_cache_add($page->ID, $page, 'pages');
|
||||
$_page = $page;
|
||||
} else {
|
||||
if ( isset($GLOBALS['page']) && ($page == $GLOBALS['page']->ID) ) {
|
||||
$_page = & $GLOBALS['page'];
|
||||
wp_cache_add($_page->ID, $_page, 'pages');
|
||||
} elseif ( $_page = $GLOBALS['post_cache'][$page] ) {
|
||||
return get_post($page, $output);
|
||||
} elseif ( $_page = wp_cache_get($page, 'pages') ) {
|
||||
// Got it.
|
||||
} else {
|
||||
$query = "SELECT * FROM $wpdb->posts WHERE ID= '$page' LIMIT 1";
|
||||
$_page = & $wpdb->get_row($query);
|
||||
if ( 'post' == $_page->post_type )
|
||||
return get_post($_page, $output);
|
||||
wp_cache_add($_page->ID, $_page, 'pages');
|
||||
}
|
||||
}
|
||||
|
||||
if ( $output == OBJECT ) {
|
||||
return $_page;
|
||||
} elseif ( $output == ARRAY_A ) {
|
||||
return get_object_vars($_page);
|
||||
} elseif ( $output == ARRAY_N ) {
|
||||
return array_values(get_object_vars($_page));
|
||||
} else {
|
||||
return $_page;
|
||||
}
|
||||
}
|
||||
|
||||
function get_all_page_ids() {
|
||||
global $wpdb;
|
||||
|
||||
if ( ! $page_ids = wp_cache_get('all_page_ids', 'pages') ) {
|
||||
$page_ids = $wpdb->get_col("SELECT ID FROM $wpdb->posts WHERE post_type = 'page'");
|
||||
wp_cache_add('all_page_ids', $page_ids, 'pages');
|
||||
}
|
||||
|
||||
return $page_ids;
|
||||
}
|
||||
|
||||
function gzip_compression() {
|
||||
if ( !get_settings('gzipcompression') ) return false;
|
||||
|
||||
@ -1274,14 +977,6 @@ function update_category_cache() {
|
||||
return true;
|
||||
}
|
||||
|
||||
function wp_head() {
|
||||
do_action('wp_head');
|
||||
}
|
||||
|
||||
function wp_footer() {
|
||||
do_action('wp_footer');
|
||||
}
|
||||
|
||||
/*
|
||||
add_query_arg: Returns a modified querystring by adding
|
||||
a single key & value or an associative array.
|
||||
@ -1600,4 +1295,189 @@ function wp_nonce_field($action = -1) {
|
||||
echo '<input type="hidden" name="_wpnonce" value="' . wp_create_nonce($action) . '" />';
|
||||
}
|
||||
|
||||
function wp_mkdir_p($target) {
|
||||
// from php.net/mkdir user contributed notes
|
||||
if (file_exists($target)) {
|
||||
if (! @ is_dir($target))
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
// Attempting to create the directory may clutter up our display.
|
||||
if (@ mkdir($target)) {
|
||||
$stat = @ stat(dirname($target));
|
||||
$dir_perms = $stat['mode'] & 0007777; // Get the permission bits.
|
||||
@ chmod($target, $dir_perms);
|
||||
return true;
|
||||
} else {
|
||||
if ( is_dir(dirname($target)) )
|
||||
return false;
|
||||
}
|
||||
|
||||
// If the above failed, attempt to create the parent node, then try again.
|
||||
if (wp_mkdir_p(dirname($target)))
|
||||
return wp_mkdir_p($target);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// Returns an array containing the current upload directory's path and url, or an error message.
|
||||
function wp_upload_dir() {
|
||||
$siteurl = get_settings('siteurl');
|
||||
//prepend ABSPATH to $dir and $siteurl to $url if they're not already there
|
||||
$path = str_replace(ABSPATH, '', trim(get_settings('upload_path')));
|
||||
$dir = ABSPATH . $path;
|
||||
$url = trailingslashit($siteurl) . $path;
|
||||
|
||||
if ( $dir == ABSPATH ) { //the option was empty
|
||||
$dir = ABSPATH . 'wp-content/uploads';
|
||||
}
|
||||
|
||||
if ( defined('UPLOADS') ) {
|
||||
$dir = ABSPATH . UPLOADS;
|
||||
$url = trailingslashit($siteurl) . UPLOADS;
|
||||
}
|
||||
|
||||
if ( get_settings('uploads_use_yearmonth_folders')) {
|
||||
// Generate the yearly and monthly dirs
|
||||
$time = current_time( 'mysql' );
|
||||
$y = substr( $time, 0, 4 );
|
||||
$m = substr( $time, 5, 2 );
|
||||
$dir = $dir . "/$y/$m";
|
||||
$url = $url . "/$y/$m";
|
||||
}
|
||||
|
||||
// Make sure we have an uploads dir
|
||||
if ( ! wp_mkdir_p( $dir ) ) {
|
||||
$message = sprintf(__('Unable to create directory %s. Is its parent directory writable by the server?'), $dir);
|
||||
return array('error' => $message);
|
||||
}
|
||||
|
||||
$uploads = array('path' => $dir, 'url' => $url, 'error' => false);
|
||||
return apply_filters('upload_dir', $uploads);
|
||||
}
|
||||
|
||||
function wp_upload_bits($name, $type, $bits) {
|
||||
if ( empty($name) )
|
||||
return array('error' => "Empty filename");
|
||||
|
||||
$upload = wp_upload_dir();
|
||||
|
||||
if ( $upload['error'] !== false )
|
||||
return $upload;
|
||||
|
||||
$number = '';
|
||||
$filename = $name;
|
||||
$path_parts = pathinfo($filename);
|
||||
$ext = $path_parts['extension'];
|
||||
if ( empty($ext) )
|
||||
$ext = '';
|
||||
else
|
||||
$ext = ".$ext";
|
||||
while ( file_exists($upload['path'] . "/$filename") ) {
|
||||
if ( '' == "$number$ext" )
|
||||
$filename = $filename . ++$number . $ext;
|
||||
else
|
||||
$filename = str_replace("$number$ext", ++$number . $ext, $filename);
|
||||
}
|
||||
|
||||
$new_file = $upload['path'] . "/$filename";
|
||||
if ( ! wp_mkdir_p( dirname($new_file) ) ) {
|
||||
$message = sprintf(__('Unable to create directory %s. Is its parent directory writable by the server?'), dirname($new_file));
|
||||
return array('error' => $message);
|
||||
}
|
||||
|
||||
$ifp = @ fopen($new_file, 'wb');
|
||||
if ( ! $ifp )
|
||||
return array('error' => "Could not write file $new_file.");
|
||||
|
||||
$success = @ fwrite($ifp, $bits);
|
||||
fclose($ifp);
|
||||
// Set correct file permissions
|
||||
$stat = @ stat(dirname($new_file));
|
||||
$perms = $stat['mode'] & 0007777;
|
||||
$perms = $perms & 0000666;
|
||||
@ chmod($new_file, $perms);
|
||||
|
||||
// Compute the URL
|
||||
$url = $upload['url'] . "/$filename";
|
||||
|
||||
return array('file' => $new_file, 'url' => $url, 'error' => false);
|
||||
}
|
||||
|
||||
function do_trackbacks($post_id) {
|
||||
global $wpdb;
|
||||
|
||||
$post = $wpdb->get_row("SELECT * FROM $wpdb->posts WHERE ID = $post_id");
|
||||
$to_ping = get_to_ping($post_id);
|
||||
$pinged = get_pung($post_id);
|
||||
if ( empty($to_ping) ) {
|
||||
$wpdb->query("UPDATE $wpdb->posts SET to_ping = '' WHERE ID = '$post_id'");
|
||||
return;
|
||||
}
|
||||
|
||||
if (empty($post->post_excerpt))
|
||||
$excerpt = apply_filters('the_content', $post->post_content);
|
||||
else
|
||||
$excerpt = apply_filters('the_excerpt', $post->post_excerpt);
|
||||
$excerpt = str_replace(']]>', ']]>', $excerpt);
|
||||
$excerpt = strip_tags($excerpt);
|
||||
if ( function_exists('mb_strcut') ) // For international trackbacks
|
||||
$excerpt = mb_strcut($excerpt, 0, 252, get_settings('blog_charset')) . '...';
|
||||
else
|
||||
$excerpt = substr($excerpt, 0, 252) . '...';
|
||||
|
||||
$post_title = apply_filters('the_title', $post->post_title);
|
||||
$post_title = strip_tags($post_title);
|
||||
|
||||
if ($to_ping) : foreach ($to_ping as $tb_ping) :
|
||||
$tb_ping = trim($tb_ping);
|
||||
if ( !in_array($tb_ping, $pinged) ) {
|
||||
trackback($tb_ping, $post_title, $excerpt, $post_id);
|
||||
$pinged[] = $tb_ping;
|
||||
} else {
|
||||
$wpdb->query("UPDATE $wpdb->posts SET to_ping = TRIM(REPLACE(to_ping, '$tb_ping', '')) WHERE ID = '$post_id'");
|
||||
}
|
||||
endforeach; endif;
|
||||
}
|
||||
|
||||
function do_all_pings() {
|
||||
global $wpdb;
|
||||
|
||||
// Do pingbacks
|
||||
while ($ping = $wpdb->get_row("SELECT * FROM {$wpdb->posts}, {$wpdb->postmeta} WHERE {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id AND {$wpdb->postmeta}.meta_key = '_pingme' LIMIT 1")) {
|
||||
$wpdb->query("DELETE FROM {$wpdb->postmeta} WHERE post_id = {$ping->ID} AND meta_key = '_pingme';");
|
||||
pingback($ping->post_content, $ping->ID);
|
||||
}
|
||||
|
||||
// Do Enclosures
|
||||
while ($enclosure = $wpdb->get_row("SELECT * FROM {$wpdb->posts}, {$wpdb->postmeta} WHERE {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id AND {$wpdb->postmeta}.meta_key = '_encloseme' LIMIT 1")) {
|
||||
$wpdb->query("DELETE FROM {$wpdb->postmeta} WHERE post_id = {$enclosure->ID} AND meta_key = '_encloseme';");
|
||||
do_enclose($enclosure->post_content, $enclosure->ID);
|
||||
}
|
||||
|
||||
// Do Trackbacks
|
||||
$trackbacks = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE CHAR_LENGTH(TRIM(to_ping)) > 7 AND post_status = 'publish'");
|
||||
if ( is_array($trackbacks) ) {
|
||||
foreach ( $trackbacks as $trackback ) {
|
||||
do_trackbacks($trackback->ID);
|
||||
}
|
||||
}
|
||||
|
||||
//Do Update Services/Generic Pings
|
||||
generic_ping();
|
||||
}
|
||||
|
||||
function wp_proxy_check($ipnum) {
|
||||
if ( get_option('open_proxy_check') && isset($ipnum) ) {
|
||||
$rev_ip = implode( '.', array_reverse( explode( '.', $ipnum ) ) );
|
||||
$lookup = $rev_ip . '.opm.blitzed.org.';
|
||||
if ( $lookup != gethostbyname( $lookup ) )
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
?>
|
||||
|
@ -1,25 +1,21 @@
|
||||
<?php
|
||||
|
||||
function get_the_password_form() {
|
||||
$output = '<form action="' . get_settings('siteurl') . '/wp-pass.php" method="post">
|
||||
<p>' . __("This post is password protected. To view it please enter your password below:") . '</p>
|
||||
<p><label>' . __("Password:") . ' <input name="post_password" type="password" size="20" /></label> <input type="submit" name="Submit" value="' . __("Submit") . '" /></p>
|
||||
</form>
|
||||
';
|
||||
return $output;
|
||||
}
|
||||
|
||||
//
|
||||
// "The Loop" post functions
|
||||
//
|
||||
|
||||
function the_ID() {
|
||||
global $id;
|
||||
echo $id;
|
||||
}
|
||||
|
||||
|
||||
function get_the_ID() {
|
||||
global $id;
|
||||
return $id;
|
||||
}
|
||||
|
||||
|
||||
function the_title($before = '', $after = '', $echo = true) {
|
||||
$title = get_the_title();
|
||||
if ( strlen($title) > 0 ) {
|
||||
@ -42,6 +38,9 @@ function get_the_title($id = 0) {
|
||||
return $title;
|
||||
}
|
||||
|
||||
function the_guid( $id = 0 ) {
|
||||
echo get_the_guid($id);
|
||||
}
|
||||
|
||||
function get_the_guid( $id = 0 ) {
|
||||
$post = &get_post($id);
|
||||
@ -49,12 +48,6 @@ function get_the_guid( $id = 0 ) {
|
||||
return apply_filters('get_the_guid', $post->guid);
|
||||
}
|
||||
|
||||
|
||||
function the_guid( $id = 0 ) {
|
||||
echo get_the_guid($id);
|
||||
}
|
||||
|
||||
|
||||
function the_content($more_link_text = '(more...)', $stripteaser = 0, $more_file = '') {
|
||||
$content = get_the_content($more_link_text, $stripteaser, $more_file);
|
||||
$content = apply_filters('the_content', $content);
|
||||
@ -190,59 +183,9 @@ function link_pages($before='<br />', $after='<br />', $next_or_number='number',
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Post-meta: Custom per-post fields.
|
||||
*/
|
||||
|
||||
|
||||
function get_post_custom( $post_id = 0 ) {
|
||||
global $id, $post_meta_cache, $wpdb;
|
||||
|
||||
if ( ! $post_id )
|
||||
$post_id = $id;
|
||||
|
||||
if ( isset($post_meta_cache[$post_id]) )
|
||||
return $post_meta_cache[$post_id];
|
||||
|
||||
if ( $meta_list = $wpdb->get_results("SELECT post_id, meta_key, meta_value FROM $wpdb->postmeta WHERE post_id = '$post_id' 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;
|
||||
}
|
||||
return $post_meta_cache[$mpid];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function get_post_custom_keys() {
|
||||
$custom = get_post_custom();
|
||||
|
||||
if ( ! is_array($custom) )
|
||||
return;
|
||||
|
||||
if ( $keys = array_keys($custom) )
|
||||
return $keys;
|
||||
}
|
||||
|
||||
|
||||
function get_post_custom_values( $key = '' ) {
|
||||
$custom = get_post_custom();
|
||||
|
||||
return $custom[$key];
|
||||
}
|
||||
//
|
||||
// Post-meta: Custom per-post fields.
|
||||
//
|
||||
|
||||
|
||||
function post_custom( $key = '' ) {
|
||||
@ -274,107 +217,9 @@ function the_meta() {
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Pages
|
||||
*/
|
||||
|
||||
function walk_page_tree() {
|
||||
$walker = new Walker_Page;
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array(&$walker, 'walk'), $args);
|
||||
}
|
||||
|
||||
function walk_page_dropdown_tree() {
|
||||
$walker = new Walker_PageDropdown;
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array(&$walker, 'walk'), $args);
|
||||
}
|
||||
|
||||
function &get_page_children($page_id, $pages) {
|
||||
global $page_cache;
|
||||
|
||||
if ( empty($pages) )
|
||||
$pages = &$page_cache;
|
||||
|
||||
$page_list = array();
|
||||
foreach ( $pages as $page ) {
|
||||
if ( $page->post_parent == $page_id ) {
|
||||
$page_list[] = $page;
|
||||
if ( $children = get_page_children($page->ID, $pages) )
|
||||
$page_list = array_merge($page_list, $children);
|
||||
}
|
||||
}
|
||||
return $page_list;
|
||||
}
|
||||
|
||||
|
||||
function &get_pages($args = '') {
|
||||
global $wpdb;
|
||||
|
||||
if ( is_array($args) )
|
||||
$r = &$args;
|
||||
else
|
||||
parse_str($args, $r);
|
||||
|
||||
$defaults = array('child_of' => 0, 'sort_order' => 'ASC', 'sort_column' => 'post_title',
|
||||
'hierarchical' => 1, 'exclude' => '', 'include' => '', 'meta_key' => '', 'meta_value' => '');
|
||||
$r = array_merge($defaults, $r);
|
||||
extract($r);
|
||||
|
||||
$inclusions = '';
|
||||
if ( !empty($include) ) {
|
||||
$child_of = 0; //ignore child_of, exclude, meta_key, and meta_value params if using include
|
||||
$exclude = '';
|
||||
$meta_key = '';
|
||||
$meta_value = '';
|
||||
$incpages = preg_split('/[\s,]+/',$include);
|
||||
if ( count($incpages) ) {
|
||||
foreach ( $incpages as $incpage ) {
|
||||
if (empty($inclusions))
|
||||
$inclusions = ' AND ( ID = ' . intval($incpage) . ' ';
|
||||
else
|
||||
$inclusions .= ' OR ID = ' . intval($incpage) . ' ';
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!empty($inclusions))
|
||||
$inclusions .= ')';
|
||||
|
||||
$exclusions = '';
|
||||
if ( !empty($exclude) ) {
|
||||
$expages = preg_split('/[\s,]+/',$exclude);
|
||||
if ( count($expages) ) {
|
||||
foreach ( $expages as $expage ) {
|
||||
if (empty($exclusions))
|
||||
$exclusions = ' AND ( ID <> ' . intval($expage) . ' ';
|
||||
else
|
||||
$exclusions .= ' AND ID <> ' . intval($expage) . ' ';
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!empty($exclusions))
|
||||
$exclusions .= ')';
|
||||
|
||||
$query = "SELECT * FROM $wpdb->posts " ;
|
||||
$query .= ( empty( $meta_key ) ? "" : ", $wpdb->postmeta " ) ;
|
||||
$query .= " WHERE (post_type = 'page' AND post_status = 'publish') $exclusions $inclusions " ;
|
||||
$query .= ( empty( $meta_key ) | empty($meta_value) ? "" : " AND ($wpdb->posts.ID = $wpdb->postmeta.post_id AND $wpdb->postmeta.meta_key = '$meta_key' AND $wpdb->postmeta.meta_value = '$meta_value' )" ) ;
|
||||
$query .= " ORDER BY " . $sort_column . " " . $sort_order ;
|
||||
|
||||
$pages = $wpdb->get_results($query);
|
||||
$pages = apply_filters('get_pages', $pages, $r);
|
||||
|
||||
if ( empty($pages) )
|
||||
return array();
|
||||
|
||||
// Update cache.
|
||||
update_page_cache($pages);
|
||||
|
||||
if ( $child_of || $hierarchical )
|
||||
$pages = & get_page_children($child_of, $pages);
|
||||
|
||||
return $pages;
|
||||
}
|
||||
//
|
||||
// Pages
|
||||
//
|
||||
|
||||
function wp_dropdown_pages($args = '') {
|
||||
if ( is_array($args) )
|
||||
@ -439,6 +284,26 @@ function wp_list_pages($args = '') {
|
||||
return $output;
|
||||
}
|
||||
|
||||
//
|
||||
// Page helpers
|
||||
//
|
||||
|
||||
function walk_page_tree() {
|
||||
$walker = new Walker_Page;
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array(&$walker, 'walk'), $args);
|
||||
}
|
||||
|
||||
function walk_page_dropdown_tree() {
|
||||
$walker = new Walker_PageDropdown;
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array(&$walker, 'walk'), $args);
|
||||
}
|
||||
|
||||
//
|
||||
// Attachments
|
||||
//
|
||||
|
||||
function the_attachment_link($id = 0, $fullsize = false, $max_dims = false) {
|
||||
echo get_the_attachment_link($id, $fullsize, $max_dims);
|
||||
}
|
||||
@ -561,4 +426,17 @@ function prepend_attachment($content) {
|
||||
return "$p\n$content";
|
||||
}
|
||||
|
||||
//
|
||||
// Misc
|
||||
//
|
||||
|
||||
function get_the_password_form() {
|
||||
$output = '<form action="' . get_settings('siteurl') . '/wp-pass.php" method="post">
|
||||
<p>' . __("This post is password protected. To view it please enter your password below:") . '</p>
|
||||
<p><label>' . __("Password:") . ' <input name="post_password" type="password" size="20" /></label> <input type="submit" name="Submit" value="' . __("Submit") . '" /></p>
|
||||
</form>
|
||||
';
|
||||
return $output;
|
||||
}
|
||||
|
||||
?>
|
File diff suppressed because it is too large
Load Diff
@ -155,6 +155,13 @@ function get_author_link($echo = false, $author_id, $author_nicename) {
|
||||
return $link;
|
||||
}
|
||||
|
||||
// Get author's preferred display name
|
||||
function get_author_name( $auth_id ) {
|
||||
$authordata = get_userdata( $auth_id );
|
||||
|
||||
return $authordata->display_name;
|
||||
}
|
||||
|
||||
function wp_list_authors($args = '') {
|
||||
if ( is_array($args) )
|
||||
$r = &$args;
|
||||
|
@ -694,6 +694,14 @@ function the_weekday_date($before='',$after='') {
|
||||
echo $the_weekday_date;
|
||||
}
|
||||
|
||||
function wp_head() {
|
||||
do_action('wp_head');
|
||||
}
|
||||
|
||||
function wp_footer() {
|
||||
do_action('wp_footer');
|
||||
}
|
||||
|
||||
function rsd_link() {
|
||||
echo '<link rel="EditURI" type="application/rsd+xml" title="RSD" href="' . get_bloginfo('wpurl') . "/xmlrpc.php?rsd\" />\n";
|
||||
}
|
||||
@ -703,4 +711,71 @@ function noindex() {
|
||||
if ( ! get_option('blog_public') )
|
||||
echo '<meta name="robots" content="noindex,nofollow" />' . "\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Places a textarea according to the current user's preferences, filled with $content.
|
||||
* Also places a script block that enables tabbing between Title and Content.
|
||||
*
|
||||
* @param string Editor contents
|
||||
* @param string (optional) Previous form field's ID (for tabbing support)
|
||||
*/
|
||||
function the_editor($content, $id = 'content', $prev_id = 'title') {
|
||||
$rows = get_settings('default_post_edit_rows');
|
||||
if (($rows < 3) || ($rows > 100))
|
||||
$rows = 12;
|
||||
|
||||
$rows = "rows='$rows'";
|
||||
|
||||
the_quicktags();
|
||||
|
||||
if ( user_can_richedit() )
|
||||
add_filter('the_editor_content', 'wp_richedit_pre');
|
||||
|
||||
$the_editor = apply_filters('the_editor', "<div><textarea class='mceEditor' $rows cols='40' name='$id' tabindex='2' id='$id'>%s</textarea></div>\n");
|
||||
$the_editor_content = apply_filters('the_editor_content', $content);
|
||||
|
||||
printf($the_editor, $the_editor_content);
|
||||
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
//<!--
|
||||
edCanvas = document.getElementById('<?php echo $id; ?>');
|
||||
<?php if ( user_can_richedit() ) : ?>
|
||||
// This code is meant to allow tabbing from Title to Post (TinyMCE).
|
||||
if ( tinyMCE.isMSIE )
|
||||
document.getElementById('<?php echo $prev_id; ?>').onkeydown = function (e)
|
||||
{
|
||||
e = e ? e : window.event;
|
||||
if (e.keyCode == 9 && !e.shiftKey && !e.controlKey && !e.altKey) {
|
||||
var i = tinyMCE.selectedInstance;
|
||||
if(typeof i == 'undefined')
|
||||
return true;
|
||||
tinyMCE.execCommand("mceStartTyping");
|
||||
this.blur();
|
||||
i.contentWindow.focus();
|
||||
e.returnValue = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
document.getElementById('<?php echo $prev_id; ?>').onkeypress = function (e)
|
||||
{
|
||||
e = e ? e : window.event;
|
||||
if (e.keyCode == 9 && !e.shiftKey && !e.controlKey && !e.altKey) {
|
||||
var i = tinyMCE.selectedInstance;
|
||||
if(typeof i == 'undefined')
|
||||
return true;
|
||||
tinyMCE.execCommand("mceStartTyping");
|
||||
this.blur();
|
||||
i.contentWindow.focus();
|
||||
e.returnValue = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
<?php endif; ?>
|
||||
//-->
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
|
||||
?>
|
||||
|
@ -84,6 +84,11 @@ function get_permalink($id = 0) {
|
||||
}
|
||||
}
|
||||
|
||||
// get permalink from post ID
|
||||
function post_permalink($post_id = 0, $mode = '') { // $mode legacy
|
||||
return get_permalink($post_id);
|
||||
}
|
||||
|
||||
function get_page_link($id = false) {
|
||||
global $post, $wp_rewrite;
|
||||
|
||||
|
@ -124,7 +124,6 @@ if ( !is_blog_installed() && (!strstr($_SERVER['PHP_SELF'], 'install.php') && !d
|
||||
}
|
||||
|
||||
require (ABSPATH . WPINC . '/functions-formatting.php');
|
||||
require (ABSPATH . WPINC . '/functions-post.php');
|
||||
require (ABSPATH . WPINC . '/capabilities.php');
|
||||
require (ABSPATH . WPINC . '/classes.php');
|
||||
require (ABSPATH . WPINC . '/query.php');
|
||||
@ -132,7 +131,8 @@ require (ABSPATH . WPINC . '/theme.php');
|
||||
require (ABSPATH . WPINC . '/template-functions-general.php');
|
||||
require (ABSPATH . WPINC . '/template-functions-links.php');
|
||||
require (ABSPATH . WPINC . '/template-functions-author.php');
|
||||
require (ABSPATH . WPINC . '/template-functions-post.php');
|
||||
require (ABSPATH . WPINC . '/post.php');
|
||||
require (ABSPATH . WPINC . '/post-template.php');
|
||||
require (ABSPATH . WPINC . '/category.php');
|
||||
require (ABSPATH . WPINC . '/category-template.php');
|
||||
require (ABSPATH . WPINC . '/comment.php');
|
||||
|
Loading…
Reference in New Issue
Block a user