CMS PHP Programación WordPress

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

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á.

EduZRO

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

No Comments

comment No comments yet

You can be first to leave a comment

Deja un comentario

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