Comprobar si es una página hija en wordpress

c
junio 17, 2013

Categorías: Tips de wordpress

Hoy tuve que crear una especie de menu donde quería ver si la página actual era la correcta, o si se trataba de una página hija (children page) para así poder asignar la clase selected. En wordpress no existe una función is_parent() así que me cree una.

Mi menu es el siguiente:


>Assess>Build>Manage

Como ven lo que hago es ver si estoy en la página raiz o una hija del raiz y le aplico la clase “selected”.Por que si mi página es /build/ o /build/sub-page/ en ambos casos me va a marca como selected.

Siempre es recomendable crear un menu custom y usar las funciones de wordpress, pero si no pueden por algún motivo es bueno saber que existen soluciones.

La función is_parent():

/*** Get page id*/function get_page_id($slug){$page = get_page_by_path($slug);return @$page->ID;}/*** Check if we are in actual page or child page*/function is_parent($post,$slug) { $post_id = get_page_id($slug); if ($post->ID == $post_id) return true; else if ($post->post_parent == 0) return false; else return is_parent(get_page($post->post_parent),$slug);}

En este caso tengo la función get_page_id() que como su nombre indica me devuelve el ID de una página pasándole el slug.
Luego utilizo una función recursiva que devuelve true si es la página actual, false si no hay página parent o se vuelve a llamar si hay una página parent.

Espero que a alguien le sirva. Saludos

Programador freelancer y emprendedor en sueños. Contento de ser mi jefe y poder hacer lo que me gusta. WordPress es mi principal fuente de ingreso y me escribo tanto para ayudar como para tener una guia de memoria. Quieres contratarme? Déjame un mensaje.

Más Posts de Damián Logghe – Web

Mas que wordpress

Comparte en las redes sociales: