Tutorial WordPress affidabili, quando ne hai più bisogno.
Guida per principianti a WordPress
WPB Cup
25 Milioni+
Siti web che utilizzano i nostri plugin
16+
Anni di esperienza con WordPress
3000+
Tutorial WordPress di esperti

Come usare Masonry per aggiungere una griglia di post in stile Pinterest in WordPress

Questo è un post ospite di Josh Pollock

La visualizzazione a griglia dei post simile a Pinterest è un design popolare per le pagine di indice dei blog di WordPress da un po' di tempo. È popolare non solo perché imita l'aspetto del popolare sito di social media, ma anche perché sfrutta al meglio lo spazio sullo schermo. Su un indice di blog di WordPress, consente a ogni anteprima di post di avere le dimensioni naturali necessarie, senza lasciare spazio extra.

In questo tutorial, ti mostrerò come utilizzare la popolare libreria JavaScript Masonry per creare layout a griglia a cascata per l'indice del tuo blog, nonché per le pagine di archivio del tuo tema. Affronterò alcuni problemi che devi considerare per l'ottimizzazione per dispositivi mobili e come risolverli.

Screenshot del layout a griglia Masonry in WordPress

Nota: questo è un tutorial di livello avanzato per coloro che si sentono a proprio agio nell'editing dei temi di WordPress e hanno sufficienti conoscenze di HTML/CSS.

Passaggio 1: aggiungi le librerie necessarie al tuo tema

Aggiornamento: WordPress 3.9 include ora l'ultima versione di Masonry.

Per prima cosa devi caricare Masonry nel tuo tema, usando questo codice:

if (! function_exists('slug_scripts_masonry') ) :
if ( ! is_admin() ) :
function slug_scripts_masonry() {
    wp_enqueue_script('masonry');
    wp_enqueue_style('masonry’, get_template_directory_uri().'/css/’);
}
add_action( 'wp_enqueue_scripts', 'slug_scripts_masonry' );
endif; //! is_admin()
endif; //! slug_scripts_masonry exists

Questo codice carica semplicemente masonry e lo rende disponibile nei file del template del tuo tema (vedi la nostra guida su come aggiungere correttamente JavaScript e stili in WordPress). Si noti inoltre che non stiamo aggiungendo jQuery come dipendenza per nessuno dei due. Uno dei vantaggi di Masonry 3 è che non richiede jQuery, ma può essere utilizzato con esso. Nella mia esperienza, inizializzare Masonry senza jQuery è più affidabile e apre la possibilità di saltare il caricamento di jQuery, il che può aiutare sia con i tempi di caricamento della pagina che con i problemi di compatibilità.

Passaggio 2: Inizializza il JavaScript

La funzione successiva imposta Masonry, definisce i contenitori che verranno utilizzati con esso e si assicura anche che tutto avvenga nell'ordine corretto. Masonry deve calcolare le dimensioni di ciascuno degli elementi nella pagina per disporre dinamicamente la sua griglia. Un problema che ho riscontrato con Masonry in molti browser è che Masonry calcola erroneamente l'altezza degli elementi con immagini a caricamento lento, portando a elementi sovrapposti. La soluzione è utilizzare imagesLoaded per impedire a Masonry di calcolare il layout finché tutte le immagini non sono state caricate. Ciò garantisce un dimensionamento corretto.

Questa è la funzione e l'azione che produrrà lo script di inizializzazione nel footer della pagina:

if ( ! function_exists( 'slug_masonry_init' )) :
function slug_masonry_init() { ?>
<script>
    //set the container that Masonry will be inside of in a var
    var container = document.querySelector('#masonry-loop');
    //create empty var msnry
    var msnry;
    // initialize Masonry after all images have loaded
    imagesLoaded( container, function() {
        msnry = new Masonry( container, {
            itemSelector: '.masonry-entry'
        });
    });
</script>
<?php }
//add to wp_footer
add_action( 'wp_footer', 'slug_masonry_init' );
endif; // ! slug_masonry_init exists

