RODOLFO MELOGLI ©2021
Da zero a PHP…
RODOLFO MELOGLI ©2021
Da zero a PHP...
● Se conosci un minimo di HTML (<div> <p> <ul> <li> <img>
<a> <h1> <h2> <h3> <span>) è un peccato non saper giocare
in PHP (80% web, 100% WP)
● PHP = "PHP: Hypertext Preprocessor"
(https://www.php.net); in poche parole, PHP genera pagine
web dinamicamente (ovvero HTML!). E non solo.
2
RODOLFO MELOGLI ©2021
Da zero a PHP...
● WP core, temi, plugin sono sviluppati in PHP. Se lo
conosci... li customizzi. Bastano spesso 4 righe di
codice per modificare/aggiungere qualcosa
● Prima di considerare l'installazione di yet another
plugin, vedi se qualche riga di PHP può bastare :)
3
RODOLFO MELOGLI ©2021
ZERO: le basi
4
RODOLFO MELOGLI ©2021
Differenza tra HTML "manuale" e
HTML generato da PHP
© 2011-2020 ACME INC.
© 2011-<?php echo date( 'Y' ); ?> ACME INC.
5
RODOLFO MELOGLI ©2021
Cosa fa PHP
● Genera HTML dinamico (date('Y') per esempio)
● Salva dati inseriti in un <form>
● Parla/scrive col/sul DB
● Parla/scrive con/su file
● Salva/legge cookies
● E molto altro
6
RODOLFO MELOGLI ©2021
Sintassi
<?php echo date( 'Y' ); ?>
● PHP script è delimitato dai tag di apertura/chiusura
● PHP statement finiscono col ;
● PHP function date() ecc.
● PHP viene scritto in un file .php (functions.php per esempio)
7
RODOLFO MELOGLI ©2021
Prepararsi a scrivere in PHP
● Hosting con PHP installato (tutti praticamente!)
● Dominio
● SW: Code editor es. NotePad++
● SW: FTP es. FileZilla
● (sito WordPress)
8
RODOLFO MELOGLI ©2021
Il nostro primo file .php (+ HTML)
9
RODOLFO MELOGLI ©2021 10
RODOLFO MELOGLI ©2021
UNO: variabili
11
RODOLFO MELOGLI ©2021
Sintassi
<?php $totale = 59; ?>
In questo statement definisco la variabile ($) $totale e gli
assegno il numero 59 e ne definisco il tipo (integer)
<?php $totale = "59"; ?>
?
12
RODOLFO MELOGLI ©2021
Sintassi
<?php $totale = 0; ?>
● nome variabile inizia con lettera oppure "_"
● solo (A-z, 0-9, _ )
● case-sensitive: $Totale != $totale
13
RODOLFO MELOGLI ©2021
Tipi di variabile
<?php
$totale = 0; // integer
$totale = "n/a"; // string
$totale = 5.39; // float
$totale = array( 0, 1, 2, 7, 19 ); // array
$totale = false; // boolean
?>
14
RODOLFO MELOGLI ©2021
Operatori
<?php
$totale = $x + $y;
$totale = $x * $y;
$totale = $x / $y;
$totale = $x . 'kg';
?>
15
<?php
$x == $y // uguale
$x === $y // uguale + tipo
$x != $y // diverso
$x >= $y // maggiore uguale
?>
RODOLFO MELOGLI ©2021
if else elseif Statement
<?php
if ( $totale == 0 ) {
echo 'Nulla';
} elseif ( $totale >= 100 ) {
echo 'Complimenti';
} else {
echo 'Congratulazioni!';
}
?>
16
RODOLFO MELOGLI ©2021
foreach Statement
<?php
$frutta = array( 'banana', 'fragola', 'mela' );
foreach ( $frutta as $frutto ) {
echo '<p>Oggi mangia la ' . $frutto . '</p>';
}
?>
17
RODOLFO MELOGLI ©2021 18
RODOLFO MELOGLI ©2021
DUE: funzioni
19
RODOLFO MELOGLI ©2021
PHP functions
● 1000+ built-in functions es. date() strlen()
● funzioni custom
20
RODOLFO MELOGLI ©2021
Sintassi
<?php
function hello() {
echo 'Ciao!';
}
hello(); // chiama
?>
● nome funzione inizia con lettera oppure "_". Unico
● non è case-sensitive: HELLO();
21
RODOLFO MELOGLI ©2021
Argomenti
<?php
function hello( $name ) {
echo 'Ciao ' . $name . '!';
}
hello( 'Rodolfo' ); // chiama con argomento
?>
● si possono passare informazioni alla funzione
●
22
RODOLFO MELOGLI ©2021
Argomenti
<?php
function hello( $name = 'Pinco' ) {
echo 'Ciao ' . $name . '!';
}
hello( 'Rodolfo' ); // chiama con argomento
?>
● si possono passare informazioni alla funzione
● valore di default: in caso di assenza di argomento
23
RODOLFO MELOGLI ©2021
Echo vs Return
<?php
echo 'Ciao,'; // stampa Ciao,
function nome_cognome( $nome, $cognome ) {
return $nome . ' ' . $cognome;
}
nome_cognome( "Rodolfo", "Melogli" ); // non stampa
?>
● echo = stampa; return = restituisci (no stampa)
24
RODOLFO MELOGLI ©2021
Quindi a che serve Return?
<?php
function nome_cognome( $nome, $cognome ) {
if ( $nome == "" || $cognome == "" ) return 'n/a';
return $nome . ' ' . $cognome;
}
?>
● uscire presto dalla funzione
25
RODOLFO MELOGLI ©2021
Quindi a che serve Return?
<?php
function nome_cognome( $nome, $cognome ) {
if ( $nome == "" || $cognome == "" ) return 'n/a';
return $nome . ' ' . $cognome;
}
if ( nome_cognome( "Rodolfo", "" ) == 'n/a' ) {
echo 'Hey, manca qualcosa!';
}
?>
● uscire presto dalla funzione / manipolare di nuovo
26
RODOLFO MELOGLI ©2021
TRE: PHP<>WP
27
RODOLFO MELOGLI ©2021
PHP in WP
● Core, theme, plugin file sono quasi tutti .php
● Inoltre, WP definisce anche le sue funzioni PHP:
get_header() the_title() the_content() ecc.
● Custom PHP si può inserire nel child theme per
personalizzare WP/theme/plugin
28
RODOLFO MELOGLI ©2021
WP Hooks
● Sito WP è un assemblaggio di funzioni PHP che poi
restituiscono il risultato nel browser (header, contenuto,
sidebar, footer…)
● Durante questo assemblaggio, puoi "stoppare" il
processo, "agganciare" la tua funzione, e farlo ripartire
SENZA modificare i file WP/theme/plugin
29
RODOLFO MELOGLI ©2021
WP Hooks - Esempio "wp_head"
<?php
add_action( 'wp_head', 'googleanalytics' );
function googleanalytics() {
echo '<script>codice qui</script>';
}
?>
● mentre WP assemblava l'header, ho "agganciato" il
mio script chiamando la mia funzione custom
30
RODOLFO MELOGLI ©2021
WP Hooks - Esempio "the_content"
<?php
add_filter( 'the_content', 'concatena_banner' );
function concatena_banner( $content ) {
$content = $content . '<img src="bann.jpg">';
return $content;
}
?>
● mentre WP assemblava il contenuto, ho "agganciato"
il banner chiamando la mia funzione custom
31
RODOLFO MELOGLI ©2021
WP Hooks: add_action add_filter
● add_action ti permette di agganciarti a una do_action
per aggiungere qualcosa (contenuto, un'azione, ecc.)
● add_filter ti permette di agganciarti a un apply_filters
per manipolare qualcosa (es. array di categorie)
32
RODOLFO MELOGLI ©2021
Un plugin ben sviluppato ti offre:
● una marea di do_action per aggiungere
personalizzazioni tramite functions.php
● una marea di apply_filters per intercettare le sue
funzioni e manipolarle tramite functions.php
● altrimenti devi modificare i core files (big NO)
33
RODOLFO MELOGLI ©2021
Caso Studio 1: prefooter
● su tutte le pagine WP si desidera aggiungere una
sezione "prefooter" con un banner
● vado a cercarmi l'hook di WP che corrisponde al
momento in cui assembla il footer
● mi "aggancio" e faccio caricare prima la mia funzione
custom
34
RODOLFO MELOGLI ©2021
Caso Studio 1: prefooter
<?php
add_action( 'get_footer', 'prefooter', 1 );
function prefooter() {
echo '<img src="header-banner.jpg">';
}
?>
35
priority
RODOLFO MELOGLI ©2021 36
RODOLFO MELOGLI ©2021
Caso Studio 2: rimuovere WC tabs
● WooCommerce "aggiunge" i single product tabs con
un suo hook: add_action( 'woocommerce_after_single_product_summary',
'woocommerce_output_product_data_tabs', 10 );
● tramite PHP vogliamo rimuoverlo
● businessbloomer.com/woocommerce-visual-hook-gui
de-single-product-page per lista hooks
37
RODOLFO MELOGLI ©2021
Caso Studio 2: rimuovere WC tabs
<?php
remove_action(
'woocommerce_after_single_product_summary',
'woocommerce_output_product_data_tabs', 10 );
?>
38
unica differenza
RODOLFO MELOGLI ©2021
Caso Studio 3: SEO
<?php
function home_meta_description() {
if ( is_home() ) {
echo '<meta name="description" content="Il
WordCamp Italia è un evento online organizzato dalla
community italiana di WordPress">';
}
}
add_action( 'wp_head', 'home_meta_description');
?>
39
RODOLFO MELOGLI ©2021
Da zero a PHP
40
RODOLFO MELOGLI ©2021
Recap
● Potremmo fare un WordCamp intero a riguardo…
● In questi minuti hai imparato a scrivere in PHP, creare
funzioni e manipolare un sito WP
● Ora sta a te continuare con lo studio e la pratica. Se in
15 minuti abbiamo fatto tutto questo, chissà in 100
ore cosa si può ottenere!
41
RODOLFO MELOGLI ©2021
Grazie!
Domande?

More Related Content

PPT
Introduzione al linguaggio PHP
PDF
PHP 7 - benvenuto al futuro
PPT
PHP: strutture di controllo e funzioni
PPT
PHP:funzioni e interazione con MySQL
PPT
Php e mysql (primi passi)
PDF
Gianfrasoft Corso Di Php Parte 2
ODP
Consigli per iniziare tdd
DOC
Linguaggi Di Programmazione Caso Di Studio
Introduzione al linguaggio PHP
PHP 7 - benvenuto al futuro
PHP: strutture di controllo e funzioni
PHP:funzioni e interazione con MySQL
Php e mysql (primi passi)
Gianfrasoft Corso Di Php Parte 2
Consigli per iniziare tdd
Linguaggi Di Programmazione Caso Di Studio

What's hot (17)

PDF
ODP
PPT
Corso di php01
PDF
Bash Scripting
PPT
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
PPT
7 Sottoprogrammi
PDF
[BASH] Shell Scripting [ITA]
PDF
Comunicazione tra procesi Linux
PPTX
Funzioni anonime in PHP 5.3
PDF
Attacchi alle applicazioni basati su buffer overflow
PDF
Laboratorio Programmazione: In - Out variabili
PPT
Attacchi alle applicazioni basati su buffer overflow
ODP
Pycon Jungle
PDF
14 - Programmazione: Stream e File
PDF
Laboratorio Programmazione: Funzioni
PDF
6.01 php ajax_json_mysql
Corso di php01
Bash Scripting
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
7 Sottoprogrammi
[BASH] Shell Scripting [ITA]
Comunicazione tra procesi Linux
Funzioni anonime in PHP 5.3
Attacchi alle applicazioni basati su buffer overflow
Laboratorio Programmazione: In - Out variabili
Attacchi alle applicazioni basati su buffer overflow
Pycon Jungle
14 - Programmazione: Stream e File
Laboratorio Programmazione: Funzioni
6.01 php ajax_json_mysql
Ad

Similar to WordCamp Italia 2021: da zero a PHP (20)

PDF
Programmazione Internet
PDF
Introduzione a java script
ODP
Sinfonia in Domino RE - Integrazione Symphony e Lotus Notes 8.x
ODP
Web Performance Optimization
PDF
TDD in WordPress
PDF
Corso avanzato di Tecnologie WEB - Funzioni e oggetti
PDF
Case study: un approccio modulare in un progetto legacy
PPT
eZ publish - Extension
PDF
Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018
ODP
Non Conventional Android Programming (Italiano)
PDF
Spaghetti code refactoring
PPTX
Sviluppare plugin per WordPress: Best Practice e Silver Bullet
PPT
Progetto di Basi di Dati
PDF
Modificare e personalizzare WordPress attraverso 20 Snippets
PDF
introduzione a symfony 2
PPTX
Caratteristiche del linguaggio c
PDF
Integrare Zend Framework in Wordpress
PDF
PDF
Perl Template Toolkit
DOCX
Introduzione a..django
Programmazione Internet
Introduzione a java script
Sinfonia in Domino RE - Integrazione Symphony e Lotus Notes 8.x
Web Performance Optimization
TDD in WordPress
Corso avanzato di Tecnologie WEB - Funzioni e oggetti
Case study: un approccio modulare in un progetto legacy
eZ publish - Extension
Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018
Non Conventional Android Programming (Italiano)
Spaghetti code refactoring
Sviluppare plugin per WordPress: Best Practice e Silver Bullet
Progetto di Basi di Dati
Modificare e personalizzare WordPress attraverso 20 Snippets
introduzione a symfony 2
Caratteristiche del linguaggio c
Integrare Zend Framework in Wordpress
Perl Template Toolkit
Introduzione a..django
Ad

More from Rodolfo Melogli (20)

PDF
WooCommerce: Issues With remove action()
PDF
WooCommerce: Custom Fields
PDF
WooCommerce: Conditional Logic
PDF
WooCommerce: Intro to PHP
PDF
WooCommerce: Intro to CSS
PDF
WooCommerce: Shortcodes
PDF
WooCommerce: Filter Hooks
PDF
WooCommerce: Anatomy of a Template File
PDF
WooCommerce: Action Hooks
PDF
WooCommerce: Where to Place Customization
PDF
WooCommerce: Plugin Settings Overview
PDF
WooCommerce: Customization Mistakes to Avoid
PDF
WooCommerce: Customization Definitions
PDF
WooCommerce: Customization FAQ
PDF
10 PHP Snippets to Increase WooCommerce Sales
PDF
WooCommerce Workshop. INSTALL. SET UP. PUBLISH. SELL.
PDF
How to Sell ANYTHING with WordPress + WooCommerce
PDF
WooCommerce Customization Masterclass (WordCamp Dublin 2017)
PPTX
5 Growth Hacking Strategies + Google Analytics tips & tricks
PPTX
From Purchase to Customer Satisfaction: 7 Ways to Increase your Sales
WooCommerce: Issues With remove action()
WooCommerce: Custom Fields
WooCommerce: Conditional Logic
WooCommerce: Intro to PHP
WooCommerce: Intro to CSS
WooCommerce: Shortcodes
WooCommerce: Filter Hooks
WooCommerce: Anatomy of a Template File
WooCommerce: Action Hooks
WooCommerce: Where to Place Customization
WooCommerce: Plugin Settings Overview
WooCommerce: Customization Mistakes to Avoid
WooCommerce: Customization Definitions
WooCommerce: Customization FAQ
10 PHP Snippets to Increase WooCommerce Sales
WooCommerce Workshop. INSTALL. SET UP. PUBLISH. SELL.
How to Sell ANYTHING with WordPress + WooCommerce
WooCommerce Customization Masterclass (WordCamp Dublin 2017)
5 Growth Hacking Strategies + Google Analytics tips & tricks
From Purchase to Customer Satisfaction: 7 Ways to Increase your Sales

WordCamp Italia 2021: da zero a PHP

  • 2. RODOLFO MELOGLI ©2021 Da zero a PHP... ● Se conosci un minimo di HTML (<div> <p> <ul> <li> <img> <a> <h1> <h2> <h3> <span>) è un peccato non saper giocare in PHP (80% web, 100% WP) ● PHP = "PHP: Hypertext Preprocessor" (https://www.php.net); in poche parole, PHP genera pagine web dinamicamente (ovvero HTML!). E non solo. 2
  • 3. RODOLFO MELOGLI ©2021 Da zero a PHP... ● WP core, temi, plugin sono sviluppati in PHP. Se lo conosci... li customizzi. Bastano spesso 4 righe di codice per modificare/aggiungere qualcosa ● Prima di considerare l'installazione di yet another plugin, vedi se qualche riga di PHP può bastare :) 3
  • 5. RODOLFO MELOGLI ©2021 Differenza tra HTML "manuale" e HTML generato da PHP © 2011-2020 ACME INC. © 2011-<?php echo date( 'Y' ); ?> ACME INC. 5
  • 6. RODOLFO MELOGLI ©2021 Cosa fa PHP ● Genera HTML dinamico (date('Y') per esempio) ● Salva dati inseriti in un <form> ● Parla/scrive col/sul DB ● Parla/scrive con/su file ● Salva/legge cookies ● E molto altro 6
  • 7. RODOLFO MELOGLI ©2021 Sintassi <?php echo date( 'Y' ); ?> ● PHP script è delimitato dai tag di apertura/chiusura ● PHP statement finiscono col ; ● PHP function date() ecc. ● PHP viene scritto in un file .php (functions.php per esempio) 7
  • 8. RODOLFO MELOGLI ©2021 Prepararsi a scrivere in PHP ● Hosting con PHP installato (tutti praticamente!) ● Dominio ● SW: Code editor es. NotePad++ ● SW: FTP es. FileZilla ● (sito WordPress) 8
  • 9. RODOLFO MELOGLI ©2021 Il nostro primo file .php (+ HTML) 9
  • 12. RODOLFO MELOGLI ©2021 Sintassi <?php $totale = 59; ?> In questo statement definisco la variabile ($) $totale e gli assegno il numero 59 e ne definisco il tipo (integer) <?php $totale = "59"; ?> ? 12
  • 13. RODOLFO MELOGLI ©2021 Sintassi <?php $totale = 0; ?> ● nome variabile inizia con lettera oppure "_" ● solo (A-z, 0-9, _ ) ● case-sensitive: $Totale != $totale 13
  • 14. RODOLFO MELOGLI ©2021 Tipi di variabile <?php $totale = 0; // integer $totale = "n/a"; // string $totale = 5.39; // float $totale = array( 0, 1, 2, 7, 19 ); // array $totale = false; // boolean ?> 14
  • 15. RODOLFO MELOGLI ©2021 Operatori <?php $totale = $x + $y; $totale = $x * $y; $totale = $x / $y; $totale = $x . 'kg'; ?> 15 <?php $x == $y // uguale $x === $y // uguale + tipo $x != $y // diverso $x >= $y // maggiore uguale ?>
  • 16. RODOLFO MELOGLI ©2021 if else elseif Statement <?php if ( $totale == 0 ) { echo 'Nulla'; } elseif ( $totale >= 100 ) { echo 'Complimenti'; } else { echo 'Congratulazioni!'; } ?> 16
  • 17. RODOLFO MELOGLI ©2021 foreach Statement <?php $frutta = array( 'banana', 'fragola', 'mela' ); foreach ( $frutta as $frutto ) { echo '<p>Oggi mangia la ' . $frutto . '</p>'; } ?> 17
  • 20. RODOLFO MELOGLI ©2021 PHP functions ● 1000+ built-in functions es. date() strlen() ● funzioni custom 20
  • 21. RODOLFO MELOGLI ©2021 Sintassi <?php function hello() { echo 'Ciao!'; } hello(); // chiama ?> ● nome funzione inizia con lettera oppure "_". Unico ● non è case-sensitive: HELLO(); 21
  • 22. RODOLFO MELOGLI ©2021 Argomenti <?php function hello( $name ) { echo 'Ciao ' . $name . '!'; } hello( 'Rodolfo' ); // chiama con argomento ?> ● si possono passare informazioni alla funzione ● 22
  • 23. RODOLFO MELOGLI ©2021 Argomenti <?php function hello( $name = 'Pinco' ) { echo 'Ciao ' . $name . '!'; } hello( 'Rodolfo' ); // chiama con argomento ?> ● si possono passare informazioni alla funzione ● valore di default: in caso di assenza di argomento 23
  • 24. RODOLFO MELOGLI ©2021 Echo vs Return <?php echo 'Ciao,'; // stampa Ciao, function nome_cognome( $nome, $cognome ) { return $nome . ' ' . $cognome; } nome_cognome( "Rodolfo", "Melogli" ); // non stampa ?> ● echo = stampa; return = restituisci (no stampa) 24
  • 25. RODOLFO MELOGLI ©2021 Quindi a che serve Return? <?php function nome_cognome( $nome, $cognome ) { if ( $nome == "" || $cognome == "" ) return 'n/a'; return $nome . ' ' . $cognome; } ?> ● uscire presto dalla funzione 25
  • 26. RODOLFO MELOGLI ©2021 Quindi a che serve Return? <?php function nome_cognome( $nome, $cognome ) { if ( $nome == "" || $cognome == "" ) return 'n/a'; return $nome . ' ' . $cognome; } if ( nome_cognome( "Rodolfo", "" ) == 'n/a' ) { echo 'Hey, manca qualcosa!'; } ?> ● uscire presto dalla funzione / manipolare di nuovo 26
  • 28. RODOLFO MELOGLI ©2021 PHP in WP ● Core, theme, plugin file sono quasi tutti .php ● Inoltre, WP definisce anche le sue funzioni PHP: get_header() the_title() the_content() ecc. ● Custom PHP si può inserire nel child theme per personalizzare WP/theme/plugin 28
  • 29. RODOLFO MELOGLI ©2021 WP Hooks ● Sito WP è un assemblaggio di funzioni PHP che poi restituiscono il risultato nel browser (header, contenuto, sidebar, footer…) ● Durante questo assemblaggio, puoi "stoppare" il processo, "agganciare" la tua funzione, e farlo ripartire SENZA modificare i file WP/theme/plugin 29
  • 30. RODOLFO MELOGLI ©2021 WP Hooks - Esempio "wp_head" <?php add_action( 'wp_head', 'googleanalytics' ); function googleanalytics() { echo '<script>codice qui</script>'; } ?> ● mentre WP assemblava l'header, ho "agganciato" il mio script chiamando la mia funzione custom 30
  • 31. RODOLFO MELOGLI ©2021 WP Hooks - Esempio "the_content" <?php add_filter( 'the_content', 'concatena_banner' ); function concatena_banner( $content ) { $content = $content . '<img src="bann.jpg">'; return $content; } ?> ● mentre WP assemblava il contenuto, ho "agganciato" il banner chiamando la mia funzione custom 31
  • 32. RODOLFO MELOGLI ©2021 WP Hooks: add_action add_filter ● add_action ti permette di agganciarti a una do_action per aggiungere qualcosa (contenuto, un'azione, ecc.) ● add_filter ti permette di agganciarti a un apply_filters per manipolare qualcosa (es. array di categorie) 32
  • 33. RODOLFO MELOGLI ©2021 Un plugin ben sviluppato ti offre: ● una marea di do_action per aggiungere personalizzazioni tramite functions.php ● una marea di apply_filters per intercettare le sue funzioni e manipolarle tramite functions.php ● altrimenti devi modificare i core files (big NO) 33
  • 34. RODOLFO MELOGLI ©2021 Caso Studio 1: prefooter ● su tutte le pagine WP si desidera aggiungere una sezione "prefooter" con un banner ● vado a cercarmi l'hook di WP che corrisponde al momento in cui assembla il footer ● mi "aggancio" e faccio caricare prima la mia funzione custom 34
  • 35. RODOLFO MELOGLI ©2021 Caso Studio 1: prefooter <?php add_action( 'get_footer', 'prefooter', 1 ); function prefooter() { echo '<img src="header-banner.jpg">'; } ?> 35 priority
  • 37. RODOLFO MELOGLI ©2021 Caso Studio 2: rimuovere WC tabs ● WooCommerce "aggiunge" i single product tabs con un suo hook: add_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 ); ● tramite PHP vogliamo rimuoverlo ● businessbloomer.com/woocommerce-visual-hook-gui de-single-product-page per lista hooks 37
  • 38. RODOLFO MELOGLI ©2021 Caso Studio 2: rimuovere WC tabs <?php remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 ); ?> 38 unica differenza
  • 39. RODOLFO MELOGLI ©2021 Caso Studio 3: SEO <?php function home_meta_description() { if ( is_home() ) { echo '<meta name="description" content="Il WordCamp Italia è un evento online organizzato dalla community italiana di WordPress">'; } } add_action( 'wp_head', 'home_meta_description'); ?> 39
  • 40. RODOLFO MELOGLI ©2021 Da zero a PHP 40
  • 41. RODOLFO MELOGLI ©2021 Recap ● Potremmo fare un WordCamp intero a riguardo… ● In questi minuti hai imparato a scrivere in PHP, creare funzioni e manipolare un sito WP ● Ora sta a te continuare con lo studio e la pratica. Se in 15 minuti abbiamo fatto tutto questo, chissà in 100 ore cosa si può ottenere! 41