En anteriores post ya os hablé de Widget Logic, que es un plugin con el que poder manejar la aparición o no de tus wodgets en WordPress.
También vimos varios ejemplos de como trabajaba Widget Logic, y de como añadir condicionales para la aparición de nuestros widgets. Por ejemplo: is_home(), is_category(‘contacto’), is_category(8), in_category(9), in_page(), is_home || in_category(array(’23′,’34′), etc….
Por experiencia te digo, que muchos de los condicionantes que tenemos en el Worpdress nativo, se nos quedan cortos. Así que hoy te voy a mostrar varias funciones que puedes añadir al core de wordpress, y ganar el versatilidad a la hora de crear tus condicionantes PHP.
Lo primero es ubicarte y decirte donde tienes que añadir estas funciones (o cualqier otra que se te ocurra) para que Widget Logic las «pille» sin problemas. Tienes que irte a la carpeta wp-includes de tu wordpress y al archivo query.php que encontrarás ahí dentro. Te situas en el final de archivo y puedes empezar a añadir funciones.
Decirte, que puedes llamar como quieras a estas funciones, y que las puedes llamar desde widdget Logic con ese mismo nombre.
function is_hijo( $page_path ){ if( !is_page() ){ return false; } $ancestors = get_post_ancestors( get_queried_object_id() ); $page = get_page_by_path( $page_path ); if( $page ) return in_array( $page->ID, $ancestors ); return false; }
Esta función como su nombre dice, es para avariguar si una pagina es hija de otra superior.
function in_url( $page_path ){ $cadena2= $_SERVER['REQUEST_URI']; $buscar2= $page_path; if(eregi($buscar2, $cadena2)) { return true; } else { return false; } }
Esta función te dice, si en la URL de nuestra web,se encuentra alguna palabra.
function get_parent_category() { foreach ((get_the_category()) as $cat) { if ($cat->category_parent) return $cat->category_parent; else return $cat->cat_ID;} } function in_hijo( $page_path ){ $id = get_parent_category(); if ($id == $page_path) { return true; } else { return false; } }
Esta ultima función, se puede utilizar para saber si te encuentras dentro de una categoría hijo de una categoría marcada