La funzione è spiegata passo dopo passo con commenti inline. Ciò che fa la funzione JavaScript è dire a Masonry di cercare all'interno di un contenitore con l'ID "masonry-loop" gli elementi con la classe "masonry-entry" e di calcolare la griglia solo dopo che le immagini sono state caricate. Impostiamo il contenitore esterno con querySelector e quello interno con itemSelector.

Passaggio 2: Crea il loop Masonry

Invece di aggiungere il markup HTML per Masonry direttamente a un template, creeremo una parte di template separata per esso. Crea un nuovo file chiamato "content-masonry.php" e aggiungilo al tuo tema. Questo ti permetterà di aggiungere il loop Masonry a quanti template desideri.

Nel tuo nuovo file aggiungerai il codice mostrato di seguito. Il markup è simile a quello che vedresti normalmente per qualsiasi anteprima di contenuto. Puoi modificarlo come preferisci, assicurati solo che l'elemento più esterno abbia la classe "masonry-entry" che abbiamo impostato come itemSelector nell'ultimo passaggio.

<article class="masonry-entry" id="post-<?php the_ID(); ?>" <?php post_class(); ?> >
<?php if ( has_post_thumbnail() ) : ?>
    <div class="masonry-thumbnail">
        <a href="<?php the_permalink(' ') ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail('masonry-thumb'); ?></a>
    </div><!--.masonry-thumbnail-->
<?php endif; ?>
    <div class="masonry-details">
        <h5><a href="<?php the_permalink(' ') ?>" title="<?php the_title(); ?>"><span class="masonry-post-title"> <?php the_title(); ?></span></a></h5>
        <div class="masonry-post-excerpt">
            <?php the_excerpt(); ?>
        </div><!--.masonry-post-excerpt-->
    </div><!--/.masonry-entry-details -->  
</article><!--/.masonry-entry-->

Questo markup ha classi per ciascuna delle sue parti in modo da poter aggiungere markup per abbinarlo al tuo tema. Mi piace aggiungere un bel bordo leggermente arrotondato a .masonry-entry. Un'altra bella opzione è nessun bordo per .masonry-entry, ma dargli una leggera ombra. Questo ha un aspetto particolarmente buono quando la miniatura del post si estende per tutta la larghezza del contenitore, cosa che può essere realizzata dando a .masonry-thumbnail margini e padding di 0 in tutte le direzioni. Dovrai aggiungere tutti questi stili in un file chiamato masonry.css nella directory css del tuo tema.

Passaggio 3: Aggiungi il loop Masonry ai template

Ora che abbiamo la nostra parte di template, puoi usarla in qualsiasi template del tuo tema desideri. Potresti aggiungerla a index.php, ma non a category.php se non vuoi che venga utilizzata per gli archivi delle categorie. Se vuoi che venga utilizzata solo nella home page del tuo tema, quando è impostata per mostrare i post del blog, la useresti in home.php. Ovunque tu scelga, tutto ciò che devi fare è racchiudere il tuo loop in un contenitore con l'id "masonry-loop" e aggiungere la parte di template al loop usando get_template_part(). Assicurati di iniziare il contenitore del loop masonry prima di while (have_posts() ).

Ad esempio, ecco il ciclo principale dal file index.php di twentythirteen:

<?php if ( have_posts() ) : ?>

    <?php /* The loop */ ?>
    <?php while ( have_posts() ) : the_post(); ?>
        <?php get_template_part( 'content', get_post_format() ); ?>
    <?php endwhile; ?>

    <?php twentythirteen_paging_nav(); ?>

<?php else : ?>
    <?php get_template_part( 'content', 'none' ); ?>
<?php endif; ?>

Ed ecco come è stato modificato per utilizzare il nostro ciclo Masonry:

