Desde la versión 3 de PHP, function_exists() existe en la especificación del lenguaje y desde entonces ha sido una función muy importante dentro del apartado de Gestión de funciones. Con ella podréms controlar si una función existe o no antes de llamarla.
Descripción
bool function_exists ( string nombre_funcion )
Modo de uso
if (function_exists(‘muestra_algo’)) {
muestra_algo();
} else {
no_muestres_nada();
}
De esta forma comprobamos que la función muestra_algo() está declarada y podemos usarla, en caso de que no esté declarada lanzará la función no_muestres_nada();
¿Por que suelto esta chorrada que está en php.net?
Principalmente por que a la hora de crear un theme para wordpress, mucha gente diseña su Theme teniendo en cuenta muchos plugins que obligan a los usuarios a instalar si quieren que el theme funcione. Como podeis ver he cambiado el theme (es temporal) y he estado probando varios y adaptando algunos, pero este ha sido el que más me ha gustado y se quedará unas semanas hasta que termine la versión 2.0 del rediseño 😀
Pues en mi odisea por los themes que más me han gustado, he estado descubriendo que la gente no tiene en cuenta a los usuarios, y les «obligan» a instalar plugins si quieren como mínimo ver el theme, ya no hablemos de ponerlo en producción, cara al público.
Una forma de solucionar esto es usando esta función que al ser nativa de PHP y soportada desde la 3.0, te aseguras que funciona seguro sobre cualquier servidor «normal». Y así haces tu theme más resistente y profesional.
Siempre es necesario la utilización de algún plugin, en ese caso tenerlo en cuenta no cuesta tanto. Se informa al usuario de que está preparado para soportar X plugins, pero no obligas a que los usen, lo aconsejas. Ahi está la diferencia que hace un theme pase los 10 segundos de vida, ya que lo pueden ver terminado y sin ningún tipo de problema.
Ejemplo de como montar esto
Un ejemplo típico, ya que es el más usado, es el plugin Gravatar. Este plugin suele está en todos los comentarios de casi todos los blogs, no me extrañaría que WordPress lo absorbiera en su próxima versión.
La línea normal es la siguiente:
<?php gravatar("R", 40, "http://www.somewhere.com/heatvision.jpg", "FF0000"); ?>
De está forma sino tienes el plugin instalado, en la línea donde tengas esta llamada se cortará la ejecución del theme, dejándolo a medias. Teniendo en cuenta que con una simple función puedes corregir eso, es un poco de tontos no usarlo ¿no?.
<?php if (function_exists(«gravatar»))
gravatar("R", 40, "http://www.somewhere.com/heatvision.jpg", "FF0000"); ?>
¿Facil no? Esto puede hacer que tu theme pase de ser ese que falla (piensa que hay gente que no sabe nada de plugins ni wordpress) a ser ese que esta chulo y si le pongo gravatar es más chulo aun…
3 comentarios, 4 referencias
+
#