Comprobar si el contenido de un Post de WordPress está vacío

PHPWordPress

Imagínate que quieres comprobar si el contenido de un post en WordPress está vacío. Aunque aparentemente parece muy obvio, resulta que no hay ninguna función en WordPress para ello, por lo que lo tendremos que hacer manualmente.

Comprobar si el contenido del post está realmente vacío

Lo que todos haríamos en un principio sería algo así:

if ($post->post_content == "") { ... }

Este código funcionará si el contenido está realmente vacío y eso quiere decir que no debería haber ni un solo símbolo y por supuesto ninguna cadena. Es decir, debería ser equivalente a escribir lo siguiente:

if (strlen($post->post_content) == 0){ ... }

Si incluyes esta función en tu código y dejas un post vacío en el editor de WordPress, verás que: !Oh, sorpresa! !El código actúa como si no estuviese vacío! Eso es porque no está realmente vacío. Sigue leyendo para ver por qué.

Comprobar si el contenido no tiene ningún elemento visible

Si eres un diseñador web te habrás dado cuenta de que los espacios en blanco cuentan como caracteres y que además no podemos verlos. En los documentos HTML existen multitud de espacios en blanco que luego no se traducen a espacios reales cuando visualizamos la página web. Lo mismo ocurre con lo saltos de línea, los párrafos y demás elementos HTML.

Si alguien ha puesto el cursor sobre el área de edición de WordPress, puede que automáticamente se añada un párrafo al contenido con un espacio en blanco. Lo que necesitamos es una función que elimine todos estos caracteres. Vamos a verla:

function contenido_vacio($cadena) {

  return trim(str_replace(' ','',strip_tags($cadena))) == "";

}

La función cogerá la cadena que le pasamos y sacará toda las etiquetas HTML de la misma. Además, eliminará también todos esos espacios de los que hablábamos. Si el resultado está vacía, la cadena no contendrá nada. Si aún queda algún caracter después de aplicar la función, resultará que la cadena no estaba vacía. Para esta comprobación comparamos la cadena con una cadena vacía. Vamos a ver ahora la solución a nuestro problema utilizando la función que hemos creado:

if (contenido_vacio($post->post_content)) { ... }

La función devolverá verdadero si el contenido está vacío y falso si no lo está.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”