LOOP de una categoria en una página
-
¡Buenas! Perdonad la extensión 🙂
Mi problema vino cuando intenté crear la etiqueta
<title>
de forma dinámica con php y sin plugins, en una plantilla propia, pues la que crea wordpress no me satisface.Para ello usé get_bloginfo() para la portada web y get_the_title() para las páginas del menú y las entradas singulares. Y todo correcto excepto para los ítems de menú que muestran una etiqueta o una categoria, por qué la etiqueta
<title>
muestra el título del primer post de la lista.Para solucionar este problema se me ocurrió, en vez de enlazar en el ítem del menú la etiqueta o la categoria directamente, enlazar a una page-pagina.php creada con un LOOP que muestre esa etiqueta o categoria. De esta manera no sólo se mostraría
<title>
correctamente, sinó que también podría usar los campos personalizados de cada página para añadir la meta descripción.¡Pues bien! Es ese LOOP que no me funciona 🙁 Os copio el filtro del LOOP editado en el functions.php (tiene que ser pre_get_posts para que funcione la paginación correctamente)
function filtro_loop( $query ) { if ( ($query->is_home() || $query->is_tag()) && $query->is_main_query() && ! is_admin()) { $query->set('cat', '-4, -7, -77, -6, -5');} if ($query->is_tag()){ $query->set('order', ASC);} if ($query->is_page('pagina')){ $query->set('cat', '109');} } add_action( 'pre_get_posts', 'filtro_loop' );
El 3er if es el filtro que aplico al LOOP. El LOOP de page-pagina.php es el corriente, sin tocar una sola coma. Y funciona pero recoge la ID de la página en vez de la ID del primer post, por lo que deduzco que no comprendo del todo el funcionamiento de wordpress y que el LOOP de una página muestra solo el contenido de la misma. ¿No se puede usar el LOOP de las entradas en una 2a página que no sea la home?¿Hay alguna otra solución para lo que quiero conseguir?
Os agradeceré cualquier aportación. ¡Gracias!
- El debate ‘LOOP de una categoria en una página’ está cerrado a nuevas respuestas.