<?php if ( have_posts() ) : ?>
<div id="masonry-loop">
    <?php /* The loop */ ?>
    <?php while ( have_posts() ) : the_post(); ?>
        <?php get_template_part( 'content', 'masonry' ?>
    <?php endwhile; ?>
</div><!--/#masonry-loop-->
    <?php twentythirteen_paging_nav(); ?>

<?php else : ?>
    <?php get_template_part( 'content', 'none' ); ?>
<?php endif; ?>

Passaggio 4: Imposta le larghezze responsive degli elementi Masonry

Ci sono diversi modi per impostare la larghezza di ogni elemento Masonry. Puoi impostare la larghezza utilizzando un numero di pixel quando inizializzi Masonry. Non sono un fan di questo approccio poiché utilizzo temi responsive e richiede query multimediali complesse per ottenere risultati corretti su schermi piccoli. Per i design responsive, ho scoperto che la cosa migliore da fare è impostare un valore di larghezza per .masonry-entry con una percentuale, in base a quanti elementi desideri in una riga, e lasciare che Masonry faccia il resto dei calcoli per te.

Tutto ciò che serve è dividere 100 per il numero di elementi che desideri impostare la percentuale in una semplice voce nel file style.css del tuo tema. Ad esempio, se desideri quattro elementi per riga, potresti farlo nel tuo file masonry.css:

.masonry-entry{width:25%}

Passaggio 5: Ottimizzazione per dispositivi mobili

Potremmo fermarci qui, ma non credo che il risultato finale funzioni in modo incredibilmente efficace sugli schermi dei telefoni piccoli. Una volta che sei soddisfatto di come appare il tuo tema con la nuova griglia Masonry sul tuo desktop, controllalo sul tuo telefono. Se non sei soddisfatto di come appare sul tuo telefono, allora dovrai fare un po' di lavoro.

Non credo ci sia abbastanza spazio sullo schermo di un telefono per tutto ciò che abbiamo aggiunto alla nostra parte di modello content-masonry. Due buone soluzioni a tua disposizione sono accorciare l'estratto per i telefoni o saltarlo del tutto. Ecco una funzione aggiuntiva che puoi aggiungere al file functions.php del tuo tema per farlo. Poiché non credo che questi problemi siano un problema sui tablet, sto utilizzando un ottimo plugin Mobble in tutti gli esempi di questa sezione per apportare modifiche solo ai telefoni, non ai tablet. Sto anche verificando se Mobble è attivo prima di utilizzarlo e, se necessario, ricorro alla funzione di rilevamento mobile più generale wp_is_mobile, che è integrata in WordPress.

if (! function_exists('slug_custom_excerpt_length') ) :
function slug_custom_excerpt_length( $length ) {
    //set the shorter length once
    $short = 10;
    //set long length once
    $long = 55;
    //if we can only set short excerpt for phones, else short for all mobile devices
    if (function_exists( 'is_phone') {
        if ( is_phone() ) {
            return $short;
        }
        else {
            return $long;
        }        
    }
    else {
        if ( wp_is_mobile() ) {
            return $short;
        }
        else {
            return $long;
        }
    }
}
add_filter( 'excerpt_length', 'slug_custom_excerpt_length', 999 );
endif; // ! slug_custom_excerpt_length exists

Come potete vedere, iniziamo memorizzando la lunghezza dell'estratto lungo e la lunghezza dell'estratto corto in variabili, poiché utilizzeremo quei valori due volte e vogliamo poterli modificare da un unico posto, se necessario in seguito. Da lì, testiamo se possiamo usare is_phone() di Mobble. In tal caso, impostiamo l'estratto corto per i telefoni e l'estratto lungo se non lo siamo. Dopodiché, facciamo la stessa cosa di base, ma usando wp_is_mobile, che influenzerà tutti i dispositivi mobili, se is_phone() non può essere utilizzato. Speriamo che la parte else di questa funzione non venga mai utilizzata, ma è bene avere un backup, per sicurezza. Una volta impostata la logica della lunghezza dell'estratto, si tratta solo di agganciare la funzione al filtro excerpt_length.

Accorciare l'estratto è un'opzione, ma possiamo anche eliminarlo del tutto con un semplice processo. Ecco una nuova versione di content-masonry, con l'intera porzione di estratto omessa sui telefoni:

<article class="masonry-entry" id="post-<?php the_ID(); ?>" <?php post_class(); ?> >
<?php if ( has_post_thumbnail() ) : ?>
    <div class="masonry-thumbnail">
        <a href="<?php the_permalink(' ') ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail('masonry-thumb'); ?></a>
    </div><!--.masonry-thumbnail-->
<?php endif; ?>
    <div class="masonry-details">
        <h5><a href="<?php the_permalink(' ') ?>" title="<?php the_title(); ?>"><span class="masonry-post-title"> <?php the_title(); ?></span></a></h5>
        <?php 
            //put the excerpt markup in variable so we don't have to repeat it multiple times.
            $excerpt = '<div class="masonry-post-excerpt">';
            $excerpt .= the_excerpt();
            $excerpt .= '</div><!--.masonry-post-excerpt-->';
//if we can only skip for phones, else skip for all mobile devices
            if (function_exists( 'is_phone') {
                if ( ! is_phone() ) {
                    echo $excerpt;
                }
            }
            else {
                if ( ! wp_is_mobile() ) {
                    echo $excerpt;
                }
            }
        ?>
    </div><!--/.masonry-entry-details -->  
</article><!--/.masonry-entry-->

Questa volta stiamo testando per vedere se non siamo su un telefono/dispositivo mobile e, in tal caso, restituiamo la parte dell'estratto del nostro ciclo. Se siamo su un telefono/dispositivo mobile, non facciamo nulla.

Un'altra cosa che potresti voler fare è aumentare la larghezza degli elementi Masonry, il che riduce il numero per riga, sui dispositivi mobili. Per fare ciò, aggiungeremo uno stile inline diverso all'header in base al rilevamento del dispositivo. Poiché questa funzione utilizza wp_add_inline_styles, dipenderà da un foglio di stile specifico. In questo caso sto usando masonry.css, che potresti voler utilizzare per mantenere separati i tuoi stili masonry. Se non finisci per usarlo, puoi usare l'handle di un altro foglio di stile già registrato.

if ( ! function_exists ( 'slug_masonry_styles' ) ) :
function slug_masonry_styles() {
    //set the wide width
    $wide = '25%';
    //set narrow width
    $narrow = '50%';
    /**Determine value for $width**/
    //if we can only set narrow for phones, else narrow for all mobile devices
    if (function_exists( 'is_phone') {
        if ( is_phone() ) {
            $width = $narrow;
        }
        else {
            $width = $wide;
        }        
    }
    else {
        if ( wp_is_mobile() ) {
            $width = $narrow;
        }
        else {
            $width = $wide;
        }
    }
    /**Output CSS for .masonry-entry with proper width**/
    $custom_css = ".masonry-entry{width: {$width};}";
    //You must use the handle of an already enqueued stylesheet here.
    wp_add_inline_style( 'masonry', $custom_css );
}
add_action( 'wp_enqueue_scripts', 'slug_masonry_styles' );
endif; // ! slug_masonry_styles exists

Questa funzione accoda il foglio di stile personalizzato e quindi imposta un valore per la larghezza utilizzando una logica che dovrebbe ora essere molto familiare. Successivamente creiamo la variabile $custom_css passando il valore per la larghezza in un pezzo di CSS dall'aspetto altrimenti normale con {$width}. Dopo di che utilizziamo wp_add_inline_style per dire a WordPress di stampare i nostri stili inline nell'intestazione ogni volta che viene utilizzato il foglio di stile Masonry e quindi agganciamo l'intera funzione a wp_enqueue_scripts e abbiamo finito.

Se hai scelto di combinare i tuoi stili Masonry in un foglio di stile esistente, assicurati di utilizzare l'handle di quel foglio di stile con wp_add_inline_style o i tuoi stili inline non verranno inclusi. Mi piace usare wp_add_inline_style perché generalmente racchiudo l'hook dell'azione per accodare Masonry in una condizione, in modo che venga aggiunto solo quando necessario. Ad esempio, se sto usando Masonry solo nell'indice del mio blog e nelle pagine di archivio, farei così:

if ( is_home() || is_archive() ) {
    add_action( 'wp_enqueue_scripts', 'slug_scripts_masonry' );
}

Questi ultimi esempi dovrebbero aprire altre idee nella tua mente. Ad esempio, potresti usare una logica simile per saltare Masonry del tutto su un dispositivo mobile. Inoltre, wp_add_inline_style() è una funzione meno utilizzata, ma molto utile in quanto ti consente di impostare programmaticamente stili diversi in base a qualsiasi tipo di condizione. Può permetterti di cambiare radicalmente lo stile di qualsiasi elemento in base non solo al rilevamento del dispositivo, ma le modifiche potrebbero anche basarsi su quale modello viene utilizzato, o anche se l'utente è connesso o meno.

Spero che vedrai questi diversi cambiamenti che sto apportando come un'opportunità per essere creativi. I sistemi a griglia a cascata come il Masonry sono popolari da un po' di tempo, quindi è ora di dare qualche nuovo tocco a questa idea popolare. Mostraci nei commenti quali modi interessanti hai trovato per utilizzare Masonry in un tema WordPress.

Un esperto polivalente di WordPress, Josh Pollock scrive di WordPress, si occupa di sviluppo di temi, è il community manager per il Pods Framework e promuove soluzioni open source per il design sostenibile.

Dichiarazione: Il nostro contenuto è supportato dai lettori. Ciò significa che se fai clic su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come è finanziato WPBeginner, perché è importante e come puoi supportarci. Ecco il nostro processo editoriale.

Il Toolkit WordPress Definitivo

Ottieni l'accesso GRATUITO al nostro toolkit - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Interazioni del lettore

38 CommentsLeave a Reply

  1. Ciao, volevo sapere se c'è un modo per usare la griglia masonry per mostrare gli utenti registrati. Qualche idea?

  2. Solo una rapida nota: se ricevi l'errore "imagesLoaded", prova ad aggiungere il codice Javascript dopo la chiamata a wp_footer nel tuo footer.php.

    Questo funziona per me:

    Aggiungi a functions.php

    add_action( ‘wp_enqueue_scripts’, ‘slug_masonry’ );
    function slug_masonry( ) {
    wp_enqueue_script(‘masonry’); // nota che questo non è jQuery
    }

    Nel tuo loop, assicurati che il tuo div sia:

    E la classe dell'immagine sia:

    e poi dopo wp_footer nel tuo footer.php questo:

    // imposta il contenitore in cui Masonry sarà all'interno in una variabile
    var container = document.querySelector(‘#masonry-loop’);
    // crea una variabile vuota msnry
    var msnry;
    // inizializza Masonry dopo che tutte le immagini sono state caricate
    imagesLoaded( container, function() {
    msnry = new Masonry( container, {
    itemSelector: ‘.masonry-entry’
    });
    });

  3. Ciao Andy, ho appena provato questo e non sono riuscito a farlo funzionare. Tutto continua a scorrere verticalmente in una colonna.
    Qualche soluzione?

  4. did not work for me. i see only two images on my front page which are arranged underneath. don’t know where is the problem :(

  5. Per qualche motivo i miei post vengono visualizzati tutti in righe come al solito, non in formato masonry. Non sono sicuro di come possa succedere. Qualche idea?

  6. Per chiunque abbia ancora problemi con questo, ho notato che questo codice:

    // imposta il contenitore in cui si troverà Masonry in una variabile

    var container = document.querySelector(‘#masonry-loop’);

    //crea una variabile vuota msnry

    var msnry;

    // inizializza Masonry dopo che tutte le immagini sono state caricate

    imagesLoaded( container, function() {

    msnry = new Masonry( container, {

    itemSelector: ‘.masonry-entry’

    });

    });

    Era prima della libreria JS masonry. Pertanto si verifica l'errore imagesLoaded. Come suggerito da Andy qui sotto, metterlo nell'header dovrebbe risolvere il problema. In pratica, devi solo assicurarti che la libreria venga prima di questo codice.

  7. Grazie ancora per questo tutorial, mi ha davvero aiutato a iniziare.

    Anche con tutto al posto giusto, ho riscontrato problemi intermittenti in cui le caselle scendevano semplicemente lungo il lato sinistro della pagina in un'unica colonna, e Firebug confermava che a volte il codice Masonry non veniva eseguito. Questo accadeva solo occasionalmente e solo in Firefox.

    Sembrava che in determinati scenari di carico ci fossero problemi con il codice che tentava di eseguirsi prima che i file richiesti fossero caricati. Non credo che fosse un problema di imagesLoaded, poiché questo ha sintomi diversi.

    Ho risolto il problema come segue:

    1. La funzione “slug_masonry_init” inserisce il codice di inizializzazione masonry inline nel footer. Ho rimosso l'intera funzione (così come il codice add_action ‘wp_footer’) e ho spostato il JS in un file esterno: masonry-init.js

    2. Ho racchiuso il codice di inizializzazione masonry in jQuery per sfruttare la sua capacità document.ready. È sfortunato dover includere jQuery poiché questa è la versione di Masonry senza jQuery, ma document.ready sembrava necessario affinché il codice venisse eseguito in tutti gli scenari di caricamento.

    (function( $ ) { “use strict”; $(function() {

    }); }(jQuery));

    3. Ho accodato gli script in questo modo:

    wp_enqueue_script( ‘masonry’ ); wp_enqueue_script( ‘jquery’ ); wp_enqueue_script( ‘masonryInit’, get_stylesheet_directory_uri().’/js/masonry-init.js’, array( ‘masonry’, ‘jquery’ ) );

  8. Fatto esattamente come dice il tutorial, wp 3.9.1.. imagesLoaded non viene nemmeno caricato. Qualsiasi aiuto sarebbe molto apprezzato

  9. Sto avendo problemi a far funzionare questo... ho seguito tutto di conseguenza, basandomi su _s, ma le mie colonne non vanno a capo – ne ottengo solo una lunga. Avete esempi CSS da abbinare? Ovviamente mi manca qualcosa. Saluti!

  10. Sono disperatamente confuso. Ho eseguito ogni passaggio alla lettera e il mio sito diventa semplicemente bianco. Un problema con il file delle funzioni. Il mio browser non allude nemmeno a quale riga causi un errore, tutto quello che ottengo è "
    Errore del server
    Il sito web ha riscontrato un errore durante il recupero di (url) Potrebbe essere offline per manutenzione o configurato in modo errato."

    La stessa cosa è successa per la pagina di accesso a WP Admin. Ho eliminato functions.php nella cartella del mio tema e la schermata di accesso è stata ripristinata, ma la pagina principale no. Se potessi darmi qualche indizio su quale potrebbe essere il problema, ti sarei molto grato. Indipendentemente, molti ringraziamenti per il tutorial e le spiegazioni approfondite.

  11. Nel caso in cui questo aiuti altri a far funzionare l'esempio:

    Non funzionava nemmeno dopo aver apportato la correzione che altri hanno notato — cambiare "function slug_masonry_exists()" in "function slug_masonry_init()". Le librerie venivano caricate, ma Masonry non faceva il suo lavoro.

    Poi ho modificato le chiamate a wp_enqueue_script in modo che Masonry e imagesLoaded venissero caricati nell'header invece che in fondo.

    Improvvisamente tutto ha funzionato.

    • Ciao, non riesco a capire come cambiare wp_enqueue_script. Apprezzerei davvero se potessi spiegarlo in dettaglio. Grazie!

  12. Ciao, non funziona per me. Ho questo messaggio di errore:
    "Parse error: syntax error, unexpected T_ENDIF in..."...functions.php alla riga 17

    Significa un errore nello script dal 3° passaggio. Cosa mi sono perso?

  13. Lo script di inizializzazione continua a essere chiamato prima che imagesloaded sia stato definito, quindi ricevo

    Uncaught ReferenceError: imagesLoaded is not defined

    Come posso assicurarmi che imagesLoaded sia presente prima di iniziare a inizializzare le cose?

    • imagesLoaded viene chiamato prima che enqueueing sia stato stabilito. Dagli una bassa priorità in modo che venga chiamato per ultimo, come:

      add_action( ‘wp_footer’, ‘slug_masonry_init’, 100000 );

      Questo ha funzionato per me.

      Nota: Penso che questo articolo debba essere aggiornato. Non solo per questo problema.

  14. Grazie per questo post. Sto cercando di impostare una pagina blog con post Masonry, ma sono bloccato al primo passaggio. Ogni volta che aggiungo le funzioni per aggiungere le due librerie al mio file functions, il mio sito diventa completamente vuoto. Dato che sto sviluppando in una sottodirectory, ho provato a rendere i percorsi dei file js assoluti anziché relativi, ma non ha aiutato. Hai idea di cosa mi stia perdendo?

  15. Ciao,

    Sto ricevendo questo errore: "ReferenceError: imagesLoaded is not defined" per favore aiutami.

  16. Grazie. È un ottimo post e sta funzionando per me. Sto creando un template con questo codice e funziona perfettamente. Ma ci sono due ostacoli che sto affrontando
    1. Voglio limitare i miei post nella mia pagina indice in modo che mostri i primi 6-7 post e sotto ci sarà un pulsante con la funzionalità "Carica altro" che, una volta cliccato, caricherà gli altri post.

    2. Sto cercando di integrare lo script javascript di infinite scroll di Paul Irish ma non sono riuscito a farlo funzionare. Qualche aiuto??

    Grazie

  17. Ho seguito tutti i tuoi passaggi e mi compare un errore fatale "PHP Fatal error: Call to undefined function wp_enquqe_style()" e ancora non capisco perché wp_enquqe_style() non capisco perché puoi controllare?

    • Ciao

      Stavo per commentare per farti notare che è un errore di battitura e dovrebbe essere:

      wp_enqueue_style

  18. Ciao!

    Questo post è un ottimo inizio ma ho trovato alcuni errori…

    1/ Dovresti usare the_title_attribute() per l'attributo title invece di title
    2/ add_action( ‘wp_footer’, ‘slug_masonry_exists’ ); è il codice corretto e non add_action( ‘wp_footer’, ‘slug_masonry_init’ );

    Saluti!

  19. Non riesco a farlo funzionare con un setup di scroll infinito nel mio CB di successo $ajax. Qualsiasi consiglio sarebbe ottimo.

  20. Stavo cercando questo effetto, ma non sapevo come si chiamasse e come cercarlo, fino ad ora. Lo proverò sicuramente in uno dei miei futuri progetti di blog fotografico. Grazie!

  21. Great post – wish it was around when I started working with Masonry on a theme a few weeks ago :D

    A couple variations – I created a new post-thumbnail image size to pull in so that both horizontal and vertical images would have equal attention within the Masonry pages – it’s fairly easy to change out the actual image for a new one (I did that at first, creating a new “entry-thumbnail” size and allowing unlimited length so that horizontal images would display properly). Then I just edited the post-thumbnail ;-)

    Ho anche racchiuso il post-thumbnail all'interno di un tag in modo da poterlo far tornare al permalink del post (l'ho cambiato per restituire il link del file multimediale in modo da poter implementare un effetto lightbox – su richiesta di un cliente) in modo che i visitatori potessero andare direttamente al post.

    I also added a hover effect to the post-thumbnail to indicate it was clickable :D

    Ora devo analizzare quello che ho fatto e confrontarlo con il tuo per vedere cosa posso migliorare con la tua conoscenza (adoro la community di WordPress!)

Lascia una risposta

Grazie per aver scelto di lasciare un commento. Tieni presente che tutti i commenti sono moderati secondo la nostra politica sui commenti, e il tuo indirizzo email NON verrà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avviamo una conversazione personale e significativa.