Modificare massivamente tutti gli articoli

  • Avatar di Sconosciuto

    Buongiorno
    Sono nuovo di wordpress e sto effettuando i primi passi.
    Mi hanno chiesto, a titolo gratuito, di gestire un sito web e, a parte lo studio delle varie caratteristiche della dashboard che
    sono risultate abbastanza scorrevoli, mi si e’ presentato da subito un problema che descrivo brevemente.
    Il sito in questione ospita un grande numero di articoli ai quali manca la formattazione relativa alla giustificazione del testo.
    Chiaramente la modifica articolo per articolo risulta onerosa dal punto di vista temporale, alche’ avevo pensato a delle soluzioni
    che elenco ma che, nessuna delle quali, mi soddisfa, per i motivi che mi accingo a spiegare.
    Supponendo di essere sulla home della dashboard:
    1) Sotto “Aspetto” -> “Temi” -> “Personalizza” -> “Opzioni avanzate” -> “CSS Aggiuntivo” ho inserito la seguente classe di stile:
    .entry.themeform.fittexted_for_entry > div > p {
    text-align: justify;
    }
    Qua si puo’ anche disquisire sulla scelta del selettore CSS. Anche se non e’ quello esattamente corretto, alla fine lo si trova, ma il punto non e’ questo.
    Questa soluzione da il vantaggio, con un impatto minimo, di visualizzare in runtime, a livello di front-end, la modifica desiderata. Quello che non mi piace e’ la difformita che esiste tra il contentuto del front-end e quello del back-end in cui, il testo in realta, non e’ giustificato.

    2) Modifica della tabella wp_posts del db MYSQL sottostante. Utilizzando una REPLACE, con una update (opportunamente parametrizzata) e’ possibile effettuare la modifica, giustificando in un passaggio solo, tutti i posts.
    Ho gia’ visto, a livello di tabella, cosa inserisce wordpress nel campo “post_content”, quando si esegue la giustificazione di un testo. Basterebbe, immagino, eseguire qualcosa del genere:
    REPLACE(wp_posts.post_content, ‘<!– wp:paragraph –>’, ‘<!– wp:paragraph {“align”:”justify”} –>’)
    e poi:
    REPLACE(wp_posts.post_content, ‘<p>’, ‘<p class=”has-text-align-justify”>’)
    Anche questa soluzione provocherebbe una modifica immediata ma, non avendo una conoscenza approfondita della struttura relazionale del db sottostante, temo di fare qualche danno.

    Qualcuno mi puo’ aiutare? Esiste qualche area nella dashboard o qualche plugin che permette una modifica massiva del genere?
    Grazie anticipatamente.

  • Avatar di Sconosciuto

    Qualcuno potrebbe confermarmi la correttezza della seguente query?

    
    UPDATE wp_posts SET post_content = REPLACE(post_content, '<!-- wp:paragraph -->n<p>', '<!-- wp:paragraph {"align":"justify"} -->n<p class="has-text-align-justify">')
    WHERE ID IN (SELECT TB.post_id FROM (
                                  SELECT wp_posts.ID as post_id,
                                         wp_posts.post_author  as post_author,
                                         wp_posts.post_date    as post_date,
                                         wp_posts.post_title   as post_title,
                                         wp_posts.post_content as post_content,
                                         wp_terms.name         as category_name,
                                         wp_posts.post_status,
                                         wp_posts.post_type
                                  FROM wp_posts
                                           LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
                                           LEFT JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id)
                                           LEFT JOIN wp_terms ON (wp_terms.term_id = wp_term_taxonomy.term_id)
                                  WHERE wp_term_taxonomy.taxonomy = 'category' AND
                                        wp_terms.name = 'CATEGORIA_DI_ARTICOLI_SU_CUI_EFFETTUARE_LA_UPDATE'
                                  ORDER BY wp_posts.post_title
                              ) AS TB);
    

    Gli altri UPDATE wp_posts SET post_content = REPLACE(post_content, ‘<!– wp:paragraph –>n<p>’, ‘<!– wp:paragraph {“align”:”justify”} –>n<p class=”has-text-align-justify”>’)
    WHERE ID IN (SELECT TB.post_id FROM (
    SELECT wp_posts.ID as post_id,
    wp_posts.post_author as post_author,
    wp_posts.post_date as post_date,
    wp_posts.post_title as post_title,
    wp_posts.post_content as post_content,
    wp_terms.name as category_name,
    wp_posts.post_status,
    wp_posts.post_type
    FROM wp_posts
    LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
    LEFT JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id)
    LEFT JOIN wp_terms ON (wp_terms.term_id = wp_term_taxonomy.term_id)
    WHERE wp_term_taxonomy.taxonomy = ‘category’ AND
    wp_terms.name = ‘APOSTOLATO’
    ORDER BY wp_posts.post_title
    ) AS TB);

    I campi di selezione oltre l’id di wp_posts mi sono serviti a capire l’insieme di articoli da updatare.
    Potreste darmi conferma??

  • Avatar di Sconosciuto

    Mi scuso per il precedente post, ma ho fatto un po di confusione. Vi prego di non considerare la parte di post tra la query e l’ultima frase.

  • Avatar di Sconosciuto

    Ciao!

    Non ho trovato nessun sito ospitato su WordPress.com sul tuo account, quindi credo tu ti riferisca a un sito che utilizza la versione auto-ospitata di WordPress o WordPress.org. Questi forum sono esclusivamente per siti ospitati su WordPress.com.

    Per aiuto con siti che utilizzano WordPress.org puoi rivolgerti qui:

    https://wordpress.org/support/

    Per chiarire qualsiasi confusione, WordPress.com e WordPress.org sono due entità diverse, ma la differenza essenziale è che non abbiamo accesso a tutti i siti WordPress, solo quelli ospitati sui nostri server WordPress.com.

    Maggiori dettagli sulle differenze tra WordPress.com e WordPress.org sono disponibili nel seguente link:

    WordPress.com e WordPress.org

    Buon weekend!

  • L'argomento ‘Modificare massivamente tutti gli articoli’ è chiuso a nuove risposte.