Prima di proseguire...
Potrebbe interessarti la nostra collezione di esercizi C risolti?
A chi non è capitato di voler inserire in WordPress in alcune pagine un banner ed in altre tipo le pagine singole di inserimento dei commenti doversi “accontentare” degli insiemi di link dato che i banner disponibili sono stati usati all’interno dell’articolo?
Ecco oggi vediamo uno script per risolvere questo problema con l’uso delle espressioni regolari:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <?php $pag = "p" ; $espr = "/^(((.)+)|())(" . $pag . "=)(((.)+)|())$/" ; if (!preg_match( $espr , $_SERVER [ 'QUERY_STRING' ])){ ?> <!-- banner_728X90_start --> < div class = "banner_on" > < script type = "text/javascript" > <!-- google_ad_client = "pub-2719419909083936"; /* 728x90, creato 28/03/10 */ google_ad_slot = "0802827148"; google_ad_width = 728; google_ad_height = 90; //--> </ script > < script type = "text/javascript" </ script > </ div > <!-- banner_728X90_end --> <?php } else { ?> < div class = "banner_on" > < script type = "text/javascript" > <!-- google_ad_client = "pub-2719419909083936"; /* 728x15, creato 21/06/10 */ google_ad_slot = "5384394699"; google_ad_width = 728; google_ad_height = 15; //--> </ script > < script type = "text/javascript" </ script > </ div > <?php } ?> |
In pratica nella variabile $pag inserisco il parametro get che identifica la pagina; ad esempio p identifica le pagine singole, cat le categorie, m gli archivi, tag i tag, ecc.
In pratica io con l’espressione regolare controllo che nella stringa di parametri get sia presente $pag.”=”, cioè in questo caso p= es agisco di conseguenza con un if…else…
In teoria bastava usare isset($_GET[$pag]); ma dato che non sappiamo a priori che cosa avviene all’interno di wordpress a causa dei vari plugin, $_GET[$pag] potrebbe essere stato cancellato o creato in seguito.
L’espressione regolare non fa altro che controllare la presenza di uno o più caratteri qualsiasi, escluso il \n, con ((.)+) oppure la presenza di nessun carattere con |() in seguito controlla la presenza di $pag.”=”, con (“.$pag”.=) ed infine riesegue il controllo iniziale per verificare la presenza di 0 o più caratteri, con (((.)+)|()).
Molto semplicemente si potrebbe fare nel if !is_single()
ad sense in base alla pagina in wordpress by cardinale claudio is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.