Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Copa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Práctica recomendada: Marcar / comprobar si la función existe cuando se agrega en el tema de WordPress

Nota editorial: Ganamos una comisión de los enlaces de socios en WPBeginner. Las comisiones no afectan a las opiniones o evaluaciones de nuestros editores. Más información sobre Proceso editorial.

Recientemente, un usuario nos preguntó cómo marcar / comprobar si una función PHP existe antes de añadir un nuevo código a su sitio WordPress que dependa de ella.

Lo mejor de WordPress es su flexibilidad, que incluye la posibilidad de añadir tus propias funciones personalizadas a tu sitio web. Sin embargo, a veces, tu código personalizado puede no funcionar porque la función a la que hace referencia ya no existe.

En este artículo, le mostraremos cómo comprobar fácilmente si una función existe antes de añadirla a su tema de WordPress.

Checking if a function exists in WordPress

¿Por qué añadir “Si existe la función” a su código personalizado?

WordPress está escrito principalmente en el idioma de programación PHP. PHP es un idioma de programación del lado del servidor que se ejecuta en los servidores de su proveedor de alojamiento WordPress.

Dado que el código PHP tiene que terminar de ejecutarse antes de que la página se cargue en los navegadores de sus visitantes, tiene ciertas limitaciones. Una de esas limitaciones es que si algo va mal, podría impedir que se cargara toda la página.

En WordPress, si una función que falta impide que el resto del código se ejecute, entonces se detiene y muestra un mensaje de error crítico o error fatal.

WordPress critical error message

¿Qué puede hacer que una función deje de funcionar o falte de repente?

Es un error de WordPress más común de lo que crees.

Por ejemplo, digamos que uno de tus plugins de WordPress viene con una función que has añadido a la cabecera o al pie de página de tu tema. Desactivar el plugin hará que la función desaparezca y causará el error crítico en su sitio web de WordPress.

Dicho esto, echemos un vistazo a cómo comprobar fácilmente si una función existe antes de ejecutarla en los archivos de su tema de WordPress.

Comprobar si existe una función en WordPress

Por suerte, el idioma de programación PHP viene con un método incorporado para comprobar fácilmente la existencia de una función antes de ejecutarla.

Supongamos que tiene una función en WordPress que muestra la hora actual con información sobre la zona horaria. Aquí tienes un fragmento de código de ejemplo que puedes usar para probarlo.

Puedes añadirlo directamente al archivo functions. php de tu tema o utilizar un plugin de fragmentos de código como WPCode (recomendado). Puede consultar nuestra guía sobre cómo añadir fácilmente código personalizado en WordPress:

//display current time with timezone
function wpb_show_timezone() {
$better_time = current_time('F j, Y g:i a e');
echo "<p>The current time is " . $better_time ."</p>";
}

Para llamar a esta función, tendrá que añadir el siguiente código en cualquier lugar de su tema de WordPress donde desee mostrar la hora actual.

<?php wpb_show_timezone(); ?>

Así se veía en nuestro sitio web de pruebas.

Function runs normally

Ahora bien, ¿qué pasaría si desapareciera el código responsable de ejecutar esta función?

La llamada a la función romperá tu sitio web así.

Critical error in WordPress

Añadamos una comprobación para asegurarnos de que este código solo se ejecuta cuando la función existe.

De nuevo, tendrá que añadir el código directamente al archivo functions.php de su tema o utilizar un plugin de fragmentos de código como WPCode (recomendado):

<?php
if( function_exists('wpb_show_timezone')) {
wpb_show_timezone();
} else {
// do nothing
}
?>

En este código, estamos utilizando la función function_exists(). Esta función comprueba si una función existe y devuelve True o False.

A continuación, añadimos una condición if-else para tomar las medidas oportunas en función de la disponibilidad de la función.

Ahora, cuando la función ya no esté disponible, el código simplemente la omitirá, y WordPress podrá cargar el resto de su sitio web con normalidad.

Missing function skipped

Esperamos que este artículo te haya ayudado a comprobar si una función existe en WordPress. También puedes consultar nuestra guía completa para diagnosticar problemas en WordPress o nuestra selección de los mejores editores de arrastrar y soltar para páginas de WordPress.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Descargo: Nuestro contenido está apoyado por los lectores. Esto significa que si hace clic en algunos de nuestros enlaces, podemos ganar una comisión. Vea cómo se financia WPBeginner , por qué es importante, y cómo puede apoyarnos. Aquí está nuestro proceso editorial .

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

El último kit de herramientas de WordPress

Obtenga acceso GRATUITO a nuestro kit de herramientas - una colección de productos y recursos relacionados con WordPress que todo profesional debería tener!

Reader Interactions

4 comentariosDeja una respuesta

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Joana Pereira says

    Good call Kovshenin. I know exactly what you mean because I was using a custom function with contact form 7 (to retrieve the ip address on each form) and every time the plugin was updated, the theme broke.

    Thanks for the tip

    Joana Pereira

  3. kovshenin says

    Right, only please stop checking for dynamic_sidebar with function_exists in WordPress themes, unless you need to support WordPress 2.2 and below, which I *highly* doubt. Also with the user photo plugin, the whole approach seems to be wrong and redundant to me, it looks like many developers are missing the whole point of pluggable functions…. Oh well :)

Deja tu comentario

Gracias por elegir dejar un comentario. Tenga en cuenta que todos los comentarios son moderados de acuerdo con nuestros política de comentarios, y su dirección de correo electrónico NO será publicada. Por favor, NO utilice palabras clave en el campo de nombre. Tengamos una conversación personal y significativa.