• User Attivo

    Spostamento wp da sottocartella a root

    Salve a tutti,
    mi è già capitato diverse volte che, spostando un sito in Wordpress da una sottocartella alla root principale, parte dei file di immagine (non tutti) non vengono trasferiti, o meglio, mantengono l'url della sottocartella.
    Per spiegarmi meglio, nel passaggio:
    da www . sitoesempio . it / prova
    a www . sitoesempio . it
    diverse immagini restano con l'url www . sitoesempio . / prova / immagine . jpg
    Non riesco a spiegarmi il perché e soprattutto vorrei evitarmi il lavoraccio di andare a correggere tutte le url delle immagini dopo il trasferimento.
    Qualcuno può aiutarmi?
    Forse (scusate, non sono un esperto di mysql...) esiste una query che permette di correggere le url in un botto solo...?
    Grazie.
    Hikari


  • Moderatore

    Il sistema c'è, ma è piuttosto complesso.
    Come prima cosa, settare i campi corretti nel pannello amministrativo di wordpress.
    Se ancora ci sono errori, come nel tuo caso, il sistema è quello di fare un repleace.
    Ti crei un file php, crei la connessione al database, cicli tutta la tabella wp_posts.
    Per ogni risultato positivo ( TRUE ), cerchi all'interno del campo se ci sono immagini e se ci sono cambi il percorso.
    Ti faccio un esempio banale

    
    $query = "SELECT * FROM wp_posts";
    $result = mysql_query( $result );
    while( $row = mysql_fetch_object( $result ) ) {
      $var = str_repleace( 'src="vecchiaurl.it/sottodominio/', 'src="nuovaurl.it/', $row->post_content );
      if ( $var ) {
        $update = "UPDATE `wp_posts` SET `post_content` = '".$var."' WHERE ID = '".$row->ID.'";
        if ( mysql_query( $update ) ) {
         echo 'Good Wordk!!';
        } else { echo 'Aiaiaiaiaiaiaaiai!; }
      }
    }
    
    

    Ovviamente ho bypassato la connessione al DB.
    Credo comunque che ti sia di aiuto 😉

    Edit: dopo src, ci va anche http: etc, ma il forum non mi permette di scriverlo 😉

    Re-Edit: avevo fatto un plugin tempo fa per cercare e sostiuire le occorrenze dal database. Provo a vedere se funziona


  • User Attivo

    Grazie. Effettivamente è un po' complesso... Se ci fosse un plugin sarebbe l'ideale...
    H.


  • Moderatore

    Il plugin è il mio e controllato adesso funziona anche sui link.
    Ma:
    A) E' un plugin che rischia di comprometterti il database (quindi devi fare backup )
    B) Non posso darti il plugin in forma gratuita, ti ho già aiutato dicendoti come fare. Sbaglio? ( purtroppo è il mio lavoro )
    C) Se poi lo vuoi comprare, mi puoi scrivere in PVT 😄


  • User Attivo

    Questa query che ho trovato, potrebbe risolvere? (gli spazi nelle url li ho messi io)

    UPDATE wp_posts SET guid = REPLACE (

    guid,

    'http: // www . tuosito . it /wordpress/',

    'http: // www . tuosito . it/');


  • Moderatore

    Quella query è errata.
    in wp_posts non esiste un campo guid.
    poi stai dichiarando di cercare guid, in tuosito.it e se lo trova di fare il replace con tuosito.it/wordpress/

    No dico, le capiamo le query?
    La soluzione corretta è quella che gli ho offerto io nella mia prima risposta. Gli descritto esattamente come e dove agire.
    Se pou lui è in cerca di plugin, ce ne sono diversi, a pagamento o gratuiti.