SlideShare a Scribd company logo
1 of 80
Download to read offline
Come caricare
un icon set in un sito
FONT AWESOME
IN WORDPRESS
WordCamp Bari 2019
STEFANO
MINOIA
Imprenditore, webmaster,
WordPress enthusiast, …
 RyokuhiOnWP
 ryokuhi ryokuhi
 ryokuhi
 Ryokuhi
 stefano.minoia.3
 stefano-minoia-960454110
LINK UTILI
https://www.slideshare.net/StefanoMinoia/wordcamp-bari-2019
https://git.io/fj8B0
DI COSA PARLERÒ
Font Awesome
Inserire l’icon set nel sito
Inserire le icone in una pagina
Font Awesome in WordPress – WordCamp Bari 2019
FONT AWESOME
Font Awesome in WordPress – WordCamp Bari 2019
COS’È FONT
AWESOME?
È l’icon set più diffuso in
Italia e nel mondo.
Include un frameworkInclude un framework
avanzato, ma
semplice da usare.
Usa icone vettoriali
Font Awesome in WordPress – WordCamp Bari 2019
PERCHÉ UTILIZZARE FONT AWESOME?
Solid
Web
Desktop
Free (1515)
Pro (5099)
Solid
Regular
(Light)
Brands
Icon font
SVG + JS
Font Awesome in WordPress – WordCamp Bari 2019
Font Awesome Free
è open sourceè open source
 Icone: CC BY 4.0 License
 Font: SIL OFL 1.1 License
 Codice: MIT Licence
