Cómo ejecutar código PHP en widget de texto WordPress

En Desarrollo, Tutoriales y Guías, Webmasters por

Algo que siempre me he preguntado era cómo ejecutar código PHP en los widgets de texto que nos ofrece WordPress. Esto puede ser muy útil en ciertas ocasiones y hasta nos puede evitar tener que recurrir a algún plugin.

Ejecutar código PHP en widget de texto WordPress

En mi caso personal lo empleo para hacer llamadas a una API de XenForo y así obtener los últimos artículos de mi foro, pero es sólo un uso que se le puede dar, hay muchos otros usos, hasta donde tu imaginación llegue.

Para ejecutar código PHP en widget de texto hay dos opciones, una es emplear un plugin (existen multitud de plugins para este fin) o la segunda opción programar nuestra propia función (es una función muy simple y daré instrucciones detalladas, por lo que si queréis evitar el uso de plugins adicionales esta es una buena opción).

Ejecutar código PHP en widget de texto mediante un plugin

Tenemos multitud de alternativas, de todas formas yo os propongo una lista con los que he probado y dejaré una breve descripción y la impresión que me ha dado. Los plugins son los siguientes:

  • PHP Text Widget: el plugin es muy sencillo, cumple con su cometido a la perfección. En la página del plugin de WordPress dice que es compatible hasta la versión 3.5.2 pero yo lo he probado en la versión 3.6.1 y funciona perfectamente.
  • PHP Code Widget: es otro plugin muy sencillo pero NO me ha funcionado en mi WordPress 3.6.1. En la página del plugin de WordPress dice que es compatible hasta la versión 3.4.2, quizás por eso no me funcionó.
  • Shortcode Exec PHP: este plugin es más “completo” que las opciones anteriores ya que nos da funcionalidades extra. Una ventaja de este plugin es que permite ejecutar código PHP en comentarios, RSS, Excerpts y en los Widgets de texto. También nos ofrece una versión “Pro” de pago, pero personalmente no le veo sentido a pagar por un plugin de este tipo. En mi opinión este plugin es demasiado complejo para una tarea tan sencilla que tiene que desarrollar.

Ejecutar código PHP en widget de texto usando nuestra propia función

Lo primero que tenemos que hacer es abrir el archivo functions.php de nuestro tema de WordPress y agregamos el siguiente código:

add_filter('widget_text','execute_php',100);
function execute_php($html){
     if(strpos($html,"<"."?php")!==false){
          ob_start();
          eval("?".">".$html);
          $html=ob_get_contents();
          ob_end_clean();
     }
     return $html;
}

Y listo, ya podemos agregar código PHP a nuestros widgets de texto en el sidebar. Es tan sencillo que yo optaría por esta solución en lugar de emplear un plugin.

También hago una llamada para que por favor, uséis código PHP seguro en vuestros widgets para no permitir que alguna persona con malas intenciones os dañe vuestro blog.

Espero que os haya gustado y ya sabéis que si tenéis dudas o queréis comentar algo, tenéis los comentarios a vuestra disposición.