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:
<?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" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </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" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </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.