Come generare schermate del sito Web per il tuo sito WordPress

In questo tutorial imparerai un segreto: come generare screenshot di siti web da utilizzare nei tuoi post WordPress utilizzando un servizio fornito da WordPress.com. Trasformeremo anche questo in uno shortcode facile da usare per visualizzare gli screenshot ... iniziamo!


sfondo

È un segreto aperto, ed è stato per un paio di anni, che WordPress espone un generatore di screenshot al suo sottodominio s.wordpress.com. E lo scuttlebutt è che finché non lo maltratti, allora è gratis da usare. WordPress.com lo usa per generare screenshot per le sue varie attività.

Ad esempio, ecco l'URL per mostrare uno screenshot di wp.tutsplus con una larghezza di 400 pixel:

http://s.wordpress.com/mshots/v1/http%3A%2F%2Fwp.tutsplus.com?w=400

Potrebbe essere necessario fare nuovamente clic sul collegamento poiché il generatore impiega un po 'di tempo per memorizzare l'immagine nella cache.

Cosa faremo:

  • scrivere una funzione di shortcode per visualizzare uno screenshot
  • utilizzare lo shortcode per visualizzare uno screenshot come parte del ciclo post utilizzando un campo personalizzato per l'url

Passaggio 1: la funzione Shortcode

Il nostro shortcode sarà usato come:

 [ss_screenshot site = "http://wp.tutsplus.com"]

Puoi aggiungere il codice al file functions.php nella tua directory dei temi. Il codice completo è disponibile nel link sorgente sopra.

 add_shortcode ('ss_screenshot', 'ss_screenshot_shortcode'); function ss_screenshot_shortcode ($ atts) $ width = intval ($ atts ['width']); $ larghezza = (100 <= $width && $width <= 300) ? $width : 200; $site = trim($atts['site']); if ($site !=") $query_url = 'http://s.wordpress.com/mshots/v1/' . urlencode($site) . '?w=' . $width; $image_tag = ''. $ sito. ''; eco '' . $ image_tag. '';  else echo 'Bad screenshot url!'; 

Cosa fa questo codice:

  • dichiara uno shortcode chiamato ss_screenshot con la funzione add_shortcode
  • la funzione shortcode accetta l'array $ atts contenente i due attributi shortcode: width e site
  • l'attributo width viene convertito in un intero e controllato per assicurarsi che sia all'interno di un intervallo adatto, in questo caso tra 100 e 300 pixel. Nota: utilizziamo l'operatore ternario PHP per assegnare una larghezza predefinita di 200 se la larghezza fornita è al di fuori del nostro intervallo. Questo tiene anche conto di un attributo di larghezza mancante.
  • l'attributo del sito viene tagliato per rimuovere gli spazi accidentali sinistro e destro
  • creiamo un url di query aggiungendo un attributo del sito urlencoded e l'attributo width
  • infine avvolgiamo query_url in un tag immagine e in un tag link in modo che gli utenti possano fare clic sullo screenshot e essere portati sul sito

Passaggio 2 Testare lo shortcode

In un post o pagina, inserisci questo shortcode:

 [ss_screenshot site = "http://amazon.com"]

Quando visualizzi il post o la pagina, dovresti vedere uno screenshot di Amazon da 300 pixel. Ricorda, potresti dover aggiornare la pagina dopo alcuni secondi per vedere lo screenshot memorizzato nella cache. Gioca con la larghezza e guarda cosa succede quando vai fuori portata. A proposito, puoi impostare qualsiasi intervallo di larghezza che ti piace. Inoltre, prova un URL non valido: dovresti vedere il messaggio di avviso invece di uno screenshot.

Ora che abbiamo uno shortcode funzionante, vediamo come possiamo incorporarlo nel nostro ciclo WordPress.


Passaggio 3 Impostazione del campo personalizzato

Immaginiamo uno scenario in cui vogliamo visualizzare uno screenshot di un sito accanto a ciascuno dei nostri post. Per motivi di formattazione e usabilità, è meglio automatizzare questo processo aggiungendo un campo personalizzato alla nostra schermata di modifica del post. In quel campo possiamo inserire un url del sito che può essere usato nel post loop per mostrare uno screenshot usando il nostro nuovo shortcode.

Se la casella di campo personalizzata non viene visualizzata nella schermata di modifica del post, guarda la schermata in alto a destra e dovresti vedere la scheda Opzioni schermo. Fare clic e selezionare la casella Campi personalizzati. Ora dovresti vedere qualcosa di simile alla fine dello schermo:

Fai clic sul link Inserisci nuovo e crea un nuovo campo personalizzato chiamato screenshot_url. Questo è ciò che dovresti vedere:

Ora quando crei / modifichi un post (il campo personalizzato viene visualizzato per tutti i post) puoi inserire un url per generare uno screenshot correlato al post.


Passaggio 4 Aggiungi visualizzazione schermata al ciclo

Ecco una versione seriamente ridotta del post loop standard di WordPress (come si trova in un file modello di tema) incluso il nostro codice di visualizzazione dello screenshot:

 if (have_posts ()) while (have_posts ()): the_post (); il titolo(); $ url = get_post_meta ($ post-> ID, 'screenshot_url', true); do_shortcode ('[ss_screenshot site = "'. $ url. '"]'); il contenuto(); finisci se; ENDWHILE;

Cosa fa questo codice:

  • controlla se abbiamo post, avvia il ciclo e visualizza il titolo del post
  • ottenere il contenuto del campo personalizzato screenshot_url passando l'ID del post corrente e il nome del campo personalizzato alla funzione get_post_meta
  • perché siamo in un file di modello, usiamo la funzione do_shortcode per analizzare il nostro shortcode che include l'URL di screenshot per questo post
  • quindi mostriamo il contenuto del post e terminiamo il ciclo

Passaggio 5 Prova il ciclo

Se hai creato un post con il titolo Honda Accord e gli hai dato un URL di http://www.honda.com, utilizzando la tua nuova configurazione del loop, dovresti vedere qualcosa di simile a questo:


Conclusione

Invece di visualizzare un messaggio di avvertimento severo se un post non ha un URL di screenshot allegato, è possibile mostrare un'immagine predefinita.

Se non desideri utilizzare il generatore di screenshot di WordPress o se hai esigenze più grandi, puoi utilizzare l'opzione gratuita su un servizio di screenshot come http://www.shrinktheweb.com. È possibile applicare le tecniche utilizzate in questo tutorial a qualsiasi servizio di screenshot.

Cose da ricordare:

  • gli screenshot impiegano alcuni secondi (in genere) per generare, quindi aggiorna la pagina
  • urlencode l'url inviato al servizio screenshot
  • inizia i tuoi URL con http: //
  • se hai esigenze più impegnative per gli screenshot, usa un servizio commerciale