WordPress: Encontrar los “ancestros” de una página

Recientemente estuve trabajando en un sitio web para una revista académica. La estructura del sitio requería definir diferentes plantillas para algunas de las secciones del sitio.

Decidí montar el sitio sobre WordPress y usar su sistema de páginas para estructurar el contenido; dado que la idea de esto era no tener que estar editando cosas “a mano” cada vez que se agregaran nuevos contenidos, necesitaba conocer los “ancestros” de una página —o sea, su padre ($post->post_parent), el padre de su padre, etc.— para poder determinar a qué sección del sitio correspondía.

Ya antes había explorado [algunas posibilidades para trabajar con páginas->Comentando algunas funciones para WordPress] padre, hermanas e hijas (exprimiendo la analogía al límite), pero nada de eso me servía en este caso.

Afortunadamente, a partir de la versión 2.5 de WordPress existe una variable que aporta justamente la información que necesitaba: se trata de $post->ancestors. Esta variable almacena en un array el $post->ID del padre de la página presente, el padre de su padre, el padre de su padre su padre, etc. hasta llegar a la página de primer nivel (o sea, la que se encuentra directamente bajo la raíz del sitio). Por ejemplo, al hacer un print_r($post->ancestors) de una página “x”, tendríamos algo así:

Array
(
    [0] => 46
    [1] => 118
    [2] => 27
)

Donde [0] es el padre de la página presente; [1] el padre del padre y [2] el padre del padre del padre… el $post->post_parent de [2] (o sea, de la página con la ID 27), es 0, o sea, index.php?p=27 es la página de primer nivel.

Ahora, para determinar si una página está bajo alguna otra, podemos utilizar una versión que forma parte de PHP: in_array(), donde el primer argumento será la “aguja” y el segundo el “pajar”. En mi caso, quería aplicar una plantilla especial si la página era descendiente de la página con la ID 27, por lo que la usé de este modo in_array(27, $post->ancestors).

Con esto, podemos agregar un nuevo condicional al archivo functions.php del tema que estamos desarrollando:

function is_article() //determinar si la pagina presente es un artículo de la revista
{ global $post;
if ( 27, $post->ancestors ) { return true; }
}

… y luego podemos ocupar este condicional de manera similar a las Conditional Tags de WordPress:

<?php if ( is_article() ) {
 // hacer cosas
} ?>

¿Dónde fue a parar tu espacio en el disco?

Todos hemos pasado por lo mismo: examinando tu disco duro, te has llevado la sorpresa de que al lado de que la cantidad de “Espacio Libre” es sorprendentemente más baja de lo que pensabas… ¿y ahora dónde vas a seguir metiendo cosas?

Una mejor alternativa que comenzar a comprimir cosas por acá y por allá, y tras haber echo el obvio paso de desinstalar el software que no utilizas (o reemplazar grandes armatostes como Adobe Reader por alternativas más ligeras como Foxit Reader), es simplemente encontrar qué cosas están ocupando más espacio y luego decidir si mantenerlo o borrarlo.

Por supuesto, ver cuánto ocupa cada carpeta es una tarea bastante poco agradable, por ello es que afortunadamente existen varias aplicaciones que analizan la utilización del disco y la representan gráficamente. Algunas de ellas:

True love will find you in the end

[MEDIA=65]

Ladies and gentlemen we’re floating in space, de Spiritualized, es fácil uno de mis “diez-discos-que-te-gustaría-tener-en-una-isla-desierta”, por lo que siempre estoy atento a las cosas que hacen… y eso paga, ya que gracias a ello descubrí este excelente y bellísimo cover de True love will find you in the end, una canción original del mítico Daniel Johnston. Este cover es parte de los iTunes originals de Spiritualized.

Otra versión “conocida” de esta canción es la que hizo Beck en el disco recopilatorio/tributo The Late Great Daniel Johnston: Discovered Covered… me quedo con la de Spiritualized.

Desencanto con la política

Novoa afirma que baja participación es por desencanto y falta de inscripción automática — aparentemente, un repentino ataque de obviedad atacó a este senador de derecha… sólo habría que hacer una precisión: ¿de qué desencanto me habla? Es un poco extraño que diga que los jóvenes están “desencantados con la política” en medio de movilizaciones de estudiantes, paros y tomas de universidades… creo que el desencanto no es con “la política”, ya que ésta involucra mucho más que lo que hacen diputados, senadores y funcionarios de gobierno… votar no es (el único modo, y quizás tampoco la-mejor-forma-de) hacer política.

Impuesto al optimismo

Generalmente, pienso en los viajes en taxi como una golosina.

Pero no siempre.

Alrededor de las 1:00 AM en Halloween, llamé un taxi junto a una amiga. “Conduzca hasta el frontis de este edificio. ¿Puede dejar el taxímetro corriendo mientras voy adentro para decirle a nuestros amigos que nos fuimos? Gracias… muchas gracias.”

Unos minutos después, el taxista le dijo a mi amiga que corriera adentro para buscarme porque estaba apurado y tenía a alguien esperando.

Cuando se bajó del taxi para buscarme, el taxista partió.

Con mi mochila en el asiento. Una mochila con…

  • mi dinero
  • licencia de conducir
  • tarjeta del cajero electrónico
  • llaves de mi casa
  • provisiones de Halloween
  • y una cámara digital.

Auch. Alrededor de $500 en cosas y líos.

¿Qué es lo que hago entonces? Ni siquiera sé qué compañía de taxis era.

Mi amiga se sintió muy mal. Dijo, “supongo que necesito aprender a confiar menos en las personas.”

Ouch. Eso suena terrible.

Perder la confianza es mucho peor que perder algunas cosas.

Así que es de este modo que estoy viendo todo esto:

Gastar $500 de vez en cuando es un pequeño precio a pagar para ser capaz de continuar confiando en las personas.

Puedo tener otra licencia de conductor. Tengo otra cámara. Tengo más dinero. Puedo comprar más lápiz labial rosado barato.

Consideraré a esta pérdida como parte de mi impuesto al optimismo. Esporádicamente pago esta tarifa (cuando las personas se aprovechan de mi confianza en la bondad) a cambio de libertad optimista.

Estaría menos a riesgo si es que me concentrara más en lo negativo. “¿Y si pasa _______?” Pero no vale la pena. El costo a mi calidad de vida (al preocuparme más) es mucho más caro que el costo de perder algunas cosas.

Aún así, cuando ya todo está dicho y hecho, creo que prefiero dulce a travesura.

http://www.cockybastard.com/wrds/99/1031.htm, vía ma.tt