Use remote images and media on local development env

Quante volte avete avuto la necessità di copiare in locale il vostro sito remoto per testare alcune modifiche?
E ogni volta avete dovuto scaricare la cartella `wp-content/uploads` per poter vedere le immagini e i vari file, giusto?
Con queste tre righe potete "usare" i file remoti nel vostro ambiente locale.
Aggiungetele al vostro `.htaccess` locale (adattando percorsi e url, ovviamente).

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/wp-content/uploads/[^\/]*/.*$
RewriteRule ^(.*)$ https://your-remote-website.com/$1 [QSA,L]

Fix jQuery and WordPress “url.indexOf is not a function” error

So, you have updated your WordPress to 5.6 and something strange happened to your website? You open the inspector (Command+Option+C (Mac) or Control+Shift+C (Windows, Linux, Chrome OS), and you find a red message like url.indexOf is not a function error ? Wtf Javascript? How to fix it?

WordPress 5.6 viene fornito con una versione aggiornata di jQuery: 3.5.1.

WordPress 5.5 ha smesso di abilitare lo script helper jQuery Migrate per impostazione predefinita e con l'imminente rilascio di WordPress 5.6, la versione in bundle di jQuery verrà aggiornata (da 1.12.4-wp a 3.5.1).

Ciò che ciò comporta per gli utenti è che qualsiasi plugin o tema che in precedenza si basava sullo strumento jQuery Migrate per funzionare come previsto (a causa del codice più vecchio o solo di un aggiornamento mancato alle funzioni deprecate), potrebbe ora avere comportamenti imprevisti.

make.wordpress.org

.load, .unload, and .error, deprecati da jQuery 1.8, non ci sono più. Utilizzate .on() per registrare i listeners.

jQuery blog

So the correct way is to change in your javascript all your occurrences of

$(window).load(function() { ... });

in qualcosa di simile

$(window).on('load', function() { ... });

Ma a volte gli errori non sono relativi a codice che avete scritto voi, giusto? Cosa fare quindi?
Try adding this code before other javascript scripts and after jQuery inclusion.

jQuery.fn.load = function(callback){ jQuery(window).on("load", callback) };

CF7: inviare i dati verso un altro indirizzo in formato JSON

Contact Form 7

Se c'è bisogno di inviare i dati da un form di Contact Form 7 (CF7) form to another URL you can use this simple PHP script. Just add it in your WordPress functions.php file inside your theme.

// define the URL where data should be submitted, this constant can be stored in your `wp-config.php` file
define('CF7_TO_API_URL', 'https://...........');
function action_wpcf7_mail_sent( $contact_form ) { 
    // you can limit this script to certains forms, just change the IDs (111,222,333) and uncomment line 10 and 47
    // if (in_array($WPCF7_ContactForm->id(), [111,222,333])) {
        $wpcf7      = WPCF7_ContactForm::get_current();
        $submission = WPCF7_Submission::get_instance();
        if ($submission) {
            $data = $submission->get_posted_data();
            $url = $submission->get_meta( 'url' ); // url where the submit come from
            $postId = url_to_postid($url); // from the url we get the post ID
            $postType = get_post_type($postId); // from post ID we get the post type
            $title = get_the_title($postId); // and the title
            $output = [
                "firstname" => $data['firstname'],
                "lastname" => $data['lastname'],
                "email" => $data['email'],
                "phone" => $data['phone'], // add all needed fields
                "source" => $url,
                "is_product" => $postType === 'product', // ex: we want to know if the page was a product (custom post)
                "product_name" => $postType === 'product' ? $title : '', // if it is a product tell me the product name (title)
                "want_newsletter" => $data['newsletter'] === 1  ||   $data['newsletter'] === "1" // ex. for checkbox    
            ];
            $options = array(
                'http' => array(
                    'method'  => 'POST', // you can change the method (GET, POST)
                    'content' => json_encode( $output ), // php array as json
                    'header'=>  "Content-Type: application/json\r\n" .
                        "Accept: application/json\r\n"
                )
            );
              
            $context  = stream_context_create( $options );
            $result = file_get_contents( CF7_TO_API_URL, false, $context );
            $response = json_decode( $result ); // you can use/output the response from 
        }
    // }
}; 
         
// add the action 
add_action( 'wpcf7_mail_sent', 'action_wpcf7_mail_sent', 10, 1 );