Font Awesome in WordPress – WordCamp Bari 2019
INSERIRE L’ICON SET
NEL SITO
Font Awesome in WordPress – WordCamp Bari 2019
1) Plugin
2) Webfont (stylesheet)
QUATTRO
SOLUZIONI
3) SVG + JS (script)
4) Sprite SVG
Font Awesome in WordPress – WordCamp Bari 2019
SOLUZIONE 1
UTILIZZARE IL PLUGIN DI FONT AWESOME
SOLUZIONE 1
UTILIZZARE IL PLUGIN DI FONT AWESOME
SOLUZIONE 2
CARICARE IL FOGLIO DI STILE DEL WEBFONT
SOLUZIONE 2
CARICARE IL FOGLIO DI STILE DEL WEBFONT
FONT AWESOME FREE v5.8.2
WEBFONT CON TUTTI GLI STILI
<link rel="stylesheet"
href="https://use.fontawesome.com/releases/v5.8.2/css/all.css"
integrity="sha384-
oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"
crossorigin="anonymous">
WEBFONT CON TUTTI GLI STILI
SOLUZIONE 2/A
/** functions.php
* Enqueue Font Awesome
*/
function fontawesome_enqueue() {function fontawesome_enqueue() {
echo '<link rel="stylesheet"
href="https://use.fontawesome.com/releases/v5.8.2/css/all.css"
integrity="sha384-
oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"
crossorigin="anonymous">';
}
add_action( 'wp_enqueue_scripts', 'fontawesome_enqueue' );
WEBFONT CON TUTTI GLI STILI
RISULTATO 2/A
<link rel="stylesheet"
href="https://use.fontawesome.com/releases/v5.8.2/css/all.css"
integrity="sha384-
oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"
crossorigin="anonymous">
<link rel="stylesheet"
href="https://use.fontawesome.com/releases/v5.8.2/css/all.css"
integrity="sha384-
oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"
crossorigin="anonymous">
WEBFONT CON TUTTI GLI STILI
SOLUZIONE 2/B
/** functions.php
* Enqueue Font Awesome
*/
function fontawesome_enqueue() {function fontawesome_enqueue() {
wp_enqueue_style( 'font-awesome',
'https://use.fontawesome.com/releases/v5.8.2/css/all.css', array(),
null );
}
add_action( 'wp_enqueue_scripts', 'fontawesome_enqueue' );
WEBFONT CON TUTTI GLI STILI
RISULTATO 2/B
<link rel="stylesheet" id="font-awesome-css"
href="https://use.fontawesome.com/releases/v5.8.2/css/all.css"
type="text/css" media="all">type="text/css" media="all">
<link rel="stylesheet"
href="https://use.fontawesome.com/releases/v5.8.2/css/all.css"
integrity="sha384-
oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"
crossorigin="anonymous">
WEBFONT CON TUTTI GLI STILI
SOLUZIONE 2/C (1)
/** functions.php
* Enqueue Font Awesome
*/
function fontawesome_enqueue() {function fontawesome_enqueue() {
wp_enqueue_style( 'font-awesome',
'https://use.fontawesome.com/releases/v5.8.2/css/all.css', array(),
null );
/* Filter the link tag to add the integrity and crossorigin
* attributes for completeness.
*/
add_filter(
WEBFONT CON TUTTI GLI STILI
SOLUZIONE 2/C (2)
'style_loader_tag',
function( $html, $handle ) {
if ( in_array( $handle, ['font-awesome'], true ) ) {
return preg_replace(return preg_replace(
'//>$/',
'integrity="' . 'sha384-
oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay' .
'" crossorigin="anonymous" />',
$html,
1
WEBFONT CON TUTTI GLI STILI
SOLUZIONE 2/C (3)
);
} else {
return $html;
}}
},
10,
2
);
}
add_action( 'wp_enqueue_scripts', 'fontawesome_enqueue' );
WEBFONT CON TUTTI GLI STILI
RISULTATO 2/C
<link rel="stylesheet" id="font-awesome-css"
href="https://use.fontawesome.com/releases/v5.8.2/css/all.css"
type="text/css" media="all" integrity="sha384-
oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"
crossorigin="anonymous">
<link rel="stylesheet"
href="https://use.fontawesome.com/releases/v5.8.2/css/all.css"
integrity="sha384-
oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"
crossorigin="anonymous">
WEBFONT CON TUTTI GLI STILI
SOLUZIONE 2/D (1)
/** functions.php
* Enqueue Font Awesome
*/
function fontawesome_enqueue() {function fontawesome_enqueue() {
$version = '5.8.2';
$integrity_key = 'sha384-
oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay';
wp_enqueue_style(
'font-awesome',
WEBFONT CON TUTTI GLI STILI
SOLUZIONE 2/D (2)
'https://use.fontawesome.com/releases/v' . $version .
'/css/all.css',
array(),
nullnull
);
/* Filter the link tag to add the integrity and crossorigin
* attributes for completeness.
*/
add_filter(
'style_loader_tag',
WEBFONT CON TUTTI GLI STILI
SOLUZIONE 2/D (3)
function( $html, $handle ) {
if ( in_array( $handle, ['font-awesome'], true ) ) {
return preg_replace(
'//>$/','//>$/',
'integrity="' . $integrity_key . '" crossorigin="anonymous"
/>',
$html,
1
);
WEBFONT CON TUTTI GLI STILI
SOLUZIONE 2/D (4)
} else {
return $html;
}
},},
10,
2
);
}
add_action( 'wp_enqueue_scripts', 'fontawesome_enqueue' );
WEBFONT CON TUTTI GLI STILI
RISULTATO 2/D
<link rel="stylesheet" id="font-awesome-css"
href="https://use.fontawesome.com/releases/v5.8.2/css/all.css"
type="text/css" media="all" integrity="sha384-
oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"
crossorigin="anonymous">
<link rel="stylesheet"
href="https://use.fontawesome.com/releases/v5.8.2/css/all.css"
integrity="sha384-
oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"
crossorigin="anonymous">
SOLUZIONE 3
CARICARE LO SCRIPT DI SVG + JS
SOLUZIONE 3
CARICARE LO SCRIPT DI SVG + JS
FONT AWESOME FREE v5.8.2
SVG + JS CON TUTTI GLI STILI
<script defer
src="https://use.fontawesome.com/releases/v5.8.2/js/all.js"
integrity="sha384-
DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH"DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH"
crossorigin="anonymous"></script>
SVG + JS CON TUTTI GLI STILI
SOLUZIONE 3/A
/** functions.php
* Enqueue Font Awesome
*/
function fontawesome_enqueue() {function fontawesome_enqueue() {
echo '<script defer
src="https://use.fontawesome.com/releases/v5.8.2/js/all.js"
integrity="sha384-
DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH"
crossorigin="anonymous"></script>';
}
add_action( 'wp_enqueue_scripts', 'fontawesome_enqueue' );
SVG + JS CON TUTTI GLI STILI
RISULTATO 3/A
<script defer
src="https://use.fontawesome.com/releases/v5.8.2/js/all.js"
integrity="sha384-
DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH"DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH"
crossorigin="anonymous"></script>
<script defer
src="https://use.fontawesome.com/releases/v5.8.2/js/all.js"
integrity="sha384-
DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH"
crossorigin="anonymous"></script>
SVG + JS CON TUTTI GLI STILI
SOLUZIONE 3/B
/** functions.php
* Enqueue Font Awesome
*/
function fontawesome_enqueue() {function fontawesome_enqueue() {
wp_enqueue_script( 'font-awesome',
'https://use.fontawesome.com/releases/v5.8.2/js/all.js', array(),
null );
}
add_action( 'wp_enqueue_scripts', 'fontawesome_enqueue' );
SVG + JS CON TUTTI GLI STILI
RISULTATO 3/B
<script type="text/javascript"
src="https://use.fontawesome.com/releases/v5.8.2/js/all.js"></script>
<script defer<script defer
src="https://use.fontawesome.com/releases/v5.8.2/js/all.js"
integrity="sha384-
DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH"
crossorigin="anonymous"></script>
SVG + JS CON TUTTI GLI STILI
SOLUZIONE 3/C (1)
/** functions.php
* Enqueue Font Awesome
*/
function fontawesome_enqueue() {function fontawesome_enqueue() {
wp_enqueue_script( 'font-awesome',
'https://use.fontawesome.com/releases/v5.8.2/js/all.js', array(),
null );
/* Filter the script tag to add additional attributes for
* integrity, crossorigin, defer.
*/
add_filter(
'script_loader_tag',
function( $tag, $handle ) {
if ( in_array( $handle, ['font-awesome'], true ) ) {
$extra_tag_attributes = 'defer crossorigin="anonymous"';
SVG + JS CON TUTTI GLI STILI
SOLUZIONE 3/C (2)
$extra_tag_attributes .= ' integrity="' . 'sha384-
DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH' .
'"';
$modified_script_tag = preg_replace(
'/<scripts*(.*?src=.*?)>/',
'<script $extra_tag_attributes ' . '1>',
$tag,
1
SVG + JS CON TUTTI GLI STILI
SOLUZIONE 3/C (3)
);
return $modified_script_tag;
} else {
return $tag;return $tag;
}
},
10,
2
);
}
add_action( 'wp_enqueue_scripts', 'fontawesome_enqueue' );
SVG + JS CON TUTTI GLI STILI
RISULTATO 3/C
<script defer crossorigin="anonymous" integrity="sha384-
DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH"
type="text/javascript"
src="https://use.fontawesome.com/releases/v5.8.2/js/all.js"></script>src="https://use.fontawesome.com/releases/v5.8.2/js/all.js"></script>
<script defer
src="https://use.fontawesome.com/releases/v5.8.2/js/all.js"
integrity="sha384-
DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH"
crossorigin="anonymous"></script>
SVG + JS CON TUTTI GLI STILI
SOLUZIONE 3/D (1)
/** functions.php
* Enqueue Font Awesome
*/
function fontawesome_enqueue() {function fontawesome_enqueue() {
$version = '5.8.2';
$integrity_key = 'sha384-
DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH';
wp_enqueue_script(
'font-awesome',
'https://use.fontawesome.com/releases/v' . $version .
'/js/all.js',
SVG + JS CON TUTTI GLI STILI
SOLUZIONE 3/D (2)
array(),
null
);
/* Filter the script tag to add additional attributes for/* Filter the script tag to add additional attributes for
integrity, crossorigin,
* defer.
*/
add_filter(
'script_loader_tag',
function( $tag, $handle ) use ( $integrity_key ) {
SVG + JS CON TUTTI GLI STILI
SOLUZIONE 3/D (3)
if ( in_array( $handle, ['font-awesome'], true ) ) {
$extra_tag_attributes = 'defer crossorigin="anonymous"';
$extra_tag_attributes .= ' integrity="' . $integrity_key .
'"';'"';
$modified_script_tag = preg_replace(
'/<scripts*(.*?src=.*?)>/',
"<script $extra_tag_attributes " . '1>',
$tag,
1
);
SVG + JS CON TUTTI GLI STILI
SOLUZIONE 3/D (4)
return $modified_script_tag;
} else {
return $tag;
}}
},
10,
2
);
}
add_action( 'wp_enqueue_scripts', 'fontawesome_enqueue' );
SVG + JS CON TUTTI GLI STILI
RISULTATO 3/D
<script defer crossorigin="anonymous" integrity="sha384-
DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH"
type="text/javascript"
src="https://use.fontawesome.com/releases/v5.8.2/js/all.js"></script>src="https://use.fontawesome.com/releases/v5.8.2/js/all.js"></script>
<script defer
src="https://use.fontawesome.com/releases/v5.8.2/js/all.js"
integrity="sha384-
DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH"
crossorigin="anonymous"></script>
INSERIRE LE ICONE
IN UNA PAGINA
Font Awesome in WordPress – WordCamp Bari 2019
USO DI
BASE
1) Nome dell’icona (newspaper)
2) Stile da utilizzare (solid, brands, …)
<i class="fas fa-newspaper"></i>
<i class="fab fa-wordpress"></i>
<span class="fas fa-newspaper"></span>
Solid Regular (Light) Brands
fas far fal fab fa
SOLUZIONE 4
SPRITE SVG
SOLUZIONE 4
SPRITE SVG
SPRITE SVG (1)
https://git.io/fj8B0
SPRITE SVG (2)
functions.php
/inc/icon-functions.php
style.css
/assets/images/svg-icons.svg
SPRITE SVG (3)
<symbol id="icon-iconname" viewBox="0 0 width height">
<path d="<!-- ... -->"></path>
/symbol>
SPRITE SVG (4)
<svg xmlns="http://www.w3.org/2000/svg" class="svg-inline--fa fa-
shopping-cart fa-w-18" role="img" aria-hidden="true" viewBox="0 0 576
512" focusable="false" data-icon="shopping-cart" data-
prefix="fas"><path fill="currentColor" d="M 528.12 301.319 l 47.273 -
208 C 578.806 78.301 567.391 64 551.99 64 H 159.208 l -9.166 -44.81 C208 C 578.806 78.301 567.391 64 551.99 64 H 159.208 l -9.166 -44.81 C
147.758 8.021 137.93 0 126.529 0 H 24 C 10.745 0 0 10.745 0 24 v 16 c
0 13.255 10.745 24 24 24 h 69.883 l 70.248 343.435 C 147.325 417.1
136 435.222 136 456 c 0 30.928 25.072 56 56 56 s 56 -25.072 56 -56 c
0 -15.674 -6.447 -29.835 -16.824 -40 h 209.647 C 430.447 426.165 424
440.326 424 456 c 0 30.928 25.072 56 56 56 s 56 -25.072 56 -56 c 0 -
22.172 -12.888 -41.332 -31.579 -50.405 l 5.517 -24.276 c 3.413 -
15.018 -8.002 -29.319 -23.403 -29.319 H 218.117 l -6.545 -32 h
293.145 c 11.206 0 20.92 -7.754 23.403 -18.681 Z" /></svg>
SPRITE SVG (5)
<symbol id="icon-shopping-cart" viewBox="0 0 576 512">
<path d="M 528.12 301.319 l 47.273 -208 C 578.806 78.301 567.391 64
551.99 64 H 159.208 l -9.166 -44.81 C 147.758 8.021 137.93 0 126.529
0 H 24 C 10.745 0 0 10.745 0 24 v 16 c 0 13.255 10.745 24 24 24 h
69.883 l 70.248 343.435 C 147.325 417.1 136 435.222 136 456 c 069.883 l 70.248 343.435 C 147.325 417.1 136 435.222 136 456 c 0
30.928 25.072 56 56 56 s 56 -25.072 56 -56 c 0 -15.674 -6.447 -29.835
-16.824 -40 h 209.647 C 430.447 426.165 424 440.326 424 456 c 0
30.928 25.072 56 56 56 s 56 -25.072 56 -56 c 0 -22.172 -12.888 -
41.332 -31.579 -50.405 l 5.517 -24.276 c 3.413 -15.018 -8.002 -29.319
-23.403 -29.319 H 218.117 l -6.545 -32 h 293.145 c 11.206 0 20.92 -
7.754 23.403 -18.681 Z"></path>
</symbol>
SPRITE SVG (6)
<?php childthemename_get_svg( 'icon-shopping-cart' ); ?>
GRAZIE!
DOMANDE?
Font Awesome in WordPress – WordCamp Bari 2019
RISORSE AGGIUNTIVE
https://fontawesome.com/
https://developer.wordpress.org/reference/https://developer.wordpress.org/reference/
https://github.com/FortAwesome/Font-Awesome
https://github.com/FortAwesome/wordpress-fontawesome
CREDITS
Photos by Ilya Pavlov, Eco Warrior Princess, Kristian Strand,
Jason Leung, Harpal Singh, Richard Clark, Chinh Le Duc,
Hunter Haley and Jon Moore on UnsplashHunter Haley and Jon Moore on Unsplash
Arsenault, Cody (August 9, 2018). "Icon Fonts vs SVGs -
Which One Should You Use In 2018?".
https://www.keycdn.com/blog/icon-fonts-vs-svgs

More Related Content

What's hot

关于 Html5 那点事
关于 Html5 那点事关于 Html5 那点事
关于 Html5 那点事Sofish Lin
 
Widget Summit 2008
Widget Summit 2008Widget Summit 2008
Widget Summit 2008Volkan Unsal
 
Design+Performance Velocity 2015
Design+Performance Velocity 2015Design+Performance Velocity 2015
Design+Performance Velocity 2015Steve Souders
 
Web Security Horror Stories
Web Security Horror StoriesWeb Security Horror Stories
Web Security Horror StoriesSimon Willison
 
Slow kinda sucks
Slow kinda sucksSlow kinda sucks
Slow kinda sucksTim Wright
 
Bug Bounty Programs For The Web
Bug Bounty Programs For The WebBug Bounty Programs For The Web
Bug Bounty Programs For The WebMichael Coates
 
High Performance Web Components
High Performance Web ComponentsHigh Performance Web Components
High Performance Web ComponentsSteve Souders
 
Data Citation from the perspective of tracking data reuse
Data Citation from the perspective of tracking data reuseData Citation from the perspective of tracking data reuse
Data Citation from the perspective of tracking data reuseHeather Piwowar
 
Smashing the stats for fun (and profit)
Smashing the stats for fun (and profit)Smashing the stats for fun (and profit)
Smashing the stats for fun (and profit)Security B-Sides
 
iPhone Web Applications: HTML5, CSS3 & dev tips for iPhone development
iPhone Web Applications: HTML5, CSS3 & dev tips for iPhone developmentiPhone Web Applications: HTML5, CSS3 & dev tips for iPhone development
iPhone Web Applications: HTML5, CSS3 & dev tips for iPhone developmentEstelle Weyl
 
Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat
Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat
Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat adin sonsuz
 

What's hot (13)

关于 Html5 那点事
关于 Html5 那点事关于 Html5 那点事
关于 Html5 那点事
 
Widget Summit 2008
Widget Summit 2008Widget Summit 2008
Widget Summit 2008
 
Design+Performance Velocity 2015
Design+Performance Velocity 2015Design+Performance Velocity 2015
Design+Performance Velocity 2015
 
Taking your Web App for a walk
Taking your Web App for a walkTaking your Web App for a walk
Taking your Web App for a walk
 
Web Security Horror Stories
Web Security Horror StoriesWeb Security Horror Stories
Web Security Horror Stories
 
Slow kinda sucks
Slow kinda sucksSlow kinda sucks
Slow kinda sucks
 
Bug Bounty Programs For The Web
Bug Bounty Programs For The WebBug Bounty Programs For The Web
Bug Bounty Programs For The Web
 
High Performance Web Components
High Performance Web ComponentsHigh Performance Web Components
High Performance Web Components
 
Design+Performance
Design+PerformanceDesign+Performance
Design+Performance
 
Data Citation from the perspective of tracking data reuse
Data Citation from the perspective of tracking data reuseData Citation from the perspective of tracking data reuse
Data Citation from the perspective of tracking data reuse
 
Smashing the stats for fun (and profit)
Smashing the stats for fun (and profit)Smashing the stats for fun (and profit)
Smashing the stats for fun (and profit)
 
iPhone Web Applications: HTML5, CSS3 & dev tips for iPhone development
iPhone Web Applications: HTML5, CSS3 & dev tips for iPhone developmentiPhone Web Applications: HTML5, CSS3 & dev tips for iPhone development
iPhone Web Applications: HTML5, CSS3 & dev tips for iPhone development
 
Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat
Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat
Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat
 

Similar to WordCamp Bari 2019

Make your website 2 times faster
Make your website 2 times fasterMake your website 2 times faster
Make your website 2 times fasterSatoshi Kikuchi
 
Merkez, Bağcılar antika kol saati 0531 9810190 eski kurmalı
Merkez, Bağcılar antika kol saati 0531 9810190 eski kurmalı Merkez, Bağcılar antika kol saati 0531 9810190 eski kurmalı
Merkez, Bağcılar antika kol saati 0531 9810190 eski kurmalı adin sonsuz
 
Güneşli antika kol saati 0531 9810190 eski kurmalı saat alanlar
Güneşli antika kol saati 0531 9810190 eski kurmalı saat alanlarGüneşli antika kol saati 0531 9810190 eski kurmalı saat alanlar
Güneşli antika kol saati 0531 9810190 eski kurmalı saat alanlaradin sonsuz
 
Yenisahra antika kol saati 0531 9810190 eski kurmalı saat
Yenisahra antika kol saati 0531 9810190 eski kurmalı saat Yenisahra antika kol saati 0531 9810190 eski kurmalı saat
Yenisahra antika kol saati 0531 9810190 eski kurmalı saat adin sonsuz
 
Sakızağacı antika kol saati 0531 9810190 eski kurmalı saat
Sakızağacı antika kol saati 0531 9810190 eski kurmalı saat Sakızağacı antika kol saati 0531 9810190 eski kurmalı saat
Sakızağacı antika kol saati 0531 9810190 eski kurmalı saat adin sonsuz
 
Denizköşkler antika kol saati 0531 9810190 eski kurmalı saat
Denizköşkler antika kol saati 0531 9810190 eski kurmalı saat Denizköşkler antika kol saati 0531 9810190 eski kurmalı saat
Denizköşkler antika kol saati 0531 9810190 eski kurmalı saat adin sonsuz
 
Ataköy,Bakırköy antika kol saati 0531 9810190 eski kurmalı
Ataköy,Bakırköy antika kol saati 0531 9810190 eski kurmalı Ataköy,Bakırköy antika kol saati 0531 9810190 eski kurmalı
Ataköy,Bakırköy antika kol saati 0531 9810190 eski kurmalı adin sonsuz
 
Cevizlik antika kol saati 0531 9810190 eski kurmalı saat alanlar
Cevizlik antika kol saati 0531 9810190 eski kurmalı saat alanlarCevizlik antika kol saati 0531 9810190 eski kurmalı saat alanlar
Cevizlik antika kol saati 0531 9810190 eski kurmalı saat alanlaradin sonsuz
 
Zeytinlik antika kol saati 0531 9810190 eski kurmalı saat
Zeytinlik antika kol saati 0531 9810190 eski kurmalı saat Zeytinlik antika kol saati 0531 9810190 eski kurmalı saat
Zeytinlik antika kol saati 0531 9810190 eski kurmalı saat adin sonsuz
 
Evren,Bağcılar antika kol saati 0531 9810190 eski kurmalı saat
Evren,Bağcılar antika kol saati 0531 9810190 eski kurmalı saat Evren,Bağcılar antika kol saati 0531 9810190 eski kurmalı saat
Evren,Bağcılar antika kol saati 0531 9810190 eski kurmalı saat adin sonsuz
 
Örnek mah. antika kol saati 0531 9810190 eski kurmalı saat
Örnek mah. antika kol saati 0531 9810190 eski kurmalı saat Örnek mah. antika kol saati 0531 9810190 eski kurmalı saat
Örnek mah. antika kol saati 0531 9810190 eski kurmalı saat adin sonsuz
 
Kayışdağı antika kol saati 0531 9810190 eski kurmalı saat
Kayışdağı antika kol saati 0531 9810190 eski kurmalı saat Kayışdağı antika kol saati 0531 9810190 eski kurmalı saat
Kayışdağı antika kol saati 0531 9810190 eski kurmalı saat adin sonsuz
 
Yeniçamlıca antika kol saati 0531 9810190 eski kurmalı saat
Yeniçamlıca antika kol saati 0531 9810190 eski kurmalı saat Yeniçamlıca antika kol saati 0531 9810190 eski kurmalı saat
Yeniçamlıca antika kol saati 0531 9810190 eski kurmalı saat adin sonsuz
 
Göztepe,Bağcılar antika kol saati 0531 9810190 eski kurmalı
Göztepe,Bağcılar antika kol saati 0531 9810190 eski kurmalı Göztepe,Bağcılar antika kol saati 0531 9810190 eski kurmalı
Göztepe,Bağcılar antika kol saati 0531 9810190 eski kurmalı adin sonsuz
 
Yıldıztepe antika kol saati 0531 9810190 eski kurmalı saat
Yıldıztepe antika kol saati 0531 9810190 eski kurmalı saat Yıldıztepe antika kol saati 0531 9810190 eski kurmalı saat
Yıldıztepe antika kol saati 0531 9810190 eski kurmalı saat adin sonsuz
 
Kemalpaşa antika kol saati 0531 9810190 eski kurmalı saat
Kemalpaşa antika kol saati 0531 9810190 eski kurmalı saat Kemalpaşa antika kol saati 0531 9810190 eski kurmalı saat
Kemalpaşa antika kol saati 0531 9810190 eski kurmalı saat adin sonsuz
 
Siyavuşpaşa antika kol saati 0531 9810190 eski kurmalı saat
Siyavuşpaşa antika kol saati 0531 9810190 eski kurmalı saat Siyavuşpaşa antika kol saati 0531 9810190 eski kurmalı saat
Siyavuşpaşa antika kol saati 0531 9810190 eski kurmalı saat adin sonsuz
 
Mahmutbey antika kol saati 0531 9810190 eski kurmalı saat
Mahmutbey antika kol saati 0531 9810190 eski kurmalı saat Mahmutbey antika kol saati 0531 9810190 eski kurmalı saat
Mahmutbey antika kol saati 0531 9810190 eski kurmalı saat adin sonsuz
 
Aşıkveysel antika kol saati 0531 9810190 eski kurmalı saat
Aşıkveysel antika kol saati 0531 9810190 eski kurmalı saat Aşıkveysel antika kol saati 0531 9810190 eski kurmalı saat
Aşıkveysel antika kol saati 0531 9810190 eski kurmalı saat adin sonsuz
 

Similar to WordCamp Bari 2019 (20)

Profit statement 01
Profit statement 01Profit statement 01
Profit statement 01
 
Make your website 2 times faster
Make your website 2 times fasterMake your website 2 times faster
Make your website 2 times faster
 
Merkez, Bağcılar antika kol saati 0531 9810190 eski kurmalı
Merkez, Bağcılar antika kol saati 0531 9810190 eski kurmalı Merkez, Bağcılar antika kol saati 0531 9810190 eski kurmalı
Merkez, Bağcılar antika kol saati 0531 9810190 eski kurmalı
 
Güneşli antika kol saati 0531 9810190 eski kurmalı saat alanlar
Güneşli antika kol saati 0531 9810190 eski kurmalı saat alanlarGüneşli antika kol saati 0531 9810190 eski kurmalı saat alanlar
Güneşli antika kol saati 0531 9810190 eski kurmalı saat alanlar
 
Yenisahra antika kol saati 0531 9810190 eski kurmalı saat
Yenisahra antika kol saati 0531 9810190 eski kurmalı saat Yenisahra antika kol saati 0531 9810190 eski kurmalı saat
Yenisahra antika kol saati 0531 9810190 eski kurmalı saat
 
Sakızağacı antika kol saati 0531 9810190 eski kurmalı saat
Sakızağacı antika kol saati 0531 9810190 eski kurmalı saat Sakızağacı antika kol saati 0531 9810190 eski kurmalı saat
Sakızağacı antika kol saati 0531 9810190 eski kurmalı saat
 
Denizköşkler antika kol saati 0531 9810190 eski kurmalı saat
Denizköşkler antika kol saati 0531 9810190 eski kurmalı saat Denizköşkler antika kol saati 0531 9810190 eski kurmalı saat
Denizköşkler antika kol saati 0531 9810190 eski kurmalı saat
 
Ataköy,Bakırköy antika kol saati 0531 9810190 eski kurmalı
Ataköy,Bakırköy antika kol saati 0531 9810190 eski kurmalı Ataköy,Bakırköy antika kol saati 0531 9810190 eski kurmalı
Ataköy,Bakırköy antika kol saati 0531 9810190 eski kurmalı
 
Cevizlik antika kol saati 0531 9810190 eski kurmalı saat alanlar
Cevizlik antika kol saati 0531 9810190 eski kurmalı saat alanlarCevizlik antika kol saati 0531 9810190 eski kurmalı saat alanlar
Cevizlik antika kol saati 0531 9810190 eski kurmalı saat alanlar
 
Zeytinlik antika kol saati 0531 9810190 eski kurmalı saat
Zeytinlik antika kol saati 0531 9810190 eski kurmalı saat Zeytinlik antika kol saati 0531 9810190 eski kurmalı saat
Zeytinlik antika kol saati 0531 9810190 eski kurmalı saat
 
Evren,Bağcılar antika kol saati 0531 9810190 eski kurmalı saat
Evren,Bağcılar antika kol saati 0531 9810190 eski kurmalı saat Evren,Bağcılar antika kol saati 0531 9810190 eski kurmalı saat
Evren,Bağcılar antika kol saati 0531 9810190 eski kurmalı saat
 
Örnek mah. antika kol saati 0531 9810190 eski kurmalı saat
Örnek mah. antika kol saati 0531 9810190 eski kurmalı saat Örnek mah. antika kol saati 0531 9810190 eski kurmalı saat
Örnek mah. antika kol saati 0531 9810190 eski kurmalı saat
 
Kayışdağı antika kol saati 0531 9810190 eski kurmalı saat
Kayışdağı antika kol saati 0531 9810190 eski kurmalı saat Kayışdağı antika kol saati 0531 9810190 eski kurmalı saat
Kayışdağı antika kol saati 0531 9810190 eski kurmalı saat
 
Yeniçamlıca antika kol saati 0531 9810190 eski kurmalı saat
Yeniçamlıca antika kol saati 0531 9810190 eski kurmalı saat Yeniçamlıca antika kol saati 0531 9810190 eski kurmalı saat
Yeniçamlıca antika kol saati 0531 9810190 eski kurmalı saat
 
Göztepe,Bağcılar antika kol saati 0531 9810190 eski kurmalı
Göztepe,Bağcılar antika kol saati 0531 9810190 eski kurmalı Göztepe,Bağcılar antika kol saati 0531 9810190 eski kurmalı
Göztepe,Bağcılar antika kol saati 0531 9810190 eski kurmalı
 
Yıldıztepe antika kol saati 0531 9810190 eski kurmalı saat
Yıldıztepe antika kol saati 0531 9810190 eski kurmalı saat Yıldıztepe antika kol saati 0531 9810190 eski kurmalı saat
Yıldıztepe antika kol saati 0531 9810190 eski kurmalı saat
 
Kemalpaşa antika kol saati 0531 9810190 eski kurmalı saat
Kemalpaşa antika kol saati 0531 9810190 eski kurmalı saat Kemalpaşa antika kol saati 0531 9810190 eski kurmalı saat
Kemalpaşa antika kol saati 0531 9810190 eski kurmalı saat
 
Siyavuşpaşa antika kol saati 0531 9810190 eski kurmalı saat
Siyavuşpaşa antika kol saati 0531 9810190 eski kurmalı saat Siyavuşpaşa antika kol saati 0531 9810190 eski kurmalı saat
Siyavuşpaşa antika kol saati 0531 9810190 eski kurmalı saat
 
Mahmutbey antika kol saati 0531 9810190 eski kurmalı saat
Mahmutbey antika kol saati 0531 9810190 eski kurmalı saat Mahmutbey antika kol saati 0531 9810190 eski kurmalı saat
Mahmutbey antika kol saati 0531 9810190 eski kurmalı saat
 
Aşıkveysel antika kol saati 0531 9810190 eski kurmalı saat
Aşıkveysel antika kol saati 0531 9810190 eski kurmalı saat Aşıkveysel antika kol saati 0531 9810190 eski kurmalı saat
Aşıkveysel antika kol saati 0531 9810190 eski kurmalı saat
 

Recently uploaded

Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Delhi Call girls
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024APNIC
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...aditipandeya
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Sheetaleventcompany
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...SofiyaSharma5
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607dollysharma2066
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...Diya Sharma
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts servicesonalikaur4
 
horny (9316020077 ) Goa Call Girls Service by VIP Call Girls in Goa
horny (9316020077 ) Goa  Call Girls Service by VIP Call Girls in Goahorny (9316020077 ) Goa  Call Girls Service by VIP Call Girls in Goa
horny (9316020077 ) Goa Call Girls Service by VIP Call Girls in Goasexy call girls service in goa
 
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsRadiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsstephieert
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Servicegwenoracqe6
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girladitipandeya
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663Call Girls Mumbai
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 

Recently uploaded (20)

Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 
horny (9316020077 ) Goa Call Girls Service by VIP Call Girls in Goa
horny (9316020077 ) Goa  Call Girls Service by VIP Call Girls in Goahorny (9316020077 ) Goa  Call Girls Service by VIP Call Girls in Goa
horny (9316020077 ) Goa Call Girls Service by VIP Call Girls in Goa
 
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsRadiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girls
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
 
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 

WordCamp Bari 2019

  • 1. Come caricare un icon set in un sito FONT AWESOME IN WORDPRESS WordCamp Bari 2019
  • 2. STEFANO MINOIA Imprenditore, webmaster, WordPress enthusiast, …  RyokuhiOnWP  ryokuhi ryokuhi  ryokuhi  Ryokuhi  stefano.minoia.3  stefano-minoia-960454110
  • 4. DI COSA PARLERÒ Font Awesome Inserire l’icon set nel sito Inserire le icone in una pagina Font Awesome in WordPress – WordCamp Bari 2019
  • 5. FONT AWESOME Font Awesome in WordPress – WordCamp Bari 2019
  • 6. COS’È FONT AWESOME? È l’icon set più diffuso in Italia e nel mondo. Include un frameworkInclude un framework avanzato, ma semplice da usare. Usa icone vettoriali Font Awesome in WordPress – WordCamp Bari 2019
  • 7. PERCHÉ UTILIZZARE FONT AWESOME? Solid Web Desktop Free (1515) Pro (5099) Solid Regular (Light) Brands Icon font SVG + JS Font Awesome in WordPress – WordCamp Bari 2019
  • 8. Font Awesome Free è open sourceè open source  Icone: CC BY 4.0 License  Font: SIL OFL 1.1 License  Codice: MIT Licence Font Awesome in WordPress – WordCamp Bari 2019
  • 9.
  • 10.
  • 11.
  • 12.
  • 13. INSERIRE L’ICON SET NEL SITO Font Awesome in WordPress – WordCamp Bari 2019
  • 14. 1) Plugin 2) Webfont (stylesheet) QUATTRO SOLUZIONI 3) SVG + JS (script) 4) Sprite SVG Font Awesome in WordPress – WordCamp Bari 2019
  • 15.
  • 16.
  • 17.
  • 18. SOLUZIONE 1 UTILIZZARE IL PLUGIN DI FONT AWESOME SOLUZIONE 1 UTILIZZARE IL PLUGIN DI FONT AWESOME
  • 19.
  • 20.
  • 21. SOLUZIONE 2 CARICARE IL FOGLIO DI STILE DEL WEBFONT SOLUZIONE 2 CARICARE IL FOGLIO DI STILE DEL WEBFONT
  • 22.
  • 23.
  • 24. FONT AWESOME FREE v5.8.2 WEBFONT CON TUTTI GLI STILI <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css" integrity="sha384- oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay" crossorigin="anonymous">
  • 25. WEBFONT CON TUTTI GLI STILI SOLUZIONE 2/A /** functions.php * Enqueue Font Awesome */ function fontawesome_enqueue() {function fontawesome_enqueue() { echo '<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css" integrity="sha384- oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay" crossorigin="anonymous">'; } add_action( 'wp_enqueue_scripts', 'fontawesome_enqueue' );
  • 26. WEBFONT CON TUTTI GLI STILI RISULTATO 2/A <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css" integrity="sha384- oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay" crossorigin="anonymous"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css" integrity="sha384- oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay" crossorigin="anonymous">
  • 27. WEBFONT CON TUTTI GLI STILI SOLUZIONE 2/B /** functions.php * Enqueue Font Awesome */ function fontawesome_enqueue() {function fontawesome_enqueue() { wp_enqueue_style( 'font-awesome', 'https://use.fontawesome.com/releases/v5.8.2/css/all.css', array(), null ); } add_action( 'wp_enqueue_scripts', 'fontawesome_enqueue' );
  • 28. WEBFONT CON TUTTI GLI STILI RISULTATO 2/B <link rel="stylesheet" id="font-awesome-css" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css" type="text/css" media="all">type="text/css" media="all"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css" integrity="sha384- oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay" crossorigin="anonymous">
  • 29. WEBFONT CON TUTTI GLI STILI SOLUZIONE 2/C (1) /** functions.php * Enqueue Font Awesome */ function fontawesome_enqueue() {function fontawesome_enqueue() { wp_enqueue_style( 'font-awesome', 'https://use.fontawesome.com/releases/v5.8.2/css/all.css', array(), null ); /* Filter the link tag to add the integrity and crossorigin * attributes for completeness. */ add_filter(
  • 30. WEBFONT CON TUTTI GLI STILI SOLUZIONE 2/C (2) 'style_loader_tag', function( $html, $handle ) { if ( in_array( $handle, ['font-awesome'], true ) ) { return preg_replace(return preg_replace( '//>$/', 'integrity="' . 'sha384- oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay' . '" crossorigin="anonymous" />', $html, 1
  • 31. WEBFONT CON TUTTI GLI STILI SOLUZIONE 2/C (3) ); } else { return $html; }} }, 10, 2 ); } add_action( 'wp_enqueue_scripts', 'fontawesome_enqueue' );
  • 32. WEBFONT CON TUTTI GLI STILI RISULTATO 2/C <link rel="stylesheet" id="font-awesome-css" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css" type="text/css" media="all" integrity="sha384- oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay" crossorigin="anonymous"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css" integrity="sha384- oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay" crossorigin="anonymous">
  • 33. WEBFONT CON TUTTI GLI STILI SOLUZIONE 2/D (1) /** functions.php * Enqueue Font Awesome */ function fontawesome_enqueue() {function fontawesome_enqueue() { $version = '5.8.2'; $integrity_key = 'sha384- oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay'; wp_enqueue_style( 'font-awesome',
  • 34. WEBFONT CON TUTTI GLI STILI SOLUZIONE 2/D (2) 'https://use.fontawesome.com/releases/v' . $version . '/css/all.css', array(), nullnull ); /* Filter the link tag to add the integrity and crossorigin * attributes for completeness. */ add_filter( 'style_loader_tag',
  • 35. WEBFONT CON TUTTI GLI STILI SOLUZIONE 2/D (3) function( $html, $handle ) { if ( in_array( $handle, ['font-awesome'], true ) ) { return preg_replace( '//>$/','//>$/', 'integrity="' . $integrity_key . '" crossorigin="anonymous" />', $html, 1 );
  • 36. WEBFONT CON TUTTI GLI STILI SOLUZIONE 2/D (4) } else { return $html; } },}, 10, 2 ); } add_action( 'wp_enqueue_scripts', 'fontawesome_enqueue' );
  • 37. WEBFONT CON TUTTI GLI STILI RISULTATO 2/D <link rel="stylesheet" id="font-awesome-css" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css" type="text/css" media="all" integrity="sha384- oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay" crossorigin="anonymous"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css" integrity="sha384- oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay" crossorigin="anonymous">
  • 38. SOLUZIONE 3 CARICARE LO SCRIPT DI SVG + JS SOLUZIONE 3 CARICARE LO SCRIPT DI SVG + JS
  • 39.
  • 40.
  • 41. FONT AWESOME FREE v5.8.2 SVG + JS CON TUTTI GLI STILI <script defer src="https://use.fontawesome.com/releases/v5.8.2/js/all.js" integrity="sha384- DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH"DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH" crossorigin="anonymous"></script>
  • 42. SVG + JS CON TUTTI GLI STILI SOLUZIONE 3/A /** functions.php * Enqueue Font Awesome */ function fontawesome_enqueue() {function fontawesome_enqueue() { echo '<script defer src="https://use.fontawesome.com/releases/v5.8.2/js/all.js" integrity="sha384- DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH" crossorigin="anonymous"></script>'; } add_action( 'wp_enqueue_scripts', 'fontawesome_enqueue' );
  • 43. SVG + JS CON TUTTI GLI STILI RISULTATO 3/A <script defer src="https://use.fontawesome.com/releases/v5.8.2/js/all.js" integrity="sha384- DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH"DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH" crossorigin="anonymous"></script> <script defer src="https://use.fontawesome.com/releases/v5.8.2/js/all.js" integrity="sha384- DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH" crossorigin="anonymous"></script>
  • 44. SVG + JS CON TUTTI GLI STILI SOLUZIONE 3/B /** functions.php * Enqueue Font Awesome */ function fontawesome_enqueue() {function fontawesome_enqueue() { wp_enqueue_script( 'font-awesome', 'https://use.fontawesome.com/releases/v5.8.2/js/all.js', array(), null ); } add_action( 'wp_enqueue_scripts', 'fontawesome_enqueue' );
  • 45. SVG + JS CON TUTTI GLI STILI RISULTATO 3/B <script type="text/javascript" src="https://use.fontawesome.com/releases/v5.8.2/js/all.js"></script> <script defer<script defer src="https://use.fontawesome.com/releases/v5.8.2/js/all.js" integrity="sha384- DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH" crossorigin="anonymous"></script>
  • 46. SVG + JS CON TUTTI GLI STILI SOLUZIONE 3/C (1) /** functions.php * Enqueue Font Awesome */ function fontawesome_enqueue() {function fontawesome_enqueue() { wp_enqueue_script( 'font-awesome', 'https://use.fontawesome.com/releases/v5.8.2/js/all.js', array(), null ); /* Filter the script tag to add additional attributes for * integrity, crossorigin, defer. */ add_filter(
  • 47. 'script_loader_tag', function( $tag, $handle ) { if ( in_array( $handle, ['font-awesome'], true ) ) { $extra_tag_attributes = 'defer crossorigin="anonymous"'; SVG + JS CON TUTTI GLI STILI SOLUZIONE 3/C (2) $extra_tag_attributes .= ' integrity="' . 'sha384- DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH' . '"'; $modified_script_tag = preg_replace( '/<scripts*(.*?src=.*?)>/', '<script $extra_tag_attributes ' . '1>', $tag, 1
  • 48. SVG + JS CON TUTTI GLI STILI SOLUZIONE 3/C (3) ); return $modified_script_tag; } else { return $tag;return $tag; } }, 10, 2 ); } add_action( 'wp_enqueue_scripts', 'fontawesome_enqueue' );
  • 49. SVG + JS CON TUTTI GLI STILI RISULTATO 3/C <script defer crossorigin="anonymous" integrity="sha384- DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH" type="text/javascript" src="https://use.fontawesome.com/releases/v5.8.2/js/all.js"></script>src="https://use.fontawesome.com/releases/v5.8.2/js/all.js"></script> <script defer src="https://use.fontawesome.com/releases/v5.8.2/js/all.js" integrity="sha384- DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH" crossorigin="anonymous"></script>
  • 50. SVG + JS CON TUTTI GLI STILI SOLUZIONE 3/D (1) /** functions.php * Enqueue Font Awesome */ function fontawesome_enqueue() {function fontawesome_enqueue() { $version = '5.8.2'; $integrity_key = 'sha384- DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH'; wp_enqueue_script( 'font-awesome', 'https://use.fontawesome.com/releases/v' . $version . '/js/all.js',
  • 51. SVG + JS CON TUTTI GLI STILI SOLUZIONE 3/D (2) array(), null ); /* Filter the script tag to add additional attributes for/* Filter the script tag to add additional attributes for integrity, crossorigin, * defer. */ add_filter( 'script_loader_tag', function( $tag, $handle ) use ( $integrity_key ) {
  • 52. SVG + JS CON TUTTI GLI STILI SOLUZIONE 3/D (3) if ( in_array( $handle, ['font-awesome'], true ) ) { $extra_tag_attributes = 'defer crossorigin="anonymous"'; $extra_tag_attributes .= ' integrity="' . $integrity_key . '"';'"'; $modified_script_tag = preg_replace( '/<scripts*(.*?src=.*?)>/', "<script $extra_tag_attributes " . '1>', $tag, 1 );
  • 53. SVG + JS CON TUTTI GLI STILI SOLUZIONE 3/D (4) return $modified_script_tag; } else { return $tag; }} }, 10, 2 ); } add_action( 'wp_enqueue_scripts', 'fontawesome_enqueue' );
  • 54. SVG + JS CON TUTTI GLI STILI RISULTATO 3/D <script defer crossorigin="anonymous" integrity="sha384- DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH" type="text/javascript" src="https://use.fontawesome.com/releases/v5.8.2/js/all.js"></script>src="https://use.fontawesome.com/releases/v5.8.2/js/all.js"></script> <script defer src="https://use.fontawesome.com/releases/v5.8.2/js/all.js" integrity="sha384- DJ25uNYET2XCl5ZF++U8eNxPWqcKohUUBUpKGlNLMchM7q4Wjg2CUpjHLaL8yYPH" crossorigin="anonymous"></script>
  • 55. INSERIRE LE ICONE IN UNA PAGINA Font Awesome in WordPress – WordCamp Bari 2019
  • 56. USO DI BASE 1) Nome dell’icona (newspaper) 2) Stile da utilizzare (solid, brands, …) <i class="fas fa-newspaper"></i> <i class="fab fa-wordpress"></i> <span class="fas fa-newspaper"></span> Solid Regular (Light) Brands fas far fal fab fa
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 73. SPRITE SVG (3) <symbol id="icon-iconname" viewBox="0 0 width height"> <path d="<!-- ... -->"></path> /symbol>
  • 74.
  • 75. SPRITE SVG (4) <svg xmlns="http://www.w3.org/2000/svg" class="svg-inline--fa fa- shopping-cart fa-w-18" role="img" aria-hidden="true" viewBox="0 0 576 512" focusable="false" data-icon="shopping-cart" data- prefix="fas"><path fill="currentColor" d="M 528.12 301.319 l 47.273 - 208 C 578.806 78.301 567.391 64 551.99 64 H 159.208 l -9.166 -44.81 C208 C 578.806 78.301 567.391 64 551.99 64 H 159.208 l -9.166 -44.81 C 147.758 8.021 137.93 0 126.529 0 H 24 C 10.745 0 0 10.745 0 24 v 16 c 0 13.255 10.745 24 24 24 h 69.883 l 70.248 343.435 C 147.325 417.1 136 435.222 136 456 c 0 30.928 25.072 56 56 56 s 56 -25.072 56 -56 c 0 -15.674 -6.447 -29.835 -16.824 -40 h 209.647 C 430.447 426.165 424 440.326 424 456 c 0 30.928 25.072 56 56 56 s 56 -25.072 56 -56 c 0 - 22.172 -12.888 -41.332 -31.579 -50.405 l 5.517 -24.276 c 3.413 - 15.018 -8.002 -29.319 -23.403 -29.319 H 218.117 l -6.545 -32 h 293.145 c 11.206 0 20.92 -7.754 23.403 -18.681 Z" /></svg>
  • 76. SPRITE SVG (5) <symbol id="icon-shopping-cart" viewBox="0 0 576 512"> <path d="M 528.12 301.319 l 47.273 -208 C 578.806 78.301 567.391 64 551.99 64 H 159.208 l -9.166 -44.81 C 147.758 8.021 137.93 0 126.529 0 H 24 C 10.745 0 0 10.745 0 24 v 16 c 0 13.255 10.745 24 24 24 h 69.883 l 70.248 343.435 C 147.325 417.1 136 435.222 136 456 c 069.883 l 70.248 343.435 C 147.325 417.1 136 435.222 136 456 c 0 30.928 25.072 56 56 56 s 56 -25.072 56 -56 c 0 -15.674 -6.447 -29.835 -16.824 -40 h 209.647 C 430.447 426.165 424 440.326 424 456 c 0 30.928 25.072 56 56 56 s 56 -25.072 56 -56 c 0 -22.172 -12.888 - 41.332 -31.579 -50.405 l 5.517 -24.276 c 3.413 -15.018 -8.002 -29.319 -23.403 -29.319 H 218.117 l -6.545 -32 h 293.145 c 11.206 0 20.92 - 7.754 23.403 -18.681 Z"></path> </symbol>
  • 77. SPRITE SVG (6) <?php childthemename_get_svg( 'icon-shopping-cart' ); ?>
  • 78. GRAZIE! DOMANDE? Font Awesome in WordPress – WordCamp Bari 2019
  • 80. CREDITS Photos by Ilya Pavlov, Eco Warrior Princess, Kristian Strand, Jason Leung, Harpal Singh, Richard Clark, Chinh Le Duc, Hunter Haley and Jon Moore on UnsplashHunter Haley and Jon Moore on Unsplash Arsenault, Cody (August 9, 2018). "Icon Fonts vs SVGs - Which One Should You Use In 2018?". https://www.keycdn.com/blog/icon-fonts-vs-svgs