Benvenuto nella nostra community, registra un account gratuito ADESSO!
Oltre 7000 persone hanno già registrato il loro account. Chiedi aiuto, conversa con aziende ed esperti del settore webhosting italiano.
Iscriviti subito! In meno di 2 minuti!




Risultati da 1 a 4 di 4
  1. #1
    GrG
    GrG è collegato
    Webhosting Guru L'avatar di GrG
    Data Registrazione
    Mar 2007
    Località
    Milan, Italy
    Messaggi
    5,179

    siteurl WordPress come cambiarla?

    Ho un problema:

    dovrei mettere due siti wordpress su server divers, ma con un db unico:

    funziona tutto perfettamente, ma ho un problema: wordpress si prende l'url del sito attraverso il db mysql.

    senza andare a modificare uno per uno i file che lo usano come posso farli recuperare qulla variabile dal config.php?
    Giorgio (GrG) Bonfiglio
    Cloud Evangelist, System/Network Engineer
    http://blog.grg-web.eu/ http://www.giorgio-bonfiglio.tel/



  2. #2
    Webhosting Guru L'avatar di andrea.paiola
    Data Registrazione
    Jul 2006
    Località
    Torino - Milano
    Messaggi
    3,460

    Re: siteurl WordPress come cambiarla?

    ma devono avere in comune le tabelle sul db? mi pare strano

  3. #3
    Webhosting Guru L'avatar di NikyAT1
    Data Registrazione
    Jun 2006
    Località
    Cortemaggiore (PC)
    Messaggi
    2,094

    Re: siteurl WordPress come cambiarla?

    Amministraione -> Opzioni.
    Non mi sembra così difficile. Forse non ho capito...

  4. #4
    GrG
    GrG è collegato
    Webhosting Guru L'avatar di GrG
    Data Registrazione
    Mar 2007
    Località
    Milan, Italy
    Messaggi
    5,179

    Re: siteurl WordPress come cambiarla?

    x Andrea

    Si, ma non vi posso dire il motivo perchè vi mettereste a ridere;

    X Niky

    No, non è quello


    Cerco di spiegare + velocemente:

    Allora, wordpress ha l'url del sito inserito nel db; Tutti gli url delle pagine vengono creati con $siteurl/pagina

    Io devo collegare due blog allo stesso db, stesse tabelle; I due blog logicamente hanno link diverso quindi la variabile non può essere una e devo ovviare a questo

    A questo punto la cosa più semplice penso sia beccare dove WP prende quella variabile (in che pagina .php) e modificarlo per fargliela recuperare da un file (in quel modo metto un file in ognuno dei due siti e risolvo)

    Il problema principale è che non conosco il php...

    A logica dovrebbe essere in un file tipo classes.php che poi viene incluso dagli altri, ecco quindi le pagine partendo da zero

    index.php

    Codice PHP:
    <?php
    /* Short and sweet */
    define('WP_USE_THEMES'true);
    require(
    './wp-blog-header.php');
    ?>
    wp-blog-header.php

    Codice PHP:
    <?php

    if (! isset($wp_did_header)):
    if ( !
    file_existsdirname(__FILE__) . '/wp-config.php') ) {
        if (
    strpos($_SERVER['PHP_SELF'], 'wp-admin') !== false$path '';
        else 
    $path 'wp-admin/';

        require_once( 
    dirname(__FILE__) . '/wp-includes/classes.php');
        require_once( 
    dirname(__FILE__) . '/wp-includes/functions.php');
        require_once( 
    dirname(__FILE__) . '/wp-includes/plugin.php');
        
    wp_die("There doesn't seem to be a <code>wp-config.php</code> file. I need this before we can get started. Need more help? <a href='http://codex.wordpress.org/Editing_wp-config.php'>We got it</a>. You can <a href='{$path}setup-config.php'>create a <code>wp-config.php</code> file through a web interface</a>, but this doesn't work for all server setups. The safest way is to manually create the file.""WordPress &rsaquo; Error");
    }

    $wp_did_header true;

    require_once( 
    dirname(__FILE__) . '/wp-config.php');

    wp();
    gzip_compression();

    require_once(
    ABSPATH WPINC '/template-loader.php');

    endif;

    ?>
    functions.php

    Codice PHP:
    <?php

    function mysql2date($dateformatstring$mysqlstring$translate true) {
        global 
    $wp_locale;
        
    $m $mysqlstring;
        if ( empty(
    $m) ) {
            return 
    false;
        }
        
    $i mktime(
            (int) 
    substr$m11), (int) substr$m14), (int) substr$m17),
            (int) 
    substr$m5), (int) substr$m8), (int) substr$m0)
        );

        if( 
    'U' == $dateformatstring )
            return 
    $i;

        if ( -
    == $i || false == $i )
            
    $i 0;

        if ( !empty(
    $wp_locale->month) && !empty($wp_locale->weekday) && $translate ) {
            
    $datemonth $wp_locale->get_month(date('m'$i));
            
    $datemonth_abbrev $wp_locale->get_month_abbrev($datemonth);
            
    $dateweekday $wp_locale->get_weekday(date('w'$i));
            
    $dateweekday_abbrev $wp_locale->get_weekday_abbrev($dateweekday);
            
    $datemeridiem $wp_locale->get_meridiem(date('a'$i));
            
    $datemeridiem_capital $wp_locale->get_meridiem(date('A'$i));
            
    $dateformatstring ' '.$dateformatstring;
            
    $dateformatstring preg_replace("/([^\\\])D/""\\1".backslashit($dateweekday_abbrev), $dateformatstring);
            
    $dateformatstring preg_replace("/([^\\\])F/""\\1".backslashit($datemonth), $dateformatstring);
            
    $dateformatstring preg_replace("/([^\\\])l/""\\1".backslashit($dateweekday), $dateformatstring);
            
    $dateformatstring preg_replace("/([^\\\])M/""\\1".backslashit($datemonth_abbrev), $dateformatstring);
            
    $dateformatstring preg_replace("/([^\\\])a/""\\1".backslashit($datemeridiem), $dateformatstring);
            
    $dateformatstring preg_replace("/([^\\\])A/""\\1".backslashit($datemeridiem_capital), $dateformatstring);

            
    $dateformatstring substr($dateformatstring1strlen($dateformatstring)-1);
        }
        
    $j = @date($dateformatstring$i);
        if ( !
    $j ) {
        
    // for debug purposes
        //    echo $i." ".$mysqlstring;
        
    }
        return 
    $j;
    }

    function 
    current_time($type$gmt 0) {
        switch (
    $type) {
            case 
    'mysql':
                if ( 
    $gmt $d gmdate('Y-m-d H:i:s');
                else 
    $d gmdate('Y-m-d H:i:s', (time() + (get_option('gmt_offset') * 3600)));
                return 
    $d;
                break;
            case 
    'timestamp':
                if ( 
    $gmt $d time();
                else 
    $d time() + (get_option('gmt_offset') * 3600);
                return 
    $d;
                break;
        }
    }

    function 
    date_i18n($dateformatstring$unixtimestamp) {
        global 
    $wp_locale;
        
    $i $unixtimestamp;
        if ( (!empty(
    $wp_locale->month)) && (!empty($wp_locale->weekday)) ) {
            
    $datemonth $wp_locale->get_month(date('m'$i));
            
    $datemonth_abbrev $wp_locale->get_month_abbrev($datemonth);
            
    $dateweekday $wp_locale->get_weekday(date('w'$i));
            
    $dateweekday_abbrev $wp_locale->get_weekday_abbrev($dateweekday);
            
    $datemeridiem $wp_locale->get_meridiem(date('a'$i));
            
    $datemeridiem_capital $wp_locale->get_meridiem(date('A'$i));
            
    $dateformatstring ' '.$dateformatstring;
            
    $dateformatstring preg_replace("/([^\\\])D/""\\1".backslashit($dateweekday_abbrev), $dateformatstring);
            
    $dateformatstring preg_replace("/([^\\\])F/""\\1".backslashit($datemonth), $dateformatstring);
            
    $dateformatstring preg_replace("/([^\\\])l/""\\1".backslashit($dateweekday), $dateformatstring);
            
    $dateformatstring preg_replace("/([^\\\])M/""\\1".backslashit($datemonth_abbrev), $dateformatstring);
            
    $dateformatstring preg_replace("/([^\\\])a/""\\1".backslashit($datemeridiem), $dateformatstring);
            
    $dateformatstring preg_replace("/([^\\\])A/""\\1".backslashit($datemeridiem_capital), $dateformatstring);

            
    $dateformatstring substr($dateformatstring1strlen($dateformatstring)-1);
        }
        
    $j = @date($dateformatstring$i);
        return 
    $j;
    }

    function 
    number_format_i18n($number$decimals null) {
        global 
    $wp_locale;
        
    // let the user override the precision only
        
    $decimals is_null($decimals)? $wp_locale->number_format['decimals'] : intval($decimals);

        return 
    number_format($number$decimals$wp_locale->number_format['decimal_point'], $wp_locale->number_format['thousands_sep']);
    }

    function 
    size_format($bytes$decimals null) {
        
    // technically the correct unit names for powers of 1024 are KiB, MiB etc
        // see http://en.wikipedia.org/wiki/Byte
        
    $quant = array(
            
    'TB' => pow(10244),
            
    'GB' => pow(10243),
            
    'MB' => pow(10242),
            
    'kB' => pow(10241),
            
    'B'  => pow(10240),
        );

        foreach (
    $quant as $unit => $mag)
            if ( 
    intval($bytes) >= $mag )
                return 
    number_format_i18n($bytes $mag$decimals) . ' ' $unit;
    }

    function 
    get_weekstartend($mysqlstring$start_of_week) {
        
    $my substr($mysqlstring,0,4);
        
    $mm substr($mysqlstring,8,2);
        
    $md substr($mysqlstring,5,2);
        
    $day mktime(0,0,0$md$mm$my);
        
    $weekday date('w',$day);
        
    $i 86400;

        if ( 
    $weekday get_option('start_of_week') )
            
    $weekday - (get_option('start_of_week') - $weekday);

        while (
    $weekday get_option('start_of_week')) {
            
    $weekday date('w',$day);
            if ( 
    $weekday get_option('start_of_week') )
                
    $weekday - (get_option('start_of_week') - $weekday);

            
    $day $day 86400;
            
    $i 0;
        }
        
    $week['start'] = $day 86400 $i;
        
    // $week['end'] = $day - $i + 691199;
        
    $week['end'] = $week['start'] + 604799;
        return 
    $week;
    }

    function 
    maybe_unserialize($original) {
        if ( 
    is_serialized($original) ) // don't attempt to unserialize data that wasn't serialized going in
            
    if ( false !== $gm = @ unserialize($original) )
                return 
    $gm;
        return 
    $original;
    }

    function 
    is_serialized($data) {
        
    // if it isn't a string, it isn't serialized
        
    if ( !is_string($data) )
            return 
    false;
        
    $data trim($data);
        if ( 
    'N;' == $data )
            return 
    true;
        if ( !
    preg_match('/^([adObis]):/'$data$badions) )
            return 
    false;
        switch ( 
    $badions[1] ) :
        case 
    'a' :
        case 
    'O' :
        case 
    's' :
            if ( 
    preg_match("/^{$badions[1]}:[0-9]+:.*[;}]\$/s"$data) )
                return 
    true;
            break;
        case 
    'b' :
        case 
    'i' :
        case 
    'd' :
            if ( 
    preg_match("/^{$badions[1]}:[0-9.E-]+;\$/"$data) )
                return 
    true;
            break;
        endswitch;
        return 
    false;
    }

    function 
    is_serialized_string($data) {
        
    // if it isn't a string, it isn't a serialized string
        
    if ( !is_string($data) )
            return 
    false;
        
    $data trim($data);
        if ( 
    preg_match('/^s:[0-9]+:.*;$/s',$data) ) // this should fetch all serialized strings
            
    return true;
        return 
    false;
    }

    /* Options functions */

    // expects $setting to already be SQL-escaped
    function get_option($setting) {
        global 
    $wpdb;

        
    // Allow plugins to short-circuit options.
        
    $pre apply_filters'pre_option_' $settingfalse );
        if ( 
    false !== $pre )
            return 
    $pre;

        
    // prevent non-existent options from triggering multiple queries
        
    $notoptions wp_cache_get('notoptions''options');
        if ( isset(
    $notoptions[$setting]) )
            return 
    false;

        
    $alloptions wp_load_alloptions();

        if ( isset(
    $alloptions[$setting]) ) {
            
    $value $alloptions[$setting];
        } else {
            
    $value wp_cache_get($setting'options');

            if ( 
    false === $value ) {
                if ( 
    defined('WP_INSTALLING') )
                    
    $wpdb->hide_errors();
                
    $row $wpdb->get_row("SELECT option_value FROM $wpdb->options WHERE option_name = '$setting' LIMIT 1");
                if ( 
    defined('WP_INSTALLING') )
                    
    $wpdb->show_errors();

                if( 
    is_object$row) ) { // Has to be get_row instead of get_var because of funkiness with 0, false, null values
                    
    $value $row->option_value;
                    
    wp_cache_add($setting$value'options');
                } else { 
    // option does not exist, so we must cache its non-existence
                    
    $notoptions[$setting] = true;
                    
    wp_cache_set('notoptions'$notoptions'options');
                    return 
    false;
                }
            }
        }

        
    // If home is not set use siteurl.
        
    if ( 'home' == $setting && '' == $value )
            return 
    get_option('siteurl');

        if ( 
    in_array($setting, array('siteurl''home''category_base''tag_base')) )
            
    $value untrailingslashit($value);

        return 
    apply_filters'option_' $settingmaybe_unserialize($value) );
    }

    function 
    wp_protect_special_option($option) {
        
    $protected = array('alloptions''notoptions');
        if ( 
    in_array($option$protected) )
            die(
    sprintf(__('%s is a protected WP option and may not be modified'), wp_specialchars($option)));
    }

    function 
    form_option($option) {
        echo 
    attribute_escape(get_option($option));
    }

    function 
    get_alloptions() {
        global 
    $wpdb$wp_queries;
        
    $wpdb->hide_errors();
        if ( !
    $options $wpdb->get_results("SELECT option_name, option_value FROM $wpdb->options WHERE autoload = 'yes'") ) {
            
    $options $wpdb->get_results("SELECT option_name, option_value FROM $wpdb->options");
        }
        
    $wpdb->show_errors();

        foreach (
    $options as $option) {
            
    // "When trying to design a foolproof system,
            //  never underestimate the ingenuity of the fools :)" -- Dougal
            
    if ( 'siteurl' == $option->option_name )
                
    $option->option_value preg_replace('|/+$|'''$option->option_value);
            if ( 
    'home' == $option->option_name )
                
    $option->option_value preg_replace('|/+$|'''$option->option_value);
            if ( 
    'category_base' == $option->option_name )
                
    $option->option_value preg_replace('|/+$|'''$option->option_value);
            
    $value maybe_unserialize($option->option_value);
            
    $all_options->{$option->option_name} = apply_filters('pre_option_' $option->option_name$value);
        }
        return 
    apply_filters('all_options'$all_options);
    }

    function 
    wp_load_alloptions() {
        global 
    $wpdb;

        
    $alloptions wp_cache_get('alloptions''options');

        if ( !
    $alloptions ) {
            
    $wpdb->hide_errors();
            if ( !
    $alloptions_db $wpdb->get_results("SELECT option_name, option_value FROM $wpdb->options WHERE autoload = 'yes'") )
                
    $alloptions_db $wpdb->get_results("SELECT option_name, option_value FROM $wpdb->options");
            
    $wpdb->show_errors();
            
    $alloptions = array();
            foreach ( (array) 
    $alloptions_db as $o )
                
    $alloptions[$o->option_name] = $o->option_value;
            
    wp_cache_add('alloptions'$alloptions'options');
        }
        return 
    $alloptions;
    }

    // expects $option_name to NOT be SQL-escaped
    function update_option($option_name$newvalue) {
        global 
    $wpdb;

        
    wp_protect_special_option($option_name);

        
    $safe_option_name $wpdb->escape($option_name);
        
    $newvalue sanitize_option($option_name$newvalue);

        if ( 
    is_string($newvalue) )
            
    $newvalue trim($newvalue);

        
    // If the new and old values are the same, no need to update.
        
    $oldvalue get_option($safe_option_name);
        if ( 
    $newvalue === $oldvalue ) {
            return 
    false;
        }

        if ( 
    false === $oldvalue ) {
            
    add_option($option_name$newvalue);
            return 
    true;
        }

        
    $notoptions wp_cache_get('notoptions''options');
        if ( 
    is_array($notoptions) && isset($notoptions[$option_name]) ) {
            unset(
    $notoptions[$option_name]);
            
    wp_cache_set('notoptions'$notoptions'options');
        }

        
    $_newvalue $newvalue;
        
    $newvalue maybe_serialize($newvalue);

        
    $alloptions wp_load_alloptions();
        if ( isset(
    $alloptions[$option_name]) ) {
            
    $alloptions[$option_name] = $newvalue;
            
    wp_cache_set('alloptions'$alloptions'options');
        } else {
            
    wp_cache_set($option_name$newvalue'options');
        }

        
    $newvalue $wpdb->escape($newvalue);
        
    $option_name $wpdb->escape($option_name);
        
    $wpdb->query("UPDATE $wpdb->options SET option_value = '$newvalue' WHERE option_name = '$option_name'");
        if ( 
    $wpdb->rows_affected == ) {
            
    do_action("update_option_{$option_name}"$oldvalue$_newvalue);
            return 
    true;
        }
        return 
    false;
    }

    // thx Alex Stapleton, http://alex.vort-x.net/blog/
    // expects $name to NOT be SQL-escaped
    function add_option($name$value ''$deprecated ''$autoload 'yes') {
        global 
    $wpdb;

        
    wp_protect_special_option($name);
        
    $safe_name $wpdb->escape($name);

        
    // Make sure the option doesn't already exist. We can check the 'notoptions' cache before we ask for a db query
        
    $notoptions wp_cache_get('notoptions''options');
        if ( !
    is_array($notoptions) || !isset($notoptions[$name]) )
            if ( 
    false !== get_option($safe_name) )
                return;

        
    $value maybe_serialize($value);
        
    $autoload = ( 'no' === $autoload ) ? 'no' 'yes';

        if ( 
    'yes' == $autoload ) {
            
    $alloptions wp_load_alloptions();
            
    $alloptions[$name] = $value;
            
    wp_cache_set('alloptions'$alloptions'options');
        } else {
            
    wp_cache_set($name$value'options');
        }

        
    // This option exists now
        
    $notoptions wp_cache_get('notoptions''options'); // yes, again... we need it to be fresh
        
    if ( is_array($notoptions) && isset($notoptions[$name]) ) {
            unset(
    $notoptions[$name]);
            
    wp_cache_set('notoptions'$notoptions'options');
        }

        
    $name $wpdb->escape($name);
        
    $value $wpdb->escape($value);
        
    $wpdb->query("INSERT INTO $wpdb->options (option_name, option_value, autoload) VALUES ('$name', '$value', '$autoload')");

        return;
    }

    function 
    delete_option($name) {
        global 
    $wpdb;

        
    wp_protect_special_option($name);

        
    // Get the ID, if no ID then return
        
    $option $wpdb->get_row("SELECT option_id, autoload FROM $wpdb->options WHERE option_name = '$name'");
        if ( !
    $option->option_id ) return false;
        
    $wpdb->query("DELETE FROM $wpdb->options WHERE option_name = '$name'");
        if ( 
    'yes' == $option->autoload ) {
            
    $alloptions wp_load_alloptions();
            if ( isset(
    $alloptions[$name]) ) {
                unset(
    $alloptions[$name]);
                
    wp_cache_set('alloptions'$alloptions'options');
            }
        } else {
            
    wp_cache_delete($name'options');
        }
        return 
    true;
    }

    function 
    maybe_serialize($data) {
        if ( 
    is_string($data) )
            
    $data trim($data);
        elseif ( 
    is_array($data) || is_object($data) )
            return 
    serialize($data);
        if ( 
    is_serialized($data) )
            return 
    serialize($data);
        return 
    $data;
    }

    function 
    gzip_compression() {
        if ( !
    get_option'gzipcompression' ) ) {
            return 
    false;
        }

        if ( ( 
    ini_get'zlib.output_compression' ) == 'On' || ini_get'zlib.output_compression_level' ) > ) || ini_get'output_handler' ) == 'ob_gzhandler' ) {
            return 
    false;
        }

        if ( 
    extension_loaded'zlib' ) ) {
            
    ob_start'ob_gzhandler' );
        }
    }

    function 
    make_url_footnote($content) {
        
    preg_match_all('/<a(.+?)href=\"(.+?)\"(.*?)>(.+?)<\/a>/'$content$matches);
        
    $j 0;
        for (
    $i=0$i<count($matches[0]); $i++) {
            
    $links_summary = (!$j) ? "\n" $links_summary;
            
    $j++;
            
    $link_match $matches[0][$i];
            
    $link_number '['.($i+1).']';
            
    $link_url $matches[2][$i];
            
    $link_text $matches[4][$i];
            
    $content str_replace($link_match$link_text.' '.$link_number$content);
            
    $link_url = ((strtolower(substr($link_url,0,7)) != 'http://') && (strtolower(substr($link_url,0,8)) != 'https://')) ? get_option('home') . $link_url $link_url;
            
    $links_summary .= "\n".$link_number.' '.$link_url;
        }
        
    $content strip_tags($content);
        
    $content .= $links_summary;
        return 
    $content;
    }


    function 
    xmlrpc_getposttitle($content) {
        global 
    $post_default_title;
        if ( 
    preg_match('/<title>(.+?)<\/title>/is'$content$matchtitle) ) {
            
    $post_title $matchtitle[0];
            
    $post_title preg_replace('/<title>/si'''$post_title);
            
    $post_title preg_replace('/<\/title>/si'''$post_title);
        } else {
            
    $post_title $post_default_title;
        }
        return 
    $post_title;
    }

    function 
    xmlrpc_getpostcategory($content) {
        global 
    $post_default_category;
        if ( 
    preg_match('/<category>(.+?)<\/category>/is'$content$matchcat) ) {
            
    $post_category trim($matchcat[1], ',');
            
    $post_category explode(','$post_category);
        } else {
            
    $post_category $post_default_category;
        }
        return 
    $post_category;
    }

    function 
    xmlrpc_removepostdata($content) {
        
    $content preg_replace('/<title>(.+?)<\/title>/si'''$content);
        
    $content preg_replace('/<category>(.+?)<\/category>/si'''$content);
        
    $content trim($content);
        return 
    $content;
    }

    function 
    debug_fopen($filename$mode) {
        global 
    $debug;
        if ( 
    $debug == ) {
            
    $fp fopen($filename$mode);
            return 
    $fp;
        } else {
            return 
    false;
        }
    }

    function 
    debug_fwrite($fp$string) {
        global 
    $debug;
        if ( 
    $debug == ) {
            
    fwrite($fp$string);
        }
    }

    function 
    debug_fclose($fp) {
        global 
    $debug;
        if ( 
    $debug == ) {
            
    fclose($fp);
        }
    }

    function 
    do_enclose$content$post_ID ) {
        global 
    $wp_version$wpdb;
        include_once (
    ABSPATH WPINC '/class-IXR.php');

        
    $log debug_fopen(ABSPATH 'enclosures.log''a');
        
    $post_links = array();
        
    debug_fwrite($log'BEGIN '.date('YmdHis'time())."\n");

        
    $pung get_enclosed$post_ID );

        
    $ltrs '\w';
        
    $gunk '/#~:.?+=&%@!\-';
        
    $punc '.:?\-';
        
    $any $ltrs $gunk $punc;

        
    preg_match_all("{\b http : [$any] +? (?= [$punc] * [^$any] | $)}x"$content$post_links_temp);

        
    debug_fwrite($log'Post contents:');
        
    debug_fwrite($log$content."\n");

        foreach(
    $post_links_temp[0] as $link_test) :
            if ( !
    in_array($link_test$pung) ) : // If we haven't pung it already
                
    $test parse_url($link_test);
                if ( isset(
    $test['query']) )
                    
    $post_links[] = $link_test;
                elseif ((
    $test['path'] != '/') && ($test['path'] != ''))
                    
    $post_links[] = $link_test;
            endif;
        endforeach;

        foreach (
    $post_links as $url) :
            if ( 
    $url != '' && !$wpdb->get_var("SELECT post_id FROM $wpdb->postmeta WHERE post_id = '$post_ID' AND meta_key = 'enclosure' AND meta_value LIKE ('$url%')") ) {
                if ( 
    $headers wp_get_http_headers$url) ) {
                    
    $len = (int) $headers['content-length'];
                    
    $type $wpdb->escape$headers['content-type'] );
                    
    $allowed_types = array( 'video''audio' );
                    if ( 
    in_arraysubstr$type0strpos$type"/" ) ), $allowed_types ) ) {
                        
    $meta_value "$url\n$len\n$type\n";
                        
    $wpdb->query"INSERT INTO `$wpdb->postmeta` ( `post_id` , `meta_key` , `meta_value` )
                        VALUES ( '$post_ID', 'enclosure' , '$meta_value')" 
    );
                    }
                }
            }
        endforeach;
    }

    function 
    wp_get_http_headers$url$red ) {
        global 
    $wp_version;
        @
    set_time_limit60 );

        if ( 
    $red )
             return 
    false;

        
    $parts parse_url$url );
        
    $file $parts['path'] . ($parts['query'] ? '?'.$parts['query'] : '');
        
    $host $parts['host'];
        if ( !isset( 
    $parts['port'] ) )
            
    $parts['port'] = 80;

        
    $head "HEAD $file HTTP/1.1\r\nHOST: $host\r\nUser-Agent: WordPress/" $wp_version "\r\n\r\n";

        
    $fp = @fsockopen($host$parts['port'], $err_num$err_msg3);
        if ( !
    $fp )
            return 
    false;

        
    $response '';
        
    fputs$fp$head );
        while ( !
    feof$fp ) && strpos$response"\r\n\r\n" ) == false )
            
    $response .= fgets$fp2048 );
        
    fclose$fp );
        
    preg_match_all('/(.*?): (.*)\r/'$response$matches);
        
    $count count($matches[1]);
        for ( 
    $i 0$i $count$i++) {
            
    $key strtolower($matches[1][$i]);
            
    $headers["$key"] = $matches[2][$i];
        }

        
    preg_match('/.*([0-9]{3}).*/'$response$return);
        
    $headers['response'] = $return[1]; // HTTP response code eg 204, 200, 404

            
    $code $headers['response'];
            if ( (
    '302' == $code || '301' == $code) && isset($headers['location']) )
                    return 
    wp_get_http_headers$headers['location'], ++$red );

        return 
    $headers;
    }

    function 
    is_new_day() {
        global 
    $day$previousday;
        if ( 
    $day != $previousday ) {
            return(
    1);
        } else {
            return(
    0);
        }
    }

    function 
    build_query($data) {
        return 
    _http_build_query($dataNULL'&'''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() < || false === @func_get_arg(1) )
                
    $uri $_SERVER['REQUEST_URI'];
            else
                
    $uri = @func_get_arg(1);
        } else {
            if ( @
    func_num_args() < || false === @func_get_arg(2) )
                
    $uri $_SERVER['REQUEST_URI'];
            else
                
    $uri = @func_get_arg(2);
        }

        if ( 
    $frag strstr($uri'#') )
            
    $uri substr($uri0, -strlen($frag));
        else
            
    $frag '';

        if ( 
    preg_match('|^https?://|i'$uri$matches) ) {
            
    $protocol $matches[0];
            
    $uri substr($uristrlen($protocol));
        } else {
            
    $protocol '';
        }

        if (
    strpos($uri'?') !== false) {
            
    $parts explode('?'$uri2);
            if ( 
    == count($parts) ) {
                
    $base '?';
                
    $query $parts[0];
            } else {
                
    $base $parts[0] . '?';
                
    $query $parts[1];
            }
        } elseif (!empty(
    $protocol) || strpos($uri'=') === false ) {
            
    $base $uri '?';
            
    $query '';
        } else {
            
    $base '';
            
    $query $uri;
        }

        
    wp_parse_str($query$qs);
        
    $qs urlencode_deep($qs); // this re-URL-encodes things that were already in the query string
        
    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 === false )
                unset(
    $qs[$k]);
        }

        
    $ret build_query($qs);
        
    $ret trim($ret'?');
        
    $ret preg_replace('#=(&|$)#''$1'$ret);
        
    $ret $protocol $base $ret $frag;
        
    $ret rtrim($ret'?');
        return 
    $ret;
    }

    /*
    remove_query_arg: Returns a modified querystring by removing
    a single key or an array of keys.
    Omitting oldquery_or_uri uses the $_SERVER value.

    Parameters:
    remove_query_arg(removekey, [oldquery_or_uri]) or
    remove_query_arg(removekeyarray, [oldquery_or_uri])
    */

    function remove_query_arg($key$query=FALSE) {
        if ( 
    is_array($key) ) { // removing multiple keys
            
    foreach ( (array) $key as $k )
                
    $query add_query_arg($kFALSE$query);
            return 
    $query;
        }
        return 
    add_query_arg($keyFALSE$query);
    }

    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 ) {
        
    $timeout 10;
        
    $parsed_url = @parse_url($uri);

        if ( !
    $parsed_url || !is_array($parsed_url) )
            return 
    false;

        if ( !isset(
    $parsed_url['scheme']) || !in_array($parsed_url['scheme'], array('http','https')) )
            
    $uri 'http://' $uri;

        if ( 
    ini_get('allow_url_fopen') ) {
            
    $fp = @fopen$uri'r' );
            if ( !
    $fp )
                return 
    false;

            
    //stream_set_timeout($fp, $timeout); // Requires php 4.3
            
    $linea '';
            while( 
    $remote_read fread($fp4096) )
                
    $linea .= $remote_read;
            
    fclose($fp);
            return 
    $linea;
        } else if ( 
    function_exists('curl_init') ) {
            
    $handle curl_init();
            
    curl_setopt ($handleCURLOPT_URL$uri);
            
    curl_setopt ($handleCURLOPT_CONNECTTIMEOUT1);
            
    curl_setopt ($handleCURLOPT_RETURNTRANSFER1);
            
    curl_setopt ($handleCURLOPT_TIMEOUT$timeout);
            
    $buffer curl_exec($handle);
            
    curl_close($handle);
            return 
    $buffer;
        } else {
            return 
    false;
        }
    }

    function 
    wp($query_vars '') {
        global 
    $wp$wp_query$wp_the_query;

        
    $wp->main($query_vars);

        if( !isset(
    $wp_the_query) )
            
    $wp_the_query $wp_query;
    }

    function 
    get_status_header_desc$code ) {
        global 
    $wp_header_to_desc;

        
    $code = (int) $code;

        if ( !isset(
    $wp_header_to_desc) ) {
            
    $wp_header_to_desc = array(
                
    100 => 'Continue',
                
    101 => 'Switching Protocols',

                
    200 => 'OK',
                
    201 => 'Created',
                
    202 => 'Accepted',
                
    203 => 'Non-Authoritative Information',
                
    204 => 'No Content',
                
    205 => 'Reset Content',
                
    206 => 'Partial Content',

                
    300 => 'Multiple Choices',
                
    301 => 'Moved Permanently',
                
    302 => 'Found',
                
    303 => 'See Other',
                
    304 => 'Not Modified',
                
    305 => 'Use Proxy',
                
    307 => 'Temporary Redirect',

                
    400 => 'Bad Request',
                
    401 => 'Unauthorized',
                
    403 => 'Forbidden',
                
    404 => 'Not Found',
                
    405 => 'Method Not Allowed',
                
    406 => 'Not Acceptable',
                
    407 => 'Proxy Authentication Required',
                
    408 => 'Request Timeout',
                
    409 => 'Conflict',
                
    410 => 'Gone',
                
    411 => 'Length Required',
                
    412 => 'Precondition Failed',
                
    413 => 'Request Entity Too Large',
                
    414 => 'Request-URI Too Long',
                
    415 => 'Unsupported Media Type',
                
    416 => 'Requested Range Not Satisfiable',
                
    417 => 'Expectation Failed',

                
    500 => 'Internal Server Error',
                
    501 => 'Not Implemented',
                
    502 => 'Bad Gateway',
                
    503 => 'Service Unavailable',
                
    504 => 'Gateway Timeout',
                
    505 => 'HTTP Version Not Supported'
            
    );
        }

        if ( isset( 
    $wp_header_to_desc[$code] ) ) {
            return 
    $wp_header_to_desc[$code];
        } else {
            return 
    '';
        }
    }

    function 
    status_header$header ) {
        
    $text get_status_header_desc$header );

        if ( empty( 
    $text ) )
            return 
    false;

        
    $protocol $_SERVER["SERVER_PROTOCOL"];
        if ( (
    'HTTP/1.1' != $protocol) && ('HTTP/1.0' != $protocol) )
            
    $protocol 'HTTP/1.0';
        
    $status_header "$protocol $header $text";
        if ( 
    function_exists('apply_filters') )
            
    $status_header apply_filters('status_header'$status_header$header$text$protocol);

        if ( 
    version_comparephpversion(), '4.3.0''>=' ) ) {
            return @
    header$status_headertrue$header );
        } else {
            return @
    header$status_header );
        }
    }

    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 
    cache_javascript_headers() {
        
    $expiresOffset 864000// 10 days
        
    header("Content-Type: text/javascript; charset=" get_bloginfo('charset'));
        
    header("Vary: Accept-Encoding"); // Handle proxies
        
    header("Expires: " gmdate("D, d M Y H:i:s"time() + $expiresOffset) . " GMT");
    }

    function 
    get_num_queries() {
        global 
    $wpdb;
        return 
    $wpdb->num_queries;
    }

    function 
    bool_from_yn$yn ) {
        return ( 
    strtolower$yn ) == 'y' );
    }

    function 
    do_feed() {
        global 
    $wp_query;

        
    $feed get_query_var('feed');

        
    // Remove the pad, if present.
        
    $feed preg_replace('/^_+/'''$feed);

        if ( 
    $feed == '' || $feed == 'feed' )
            
    $feed 'rss2';

        
    $hook 'do_feed_' $feed;
        
    do_action($hook$wp_query->is_comment_feed);
    }

    function 
    do_feed_rdf() {
        
    load_template(ABSPATH WPINC '/feed-rdf.php');
    }

    function 
    do_feed_rss() {
        
    load_template(ABSPATH WPINC '/feed-rss.php');
    }

    function 
    do_feed_rss2($for_comments) {
        if ( 
    $for_comments ) {
            
    load_template(ABSPATH WPINC '/feed-rss2-comments.php');
        } else {
            
    load_template(ABSPATH WPINC '/feed-rss2.php');
        }
    }

    function 
    do_feed_atom($for_comments) {
        if (
    $for_comments) {
            
    load_template(ABSPATH WPINC '/feed-atom-comments.php');
        } else {
            
    load_template(ABSPATH WPINC '/feed-atom.php');
        }
    }

    function 
    do_robots() {
        
    header('Content-Type: text/plain; charset=utf-8');

        
    do_action('do_robotstxt');

        if ( 
    '0' == get_option('blog_public') ) {
            echo 
    "User-agent: *\n";
            echo 
    "Disallow: /\n";
        } else {
            echo 
    "User-agent: *\n";
            echo 
    "Disallow:\n";
        }
    }

    function 
    is_blog_installed() {
        global 
    $wpdb;
        
    $wpdb->hide_errors();
        
    $installed $wpdb->get_var("SELECT option_value FROM $wpdb->options WHERE option_name = 'siteurl'");
        
    $wpdb->show_errors();

        
    $install_status = !empty( $installed ) ? TRUE FALSE;
        return 
    $install_status;
    }

    function 
    wp_nonce_url($actionurl$action = -1) {
        
    $actionurl str_replace('&amp;''&'$actionurl);
        return 
    wp_specialchars(add_query_arg('_wpnonce'wp_create_nonce($action), $actionurl));
    }

    function 
    wp_nonce_field($action = -1$name "_wpnonce"$referer true) {
        
    $name attribute_escape($name);
        echo 
    '<input type="hidden" name="' $name '" value="' wp_create_nonce($action) . '" />';
        if ( 
    $referer )
            
    wp_referer_field();
    }

    function 
    wp_referer_field() {
        
    $ref attribute_escape($_SERVER['REQUEST_URI']);
        echo 
    '<input type="hidden" name="_wp_http_referer" value="'$ref '" />';
        if ( 
    wp_get_original_referer() ) {
            
    $original_ref attribute_escape(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="' attribute_escape(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_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_option('siteurl');
        
    //prepend ABSPATH to $dir and $siteurl to $url if they're not already there
        
    $path str_replace(ABSPATH''trim(get_option('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_option('uploads_use_yearmonth_folders')) {
            
    // Generate the yearly and monthly dirs
            
    $time current_time'mysql' );
            
    $y substr$time0);
            
    $m substr$time5);
            
    $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"));

        
    $wp_filetype wp_check_filetype($name);
        if ( !
    $wp_filetype['ext'] )
            return array(
    'error' => __("Invalid file type"));

        
    $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_pdirname($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' => sprintf(__('Could not write file %s'), $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 
    wp_check_filetype($filename$mimes null) {
        
    // Accepted MIME types are set here as PCRE unless provided.
        
    $mimes is_array($mimes) ? $mimes apply_filters('upload_mimes', array (
            
    'jpg|jpeg|jpe' => 'image/jpeg',
            
    'gif' => 'image/gif',
            
    'png' => 'image/png',
            
    'bmp' => 'image/bmp',
            
    'tif|tiff' => 'image/tiff',
            
    'ico' => 'image/x-icon',
            
    'asf|asx|wax|wmv|wmx' => 'video/asf',
            
    'avi' => 'video/avi',
            
    'mov|qt' => 'video/quicktime',
            
    'mpeg|mpg|mpe' => 'video/mpeg',
            
    'txt|c|cc|h' => 'text/plain',
            
    'rtx' => 'text/richtext',
            
    'css' => 'text/css',
            
    'htm|html' => 'text/html',
            
    'mp3|mp4' => 'audio/mpeg',
            
    'ra|ram' => 'audio/x-realaudio',
            
    'wav' => 'audio/wav',
            
    'ogg' => 'audio/ogg',
            
    'mid|midi' => 'audio/midi',
            
    'wma' => 'audio/wma',
            
    'rtf' => 'application/rtf',
            
    'js=> 'application/javascript',
            
    'pdf' => 'application/pdf',
            
    'doc' => 'application/msword',
            
    'pot|pps|ppt' => 'application/vnd.ms-powerpoint',
            
    'wri' => 'application/vnd.ms-write',
            
    'xla|xls|xlt|xlw' => 'application/vnd.ms-excel',
            
    'mdb' => 'application/vnd.ms-access',
            
    'mpp' => 'application/vnd.ms-project',
            
    'swf' => 'application/x-shockwave-flash',
            
    'class' => 'application/java',
            
    'tar' => 'application/x-tar',
            
    'zip' => 'application/zip',
            
    'gz|gzip' => 'application/x-gzip',
            
    'exe' => 'application/x-msdownload',
            
    // openoffice formats
            
    'odt' => 'application/vnd.oasis.opendocument.text',
            
    'odp' => 'application/vnd.oasis.opendocument.presentation',
            
    'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
            
    'odg' => 'application/vnd.oasis.opendocument.graphics',
            
    'odc' => 'application/vnd.oasis.opendocument.chart',
            
    'odb' => 'application/vnd.oasis.opendocument.database',
            
    'odf' => 'application/vnd.oasis.opendocument.formula',

        ));

        
    $type false;
        
    $ext false;

        foreach (
    $mimes as $ext_preg => $mime_match) {
            
    $ext_preg '!\.(' $ext_preg ')$!i';
            if ( 
    preg_match($ext_preg$filename$ext_matches) ) {
                
    $type $mime_match;
                
    $ext $ext_matches[1];
                break;
            }
        }

        return 
    compact('ext''type');
    }

    function 
    wp_explain_nonce($action) {
        if ( 
    $action !== -&& 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: &quot;%s&quot;?'), '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: &quot;%s&quot;?'), 'get_catname');
            
    $trans['update']['category'] = array(__('Are you sure you want to edit this category: &quot;%s&quot;?'), 'get_catname');

            
    $trans['delete']['comment'] = array(__('Are you sure you want to delete this comment: &quot;%s&quot;?'), 'use_id');
            
    $trans['unapprove']['comment'] = array(__('Are you sure you want to unapprove this comment: &quot;%s&quot;?'), 'use_id');
            
    $trans['approve']['comment'] = array(__('Are you sure you want to approve this comment: &quot;%s&quot;?'), 'use_id');
            
    $trans['update']['comment'] = array(__('Are you sure you want to edit this comment: &quot;%s&quot;?'), '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 link?'), false);
            
    $trans['delete']['bookmark'] = array(__('Are you sure you want to delete this link: &quot;%s&quot;?'), 'use_id');
            
    $trans['update']['bookmark'] = array(__('Are you sure you want to edit this link: &quot;%s&quot;?'), 'use_id');
            
    $trans['bulk']['bookmarks'] = array(__('Are you sure you want to bulk modify links?'), 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: &quot;%s&quot;?'), 'get_the_title');
            
    $trans['update']['page'] = array(__('Are you sure you want to edit this page: &quot;%s&quot;?'), 'get_the_title');

            
    $trans['edit']['plugin'] = array(__('Are you sure you want to edit this plugin file: &quot;%s&quot;?'), 'use_id');
            
    $trans['activate']['plugin'] = array(__('Are you sure you want to activate this plugin: &quot;%s&quot;?'), 'use_id');
            
    $trans['deactivate']['plugin'] = array(__('Are you sure you want to deactivate this plugin: &quot;%s&quot;?'), '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: &quot;%s&quot;?'), 'get_the_title');
            
    $trans['update']['post'] = array(__('Are you sure you want to edit this post: &quot;%s&quot;?'), '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: &quot;%s&quot;?'), 'get_author_name');
            
    $trans['update']['profile'] = array(__('Are you sure you want to modify the profile for: &quot;%s&quot;?'), '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: &quot;%s&quot;?'), 'use_id');
            
    $trans['edit']['theme'] = array(__('Are you sure you want to edit this theme file: &quot;%s&quot;?'), 'use_id');
            
    $trans['switch']['theme'] = array(__('Are you sure you want to switch to this theme: &quot;%s&quot;?'), '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 
    apply_filters'explain_nonce_' $verb '-' $noun__('Are you sure you want to do this?'), $matches[4] );
    }

    function 
    wp_nonce_ays($action) {
        global 
    $pagenow$menu$submenu$parent_file$submenu_file;

        
    $adminurl get_option('siteurl') . '/wp-admin';
        if ( 
    wp_get_referer() )
            
    $adminurl clean_url(wp_get_referer());

        
    $title __('WordPress Confirmation');
        
    // Remove extra layer of slashes.
        
    $_POST   stripslashes_deep($_POST  );
        if ( 
    $_POST ) {
            
    $q http_build_query($_POST);
            
    $q explodeini_get('arg_separator.output'), $q);
            
    $html .= "\t<form method='post' action='" attribute_escape($pagenow) . "'>\n";
            foreach ( (array) 
    $q as $a ) {
                
    $v substr(strstr($a'='), 1);
                
    $k substr($a0, -(strlen($v)+1));
                
    $html .= "\t\t<input type='hidden' name='" attribute_escape(urldecode($k)) . "' value='" attribute_escape(urldecode($v)) . "' />\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_specialchars(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_specialchars(wp_explain_nonce($action)) . "</p>\n\t<p><a href='$adminurl'>" __('No') . "</a> <a href='" clean_url(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 '' ) {
        global 
    $wp_locale;

        if ( 
    function_exists'is_wp_error' ) && is_wp_error$message ) ) {
            if ( empty(
    $title) ) {
                
    $error_data $message->get_error_data();
                if ( 
    is_array($error_data) && isset($error_data['title']) )
                    
    $title $error_data['title'];
            }
            
    $errors $message->get_error_messages();
            switch ( 
    count($errors) ) :
            case 
    :
                
    $message '';
                break;
            case 
    :
                
    $message "<p>{$errors[0]}</p>";
                break;
            default :
                
    $message "<ul>\n\t\t<li>" join"</li>\n\t\t<li>"$errors ) . "</li>\n\t</ul>";
                break;
            endswitch;
        } elseif ( 
    is_string($message) ) {
            
    $message "<p>$message</p>";
        }

        if ( 
    defined('WP_SITEURL') && '' != WP_SITEURL 
            
    $admin_dir WP_SITEURL.'/wp-admin/'
        elseif (
    function_exists('get_bloginfo') && '' != get_bloginfo('wpurl'))
            
    $admin_dir get_bloginfo('wpurl').'/wp-admin/'
        elseif (
    strpos($_SERVER['PHP_SELF'], 'wp-admin') !== false)
            
    $admin_dir '';
        else
            
    $admin_dir 'wp-admin/';

        if ( !
    function_exists('did_action') || !did_action('admin_head') ) :
        if( !
    headers_sent() ){
            
    status_header(500);
            
    nocache_headers();
            
    header('Content-Type: text/html; charset=utf-8');
        }

        if ( empty(
    $title) ){
            if( 
    function_exists('__') )
                
    $title __('WordPress &rsaquo; Error');
            else
                
    $title 'WordPress &rsaquo; 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" <?php if ( function_exists('language_attributes') ) language_attributes(); ?>>
    <head>
        <title><?php echo $title ?></title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link rel="stylesheet" href="<?php echo $admin_dir?>css/install.css" type="text/css" />
    <?php
    if ( ( $wp_locale ) && ('rtl' == $wp_locale->text_direction) ) : ?>
        <link rel="stylesheet" href="<?php echo $admin_dir?>css/install-rtl.css" type="text/css" />
    <?php endif; ?>
    </head>
    <body>
    <?php endif; ?>
        <h1 id="logo"><img alt="WordPress" src="<?php echo $admin_dir?>images/wordpress-logo.png" /></h1>
        <?php echo $message?>

    </body>
    </html>
    <?php
        
    die();
    }

    function 
    _config_wp_home($url '') {
        if ( 
    defined'WP_HOME' ) )
            return 
    WP_HOME;
        else return 
    $url;
    }

    function 
    _config_wp_siteurl($url '') {
        if ( 
    defined'WP_SITEURL' ) )
            return 
    WP_SITEURL;
        else return 
    $url;
    }

    function 
    _mce_set_direction() {
        global 
    $wp_locale;

        if (
    'rtl' == $wp_locale->text_direction) {
            echo 
    'directionality : "rtl" ,';
            echo 
    'theme_advanced_toolbar_align : "right" ,';
        }
    }

    function 
    _mce_load_rtl_plugin($input) {
        global 
    $wp_locale;

        if (
    'rtl' == $wp_locale->text_direction)
            
    $input[] = 'directionality';

        return 
    $input;
    }

    function 
    _mce_add_direction_buttons($input) {
        global 
    $wp_locale;

        if (
    'rtl' == $wp_locale->text_direction) {
            
    $new_buttons = array('separator''ltr''rtl');
            
    $input array_merge($input$new_buttons);
        }

        return 
    $input;
    }

    function 
    smilies_init() {
        global 
    $wpsmiliestrans$wp_smiliessearch$wp_smiliesreplace;

        
    // don't bother setting up smilies if they are disabled
        
    if ( !get_option('use_smilies') )
            return;

        if (!isset(
    $wpsmiliestrans)) {
            
    $wpsmiliestrans = array(
            
    ':mrgreen:' => 'icon_mrgreen.gif',
            
    ':neutral:' => 'icon_neutral.gif',
            
    ':twisted:' => 'icon_twisted.gif',
              
    ':arrow:' => 'icon_arrow.gif',
              
    ':shock:' => 'icon_eek.gif',
              
    ':smile:' => 'icon_smile.gif',
                
    ':???:' => 'icon_confused.gif',
               
    ':cool:' => 'icon_cool.gif',
               
    ':evil:' => 'icon_evil.gif',
               
    ':grin:' => 'icon_biggrin.gif',
               
    ':idea:' => 'icon_idea.gif',
               
    ':oops:' => 'icon_redface.gif',
               
    ':razz:' => 'icon_razz.gif',
               
    ':roll:' => 'icon_rolleyes.gif',
               
    ':wink:' => 'icon_wink.gif',
                
    ':cry:' => 'icon_cry.gif',
                
    ':eek:' => 'icon_surprised.gif',
                
    ':lol:' => 'icon_lol.gif',
                
    ':mad:' => 'icon_mad.gif',
                
    ':sad:' => 'icon_sad.gif',
                  
    '8-)' => 'icon_cool.gif',
                  
    '8-O' => 'icon_eek.gif',
                  
    ':-(' => 'icon_sad.gif',
                  
    ':-)' => 'icon_smile.gif',
                  
    ':-?' => 'icon_confused.gif',
                  
    ':-D' => 'icon_biggrin.gif',
                  
    ':-P' => 'icon_razz.gif',
                  
    ':-o' => 'icon_surprised.gif',
                  
    ':-x' => 'icon_mad.gif',
                  
    ':-|' => 'icon_neutral.gif',
                  
    ';-)' => 'icon_wink.gif',
                   
    '8)' => 'icon_cool.gif',
                   
    '8O' => 'icon_eek.gif',
                   
    ':(' => 'icon_sad.gif',
                   
    ':)' => 'icon_smile.gif',
                   
    ':?' => 'icon_confused.gif',
                   
    ':D' => 'icon_biggrin.gif',
                   
    ':P' => 'icon_razz.gif',
                   
    ':o' => 'icon_surprised.gif',
                   
    ':x' => 'icon_mad.gif',
                   
    ':|' => 'icon_neutral.gif',
                   
    ';)' => 'icon_wink.gif',
                  
    ':!:' => 'icon_exclaim.gif',
                  
    ':?:' => 'icon_question.gif',
            );
        }

        
    $siteurl get_option('siteurl');
        foreach ( (array) 
    $wpsmiliestrans as $smiley => $img ) {
            
    $wp_smiliessearch[] = '/(\s|^)'.preg_quote($smiley'/').'(\s|$)/';
            
    $smiley_masked htmlspecialchars(trim($smiley), ENT_QUOTES);
            
    $wp_smiliesreplace[] = " <img src='$siteurl/wp-includes/images/smilies/$img' alt='$smiley_masked' class='wp-smiley' /> ";
        }
    }

    function 
    wp_parse_args$args$defaults '' ) {
        if ( 
    is_object($args) )
            
    $r get_object_vars($args);
        else if ( 
    is_array$args ) )
            
    $r =& $args;
        else
            
    wp_parse_str$args$r );

        if ( 
    is_array$defaults ) )
            return 
    array_merge$defaults$r );
        else
            return 
    $r;
    }

    function 
    wp_maybe_load_widgets() {
        if ( !
    function_exists'dynamic_sidebar' ) ) {
            require_once 
    ABSPATH WPINC '/widgets.php';
            
    add_action'_admin_menu''wp_widgets_add_menu' );
        }
    }

    function 
    wp_widgets_add_menu() {
        global 
    $submenu;
        
    $submenu['themes.php'][7] = array( __'Widgets' ), 'switch_themes''widgets.php' );
        
    ksort($submenu['themes.php'], SORT_NUMERIC);
    }

    // For PHP 5.2, make sure all output buffers are flushed
    // before our singletons our destroyed.
    function wp_ob_end_flush_all()
    {
        while ( @
    ob_end_flush() );
    }

    ?>
    classes.php

    Codice PHP:
    <?php

    class WP {
        var 
    $public_query_vars = array('m''p''posts''w''cat''withcomments''withoutcomments''s''search''exact''sentence''debug''calendar''page''paged''more''tb''pb''author''order''orderby''year''monthnum''day''hour''minute''second''name''category_name''tag''feed''author_name''static''pagename''page_id''error''comments_popup''attachment''attachment_id''subpost''subpost_id''preview''robots');

        var 
    $private_query_vars = array('offset''posts_per_page''posts_per_archive_page''what_to_show''showposts''nopaging''post_type''post_status''category__in''category__not_in''category__and''tag__in''tag__not_in''tag__and''tag_slug__in''tag_slug__and''tag_id');
        var 
    $extra_query_vars = array();

        var 
    $query_vars;
        var 
    $query_string;
        var 
    $request;
        var 
    $matched_rule;
        var 
    $matched_query;
        var 
    $did_permalink false;

        function 
    add_query_var($qv) {
            
    $this->public_query_vars[] = $qv;
        }

        function 
    set_query_var($key$value) {
            
    $this->query_vars[$key] = $value;
        }

        function 
    parse_request($extra_query_vars '') {
            global 
    $wp_rewrite;

            
    $this->query_vars = array();

            if ( 
    is_array($extra_query_vars) )
                
    $this->extra_query_vars = & $extra_query_vars;
            else if (! empty(
    $extra_query_vars))
                
    parse_str($extra_query_vars$this->extra_query_vars);

            
    // Process PATH_INFO, REQUEST_URI, and 404 for permalinks.

            // Fetch the rewrite rules.
            
    $rewrite $wp_rewrite->wp_rewrite_rules();

            if (! empty(
    $rewrite)) {
                
    // If we match a rewrite rule, this will be cleared.
                
    $error '404';
                
    $this->did_permalink true;

                if ( isset(
    $_SERVER['PATH_INFO']) )
                    
    $pathinfo $_SERVER['PATH_INFO'];
                else
                    
    $pathinfo '';
                
    $pathinfo_array explode('?'$pathinfo);
                
    $pathinfo str_replace("%""%25"$pathinfo_array[0]);
                
    $req_uri $_SERVER['REQUEST_URI'];
                
    $req_uri_array explode('?'$req_uri);
                
    $req_uri $req_uri_array[0];
                
    $self $_SERVER['PHP_SELF'];
                
    $home_path parse_url(get_option('home'));
                if ( isset(
    $home_path['path']) )
                    
    $home_path $home_path['path'];
                else
                    
    $home_path '';
                
    $home_path trim($home_path'/');

                
    // Trim path info from the end and the leading home path from the
                // front.  For path info requests, this leaves us with the requesting
                // filename, if any.  For 404 requests, this leaves us with the
                // requested permalink.
                
    $req_uri str_replace($pathinfo''rawurldecode($req_uri));
                
    $req_uri trim($req_uri'/');
                
    $req_uri preg_replace("|^$home_path|"''$req_uri);
                
    $req_uri trim($req_uri'/');
                
    $pathinfo trim($pathinfo'/');
                
    $pathinfo preg_replace("|^$home_path|"''$pathinfo);
                
    $pathinfo trim($pathinfo'/');
                
    $self trim($self'/');
                
    $self preg_replace("|^$home_path|"''$self);
                
    $self str_replace($home_path''$self);
                
    $self trim($self'/');

                
    // The requested permalink is in $pathinfo for path info requests and
                //  $req_uri for other requests.
                
    if ( ! empty($pathinfo) && !preg_match('|^.*' $wp_rewrite->index '$|'$pathinfo) ) {
                    
    $request $pathinfo;
                } else {
                    
    // If the request uri is the index, blank it out so that we don't try to match it against a rule.
                    
    if ( $req_uri == $wp_rewrite->index )
                        
    $req_uri '';
                    
    $request $req_uri;
                }

                
    $this->request $request;

                
    // Look for matches.
                
    $request_match $request;
                foreach (
    $rewrite as $match => $query) {
                    
    // If the requesting file is the anchor of the match, prepend it
                    // to the path info.
                    
    if ((! empty($req_uri)) && (strpos($match$req_uri) === 0) && ($req_uri != $request)) {
                        
    $request_match $req_uri '/' $request;
                    }

                    if (
    preg_match("!^$match!"$request_match$matches) ||
                        
    preg_match("!^$match!"urldecode($request_match), $matches)) {
                        
    // Got a match.
                        
    $this->matched_rule $match;

                        
    // Trim the query of everything up to the '?'.
                        
    $query preg_replace("!^.+\?!"''$query);

                        
    // Substitute the substring matches into the query.
                        
    eval("\$query = \"$query\";");
                        
    $this->matched_query $query;

                        
    // Parse the query.
                        
    parse_str($query$perma_query_vars);

                        
    // If we're processing a 404 request, clear the error var
                        // since we found something.
                        
    if (isset($_GET['error']))
                            unset(
    $_GET['error']);

                        if (isset(
    $error))
                            unset(
    $error);

                        break;
                    }
                }

                
    // If req_uri is empty or if it is a request for ourself, unset error.
                
    if (empty($request) || $req_uri == $self || strpos($_SERVER['PHP_SELF'], 'wp-admin/') !== false) {
                    if (isset(
    $_GET['error']))
                        unset(
    $_GET['error']);

                    if (isset(
    $error))
                        unset(
    $error);

                    if (isset(
    $perma_query_vars) && strpos($_SERVER['PHP_SELF'], 'wp-admin/') !== false)
                        unset(
    $perma_query_vars);

                    
    $this->did_permalink false;
                }
            }

            
    $this->public_query_vars apply_filters('query_vars'$this->public_query_vars);

            for (
    $i=0$i<count($this->public_query_vars); $i += 1) {
                
    $wpvar $this->public_query_vars[$i];
                if (isset(
    $this->extra_query_vars[$wpvar]))
                    
    $this->query_vars[$wpvar] = $this->extra_query_vars[$wpvar];
                elseif (isset(
    $GLOBALS[$wpvar]))
                    
    $this->query_vars[$wpvar] = $GLOBALS[$wpvar];
                elseif (!empty(
    $_POST[$wpvar]))
                    
    $this->query_vars[$wpvar] = $_POST[$wpvar];
                elseif (!empty(
    $_GET[$wpvar]))
                    
    $this->query_vars[$wpvar] = $_GET[$wpvar];
                elseif (!empty(
    $perma_query_vars[$wpvar]))
                    
    $this->query_vars[$wpvar] = $perma_query_vars[$wpvar];

                if ( !empty( 
    $this->query_vars[$wpvar] ) )
                    
    $this->query_vars[$wpvar] = (string) $this->query_vars[$wpvar];
            }

            foreach (
    $this->private_query_vars as $var) {
                if (isset(
    $this->extra_query_vars[$var]))
                    
    $this->query_vars[$var] = $this->extra_query_vars[$var];
                elseif (isset(
    $GLOBALS[$var]) && '' != $GLOBALS[$var])
                    
    $this->query_vars[$var] = $GLOBALS[$var];
            }

            if ( isset(
    $error) )
                
    $this->query_vars['error'] = $error;

            
    $this->query_vars apply_filters('request'$this->query_vars);

            
    do_action_ref_array('parse_request', array(&$this));
        }

        function 
    send_headers() {
            @
    header('X-Pingback: 'get_bloginfo('pingback_url'));
            if ( 
    is_user_logged_in() )
                
    nocache_headers();
            if ( !empty(
    $this->query_vars['error']) && '404' == $this->query_vars['error'] ) {
                
    status_header404 );
                if ( !
    is_user_logged_in() )
                    
    nocache_headers();
                @
    header('Content-Type: ' get_option('html_type') . '; charset=' get_option('blog_charset'));
            } else if ( empty(
    $this->query_vars['feed']) ) {
                @
    header('Content-Type: ' get_option('html_type') . '; charset=' get_option('blog_charset'));
            } else {
                
    // We're showing a feed, so WP is indeed the only thing that last changed
                
    if ( $this->query_vars['withcomments']
                    || ( !
    $this->query_vars['withoutcomments']
                        && ( 
    $this->query_vars['p']
                            || 
    $this->query_vars['name']
                            || 
    $this->query_vars['page_id']
                            || 
    $this->query_vars['pagename']
                            || 
    $this->query_vars['attachment']
                            || 
    $this->query_vars['attachment_id']
                        )
                    )
                )
                    
    $wp_last_modified mysql2date('D, d M Y H:i:s'get_lastcommentmodified('GMT'), 0).' GMT';
                else
                    
    $wp_last_modified mysql2date('D, d M Y H:i:s'get_lastpostmodified('GMT'), 0).' GMT';
                
    $wp_etag '"' md5($wp_last_modified) . '"';
                @
    header("Last-Modified: $wp_last_modified");
                @
    header("ETag: $wp_etag");

                
    // Support for Conditional GET
                
    if (isset($_SERVER['HTTP_IF_NONE_MATCH']))
                    
    $client_etag stripslashes(stripslashes($_SERVER['HTTP_IF_NONE_MATCH']));
                else 
    $client_etag false;

                
    $client_last_modified trim$_SERVER['HTTP_IF_MODIFIED_SINCE']);
                
    // If string is empty, return 0. If not, attempt to parse into a timestamp
                
    $client_modified_timestamp $client_last_modified strtotime($client_last_modified) : 0;

                
    // Make a timestamp for our most recent modification...
                
    $wp_modified_timestamp strtotime($wp_last_modified);

                if ( (
    $client_last_modified && $client_etag) ?
                         ((
    $client_modified_timestamp >= $wp_modified_timestamp) && ($client_etag == $wp_etag)) :
                         ((
    $client_modified_timestamp >= $wp_modified_timestamp) || ($client_etag == $wp_etag)) ) {
                    
    status_header304 );
                    exit;
                }
            }

            
    do_action_ref_array('send_headers', array(&$this));
        }

        function 
    build_query_string() {
            
    $this->query_string '';
            foreach (
    array_keys($this->query_vars) as $wpvar) {
                if ( 
    '' != $this->query_vars[$wpvar] ) {
                    
    $this->query_string .= (strlen($this->query_string) < 1) ? '' '&';
                    if ( !
    is_scalar($this->query_vars[$wpvar]) ) // Discard non-scalars.
                        
    continue;
                    
    $this->query_string .= $wpvar '=' rawurlencode($this->query_vars[$wpvar]);
                }
            }

            
    // query_string filter deprecated.  Use request filter instead.
            
    global $wp_filter;
            if ( isset(
    $wp_filter['query_string']) ) {  // Don't bother filtering and parsing if no plugins are hooked in.
                
    $this->query_string apply_filters('query_string'$this->query_string);
                
    parse_str($this->query_string$this->query_vars);
            }
        }

        function 
    register_globals() {
            global 
    $wp_query;
            
    // Extract updated query vars back into global namespace.
            
    foreach ($wp_query->query_vars as $key => $value) {
                
    $GLOBALS[$key] = $value;
            }

            
    $GLOBALS['query_string'] = & $this->query_string;
            
    $GLOBALS['posts'] = & $wp_query->posts;
            
    $GLOBALS['post'] = & $wp_query->post;
            
    $GLOBALS['request'] = & $wp_query->request;

            if ( 
    is_single() || is_page() ) {
                
    $GLOBALS['more'] = 1;
                
    $GLOBALS['single'] = 1;
            }
        }

        function 
    init() {
            
    wp_get_current_user();
        }

        function 
    query_posts() {
            global 
    $wp_the_query;
            
    $this->build_query_string();
            
    $wp_the_query->query($this->query_vars);
         }

        function 
    handle_404() {
            global 
    $wp_query;
            
    // Issue a 404 if a permalink request doesn't match any posts.  Don't
            // issue a 404 if one was already issued, if the request was a search,
            // or if the request was a regular query string request rather than a
            // permalink request.
            
    if ( (== count($wp_query->posts)) && !is_404() && !is_search() && ( $this->did_permalink || (!empty($_SERVER['QUERY_STRING']) && (false === strpos($_SERVER['REQUEST_URI'], '?'))) ) ) {
                
    $wp_query->set_404();
                
    status_header404 );
                
    nocache_headers();
            }    elseif( 
    is_404() != true ) {
                
    status_header200 );
            }
        }

        function 
    main($query_args '') {
            
    $this->init();
            
    $this->parse_request($query_args);
            
    $this->send_headers();
            
    $this->query_posts();
            
    $this->handle_404();
            
    $this->register_globals();
            
    do_action_ref_array('wp', array(&$this));
        }

        function 
    WP() {
            
    // Empty.
        
    }
    }

    class 
    WP_Error {
        var 
    $errors = array();
        var 
    $error_data = array();

        function 
    WP_Error($code ''$message ''$data '') {
            if ( empty(
    $code) )
                return;

            
    $this->errors[$code][] = $message;

            if ( ! empty(
    $data) )
                
    $this->error_data[$code] = $data;
        }

        function 
    get_error_codes() {
            if ( empty(
    $this->errors) )
                return array();

            return 
    array_keys($this->errors);
        }

        function 
    get_error_code() {
            
    $codes $this->get_error_codes();

            if ( empty(
    $codes) )
                return 
    '';

            return 
    $codes[0];
        }

        function 
    get_error_messages($code '') {
            
    // Return all messages if no code specified.
            
    if ( empty($code) ) {
                
    $all_messages = array();
                foreach ( 
    $this->errors as $code => $messages )
                    
    $all_messages array_merge($all_messages$messages);

                return 
    $all_messages;
            }

            if ( isset(
    $this->errors[$code]) )
                return 
    $this->errors[$code];
            else
                return array();
        }

        function 
    get_error_message($code '') {
            if ( empty(
    $code) )
                
    $code $this->get_error_code();
            
    $messages $this->get_error_messages($code);
            if ( empty(
    $messages) )
                return 
    '';
            return 
    $messages[0];
        }

        function 
    get_error_data($code '') {
            if ( empty(
    $code) )
                
    $code $this->get_error_code();

            if ( isset(
    $this->error_data[$code]) )
                return 
    $this->error_data[$code];
            return 
    null;
        }

        function 
    add($code$message$data '') {
            
    $this->errors[$code][] = $message;
            if ( ! empty(
    $data) )
                
    $this->error_data[$code] = $data;
        }

        function 
    add_data($data$code '') {
            if ( empty(
    $code) )
                
    $code $this->get_error_code();

            
    $this->error_data[$code] = $data;
        }
    }

    function 
    is_wp_error($thing) {
        if ( 
    is_object($thing) && is_a($thing'WP_Error') )
            return 
    true;
        return 
    false;
    }


    // A class for displaying various tree-like structures. Extend the Walker class to use it, see examples at the bottom

    class Walker {
        var 
    $tree_type;
        var 
    $db_fields;

        
    //abstract callbacks
        
    function start_lvl($output) { return $output; }
        function 
    end_lvl($output)   { return $output; }
        function 
    start_el($output)  { return $output; }
        function 
    end_el($output)    { return $output; }

        function 
    walk($elements$to_depth) {
            
    $args array_slice(func_get_args(), 2); $parents = array(); $depth 1$previous_element ''$output '';

            
    //padding at the end
            
    $last_element->post_parent 0;
            
    $last_element->post_id 0;
            
    $elements[] = $last_element;

            
    $id_field $this->db_fields['id'];
            
    $parent_field $this->db_fields['parent'];

            
    $flat = ($to_depth == -1) ? true false;

            foreach ( 
    $elements as $element ) {
                
    // If flat, start and end the element and skip the level checks.
                
    if ( $flat) {
                    
    // Start the element.
                    
    if ( isset($element->$id_field) && $element->$id_field != ) {
                        
    $cb_args array_merge( array($output$element$depth 1), $args);
                        
    $output call_user_func_array(array(&$this'start_el'), $cb_args);
                    }

                    
    // End the element.
                    
    if ( isset($element->$id_field) && $element->$id_field != ) {
                        
    $cb_args array_merge( array($output$element$depth 1), $args);
                        
    $output call_user_func_array(array(&$this'end_el'), $cb_args);
                    }

                    continue;
                }

                
    // Walk the tree.
                
    if ( !empty($previous_element) && ($element->$parent_field == $previous_element->$id_field) ) {
                    
    // Previous element is my parent. Descend a level.
                    
    array_unshift($parents$previous_element);
                    if ( !
    $to_depth || ($depth $to_depth) ) { //only descend if we're below $to_depth
                        
    $cb_args array_merge( array($output$depth), $args);
                        
    $output call_user_func_array(array(&$this'start_lvl'), $cb_args);
                    } else if ( 
    $to_depth && $depth == $to_depth  ) {  // If we've reached depth, end the previous element.
                        
    $cb_args array_merge( array($output$previous_element$depth), $args);
                        
    $output call_user_func_array(array(&$this'end_el'), $cb_args);
                    }
                    
    $depth++; //always do this so when we start the element further down, we know where we are
                
    } else if ( $element->$parent_field == $previous_element->$parent_field) {
                    
    // On the same level as previous element.
                    
    if ( !$to_depth || ($depth <= $to_depth) ) {
                        
    $cb_args array_merge( array($output$previous_element$depth 1), $args);
                        
    $output call_user_func_array(array(&$this'end_el'), $cb_args);
                    }
                } else if ( 
    $depth ) {
                    
    // Ascend one or more levels.
                    
    if ( !$to_depth || ($depth <= $to_depth) ) {
                        
    $cb_args array_merge( array($output$previous_element$depth 1), $args);
                        
    $output call_user_func_array(array(&$this'end_el'), $cb_args);
                    }

                    while ( 
    $parent array_shift($parents) ) {
                        
    $depth--;
                        if ( !
    $to_depth || ($depth $to_depth) ) {
                            
    $cb_args array_merge( array($output$depth), $args);
                            
    $output call_user_func_array(array(&$this'end_lvl'), $cb_args);
                            
    $cb_args array_merge( array($output$parent$depth 1), $args);
                            
    $output call_user_func_array(array(&$this'end_el'), $cb_args);
                        }
                        if ( 
    $element->$parent_field == $parents[0]->$id_field ) {
                            break;
                        }
                    }
                } else if ( !empty(
    $previous_element) ) {
                    
    // Close off previous element.
                    
    if ( !$to_depth || ($depth <= $to_depth) ) {
                        
    $cb_args array_merge( array($output$previous_element$depth 1), $args);
                        
    $output call_user_func_array(array(&$this'end_el'), $cb_args);
                    }
                }

                
    // Start the element.
                
    if ( !$to_depth || ($depth <= $to_depth) ) {
                    if ( 
    $element->$id_field != ) {
                        
    $cb_args array_merge( array($output$element$depth 1), $args);
                        
    $output call_user_func_array(array(&$this'start_el'), $cb_args);
                    }
                }

                
    $previous_element $element;
            }

            return 
    $output;
        }
    }

    class 
    Walker_Page extends Walker {
        var 
    $tree_type 'page';
        var 
    $db_fields = array ('parent' => 'post_parent''id' => 'ID'); //TODO: decouple this

        
    function start_lvl($output$depth) {
            
    $indent str_repeat("\t"$depth);
            
    $output .= "\n$indent<ul>\n";
            return 
    $output;
        }

        function 
    end_lvl($output$depth) {
            
    $indent str_repeat("\t"$depth);
            
    $output .= "$indent</ul>\n";
            return 
    $output;
        }

        function 
    start_el($output$page$depth$current_page$args) {
            if ( 
    $depth )
                
    $indent str_repeat("\t"$depth);
            
    extract($argsEXTR_SKIP);
            
    $css_class 'page_item page-item-'.$page->ID;
            
    $_current_page get_page$current_page );
            if ( 
    $page->ID == $current_page )
                
    $css_class .= ' current_page_item ';
            elseif ( 
    $_current_page && $page->ID == $_current_page->post_parent )
                
    $css_class .= ' current_page_parent';

            
    $output .= $indent '<li class="' $css_class '"><a href="' get_page_link($page->ID) . '" title="' attribute_escape(apply_filters('the_title'$page->post_title)) . '">' apply_filters('the_title'$page->post_title) . '</a>';

            if ( !empty(
    $show_date) ) {
                if ( 
    'modified' == $show_date )
                    
    $time $page->post_modified;
                else
                    
    $time $page->post_date;

                
    $output .= " " mysql2date($date_format$time);
            }

            return 
    $output;
        }

        function 
    end_el($output$page$depth) {
            
    $output .= "</li>\n";

            return 
    $output;
        }

    }

    class 
    Walker_PageDropdown extends Walker {
        var 
    $tree_type 'page';
        var 
    $db_fields = array ('parent' => 'post_parent''id' => 'ID'); //TODO: decouple this

        
    function start_el($output$page$depth$args) {
                    
    $pad str_repeat('&nbsp;'$depth 3);

                    
    $output .= "\t<option value=\"$page->ID\"";
                    if ( 
    $page->ID == $args['selected'] )
                                    
    $output .= ' selected="selected"';
                    
    $output .= '>';
                    
    $title wp_specialchars($page->post_title);
                    
    $output .= "$pad$title";
                    
    $output .= "</option>\n";

                    return 
    $output;
        }
    }

    class 
    Walker_Category extends Walker {
        var 
    $tree_type 'category';
        var 
    $db_fields = array ('parent' => 'parent''id' => 'term_id'); //TODO: decouple this

        
    function start_lvl($output$depth$args) {
            if ( 
    'list' != $args['style'] )
                return 
    $output;

            
    $indent str_repeat("\t"$depth);
            
    $output .= "$indent<ul class='children'>\n";
            return 
    $output;
        }

        function 
    end_lvl($output$depth$args) {
            if ( 
    'list' != $args['style'] )
                return 
    $output;

            
    $indent str_repeat("\t"$depth);
            
    $output .= "$indent</ul>\n";
            return 
    $output;
        }

        function 
    start_el($output$category$depth$args) {
            
    extract($args);

            
    $cat_name attribute_escape$category->name);
            
    $cat_name apply_filters'list_cats'$cat_name$category );
            
    $link '<a href="' get_category_link$category->term_id ) . '" ';
            if ( 
    $use_desc_for_title == || empty($category->description) )
                
    $link .= 'title="' sprintf(__'View all posts filed under %s' ), $cat_name) . '"';
            else
                
    $link .= 'title="' attribute_escapeapply_filters'category_description'$category->description$category )) . '"';
            
    $link .= '>';
            
    $link .= $cat_name '</a>';

            if ( (! empty(
    $feed_image)) || (! empty($feed)) ) {
                
    $link .= ' ';

                if ( empty(
    $feed_image) )
                    
    $link .= '(';

                
    $link .= '<a href="' get_category_rss_link0$category->term_id$category->slug ) . '"';

                if ( empty(
    $feed) )
                    
    $alt ' alt="' sprintf(__'Feed for all posts filed under %s' ), $cat_name ) . '"';
                else {
                    
    $title ' title="' $feed '"';
                    
    $alt ' alt="' $feed '"';
                    
    $name $feed;
                    
    $link .= $title;
                }

                
    $link .= '>';

                if ( empty(
    $feed_image) )
                    
    $link .= $name;
                else
                    
    $link .= "<img src='$feed_image'$alt$title" ' />';
                
    $link .= '</a>';
                if ( empty(
    $feed_image) )
                    
    $link .= ')';
            }

            if ( isset(
    $show_count) && $show_count )
                
    $link .= ' (' intval($category->count) . ')';

            if ( isset(
    $show_date) && $show_date ) {
                
    $link .= ' ' gmdate('Y-m-d'$category->last_update_timestamp);
            }

            if ( 
    $current_category )
                
    $_current_category get_category$current_category );

            if ( 
    'list' == $args['style'] ) {
                
    $output .= "\t<li";
                
    $class 'cat-item cat-item-'.$category->term_id;
                if ( 
    $current_category && ($category->term_id == $current_category) )
                    
    $class .=  ' current-cat';
                elseif ( 
    $_current_category && ($category->term_id == $_current_category->parent) )
                    
    $class .=  ' current-cat-parent';
                
    $output .=  ' class="'.$class.'"';
                
    $output .= ">$link\n";
            } else {
                
    $output .= "\t$link<br />\n";
            }

            return 
    $output;
        }

        function 
    end_el($output$page$depth$args) {
            if ( 
    'list' != $args['style'] )
                return 
    $output;

            
    $output .= "</li>\n";
            return 
    $output;
        }

    }

    class 
    Walker_CategoryDropdown extends Walker {
        var 
    $tree_type 'category';
        var 
    $db_fields = array ('parent' => 'parent''id' => 'term_id'); //TODO: decouple this

        
    function start_el($output$category$depth$args) {
            
    $pad str_repeat('&nbsp;'$depth 3);

            
    $cat_name apply_filters('list_cats'$category->name$category);
            
    $output .= "\t<option value=\"".$category->term_id."\"";
            if ( 
    $category->term_id == $args['selected'] )
                
    $output .= ' selected="selected"';
            
    $output .= '>';
            
    $output .= $pad.$cat_name;
            if ( 
    $args['show_count'] )
                
    $output .= '&nbsp;&nbsp;('$category->count .')';
            if ( 
    $args['show_last_update'] ) {
                
    $format 'Y-m-d';
                
    $output .= '&nbsp;&nbsp;' gmdate($format$category->last_update_timestamp);
            }
            
    $output .= "</option>\n";

            return 
    $output;
        }
    }

    class 
    WP_Ajax_Response {
        var 
    $responses = array();

        function 
    WP_Ajax_Response$args '' ) {
            if ( !empty(
    $args) )
                
    $this->add($args);
        }

        
    // a WP_Error object can be passed in 'id' or 'data'
        
    function add$args '' ) {
            
    $defaults = array(
                
    'what' => 'object''action' => false,
                
    'id' => '0''old_id' => false,
                
    'data' => '''supplemental' => array()
            );

            
    $r wp_parse_args$args$defaults );
            
    extract$rEXTR_SKIP );

            if ( 
    is_wp_error($id) ) {
                
    $data $id;
                
    $id 0;
            }

            
    $response '';
            if ( 
    is_wp_error($data) )
                foreach ( 
    $data->get_error_codes() as $code )
                    
    $response .= "<wp_error code='$code'><![CDATA[" $data->get_error_message($code) . "]]></wp_error>";
            else
                
    $response "<response_data><![CDATA[$data]]></response_data>";

            
    $s '';
            if ( (array) 
    $supplemental )
                foreach ( 
    $supplemental as $k => $v )
                    
    $s .= "<$k><![CDATA[$v]]></$k>";

            if ( 
    false === $action )
                
    $action $_POST['action'];

            
    $x '';
            
    $x .= "<response action='{$action}_$id'>"// The action attribute in the xml output is formatted like a nonce action
            
    $x .=    "<$what id='$id'" . ( false !== $old_id "old_id='$old_id'>" '>' );
            
    $x .=        $response;
            
    $x .=        $s;
            
    $x .=    "</$what>";
            
    $x .= "</response>";

            
    $this->responses[] = $x;
            return 
    $x;
        }

        function 
    send() {
            
    header('Content-Type: text/xml');
            echo 
    "<?xml version='1.0' standalone='yes'?><wp_ajax>";
            foreach ( 
    $this->responses as $response )
                echo 
    $response;
            echo 
    '</wp_ajax>';
            die();
        }
    }

    ?>
    Dovrebbe essere negli ultimi due files la classe...
    Giorgio (GrG) Bonfiglio
    Cloud Evangelist, System/Network Engineer
    http://blog.grg-web.eu/ http://www.giorgio-bonfiglio.tel/

Discussioni Simili

  1. Hosting per Wordpress
    Di Gabribrì nel forum Shared e Managed Webhosting
    Risposte: 3
    Ultimo Messaggio: 09-03-2011, 18:56
  2. Wordpress MU e BuddyPress: rendere Wordpress sociale
    Di Redazione HostingTalk nel forum Interviste & contenuti professionali
    Risposte: 0
    Ultimo Messaggio: 06-10-2010, 09:37
  3. Wordpress VirtualHost
    Di valent nel forum Gestione Server Windows e Server Linux
    Risposte: 3
    Ultimo Messaggio: 13-05-2009, 14:57
  4. siteurl WordPress come cambiarla?
    Di GrG nel forum Io Programmo
    Risposte: 3
    Ultimo Messaggio: 03-12-2007, 13:44
  5. siteurl WordPress come cambiarla?
    Di GrG nel forum PHP
    Risposte: 3
    Ultimo Messaggio: 03-12-2007, 13:44

Informazioni Discussione

Utenti che Stanno Visualizzando Questa Discussione

Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)

Tag per Questa Discussione

Segnalibri

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •