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

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, pero en este tutorial, usaremos el plugin de fragmentos de código WPCode porque es la forma más segura y sencilla de añadir código personalizado en WordPress.

Primero, necesitas instalar y activar el plugin gratuito WPCode. Si necesitas ayuda para hacerlo, consulta nuestra guía paso a paso para principiantes sobre cómo instalar un plugin de WordPress.

Una vez activado, debe ir a Fragmentos de código ” + Añadir frag mento en su escritorio de WordPress. Una vez allí, pase el ratón sobre la opción “Añadir su código personalizado (nuevo fragmento)” y haga clic en el botón “Usar fragmento” que aparece.

Adding Custom Code in WPCode

Esto abrirá una nueva página donde podrá añadir su fragmento de código personalizado. Escriba un título como “Mostrar hora actual con zona horaria” y, a continuación, pegue el fragmento de código siguiente en el panel Vista previa del código.

//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>";
}
Paste the Code Snippet Into WPCode

A continuación, debe seleccionar “Fragmento de código PHP” en el menú desplegable Tipo de código para asegurarse de que el código se ejecuta correctamente.

Por último, debe poner el conmutador Activar en la posición On y hacer clic en el botón “Guardar fragmento de código” para guardar su nuevo fragmento de código.

Activate and Save the Code Snippet

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

    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

    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

    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.