Soy un gran admirador de la clase WP_Query: la uso en varios sitios web de clientes para buscar y mostrar datos de forma personalizada.
Si desea utilizar varios bucles en una página, la mejor manera de hacerlo es ejecutar "WP_Query" siempre que necesite un bucle.
Pero hay un inconveniente: cada vez que WordPress ejecuta un bucle, envía consultas a la base de datos, lo que lleva más tiempo y puede ralentizar su sitio web.
En este tutorial, le mostraré cómo usar una consulta para más de un ciclo. Puede hacer esto con la consulta principal o puede usar la misma técnica con WP_Query.
Exploraremos los aspectos de 3:
- Cree un tema secundario y un archivo de plantilla.
- Cree una pieza de plantilla para el contenido del bucle.
- Crea nuestros bucles.
Pero antes descubrimos juntos ¿Cómo instalar un blog de WordPress pasos 7 et ¿Cómo encontrar, instalar y activar un tema de WordPress en tu blog
Luego de vuelta a por qué estamos aquí.
Que necesitas
Para seguir este tutorial, necesitará:
- Desde una instalación de WordPress para desarrollo (localmente).
- Un editor de código.
- Artículos en su sitio web con múltiples categorías asignadas
- el tema veintiséis de WordPress
- Un tema secundario de veintiséis años instalado y activado
Esta técnica también se adapta a tu situación, y a tu tema de WordPress.
Crear un tema hijo
Primero, vamos a crear el tema hijo de veintiséis. Hago esto porque no quiero cambiar el tema principal.
Descubre Cómo instalar un tema de WordPress niño
En su carpeta "wp-content / themes", cree una nueva carpeta vacía, que llamará "tutor-theme". Más tarde puede elegir el nombre que más le convenga.
En esta carpeta, cree un archivo llamado style.css y agregue el siguiente código:
/*
Nombre del tema: Tuto Theme
URI del tema: https://blogpascher.com
Descripción: Tema para admitir Tutorial sobre la ejecución de múltiples bucles mientras consulta la base de datos solo una vez. Tema infantil para el tema Veintiséis.
Autor: Hervé
Autor URI: https://blogpascher.com
Plantilla: veinte y seis
Version: 1.0
*/
@import url ("../twentysixteen/style.css");
Ahora guarde este archivo y active su nuevo tema de WordPress.
El siguiente paso es crear un archivo de plantilla para las categorías, en eso estaremos trabajando.
Haga una copia del archivo “archive.php” del tema de WordPress "Veintiséis". No lo muevas, pero haz una copia. Cámbiele el nombre a "categoría.php".
Para ir más lejos, descubre Cómo gestionar archivos y carpetas de WordPress
Este será ahora el archivo de plantilla para las categorías de su sitio web.
Crear un nuevo archivo de plantilla
El primer paso es crear un nuevo archivo de plantilla en nuestro tema que contendrá una versión modificada del bucle "veintiséis".
Consultemos también juntos Cómo poner su sitio web de WordPress en modo de mantenimiento
En la carpeta del tema secundario, cree una subcarpeta llamada "incluye". Y dentro, cree un nuevo archivo llamado "loop-category.php".
A continuación, abra el archivo "template-parts / content.php" de las carpetas de temas principales (veintiséis) y busque el siguiente código:
" >
', esc_url (get_permalink ())),' '); ?>
/ * traductores:% s: Nombre de la publicación actual * /
the_content (sprintf (
__ ('Continuar leyendo '% s ' ', 'twentysixteen'),
get_the_title ()
));
wp_link_pages (array (
'antes' => ' '. __ ('Páginas:', 'veintiséis'). ' ',
'después' => ' ',
'link_before' => ' ',
'link_after' => '',
'pagelink' => ' '. __ ('Página', 'veintiséis'). ' %',
'separator' => ' , ',
));
?>
edit_post_link (
sprintf (
/ * traductores:% s: Nombre de la publicación actual * /
__ ('Editar '% s ' ', 'twentysixteen'),
get_the_title ()
),
' ',
''
);
?>
Copie este código en el nuevo archivo "loop-category.php" del tema secundario.
Edición del archivo de parte de plantilla
El ciclo "veintiséis" muestra más de lo que necesito, así que voy a modificar este código. Solo quiero mostrar el fragmento y no el contenido, así que eliminaremos el contenido.
¿Cuál es la diferencia entre H1 y el título de SEO de un artículo de WordPress? Descúbrelo consultando este artículo.
En su nuevo archivo loop-category.php, busque este código y elimínelo:
<div class = "contenido de entrada">
/ * traductores:% s: Nombre de la publicación actual * /
the_content (sprintf (
__ ('Continuar leyendo '% s ' ', 'twentysixteen'),
get_the_title ()
));
wp_link_pages (array (
'antes' => ' '. __ ('Páginas:', 'veintiséis'). ' ',
'después' => ' ',
'link_before' => ' ',
'link_after' => '',
'pagelink' => ' '. __ ('Página', 'veintiséis'). ' %',
'separator' => ' , ',
));
?>
El otro paso es reemplazar la función "twenty_sixteen_excerpt ()" con la función "the_excerpt ()", porque la versión de veinte dieciséis no proporciona un enlace al artículo completo.
Ver tambien Cómo ver los artículos recientes en una categoría específica
Encuentra esta línea:
Reemplácelo con esto:
También necesitamos hacer algunos cambios en las etiquetas de título.
En la parte del modelo, cambie la línea:
', esc_url (get_permalink ())),' '); ?>
Edite las etiquetas H2 para H3:
', esc_url (get_permalink ())),' '); ?>
Registra tu modelo. Luego regrese a su archivo category.php, continuaremos con él.
Crear bucles
En primer lugar, vamos a eliminar la inclusión del código para "veintiséis dieciséis" de nuestro archivo "category.php", ya que necesitaremos usar el nuevo archivo.
En su archivo category.php encuentre este código:
get_template_part ('partes de plantilla / contenido', get_post_format ());
Y eliminar el.
Luego crearemos los bucles.
En este ejemplo, mostraré todas las publicaciones con la etiqueta "contenido", usando la etiqueta condicional "has_tag ()". Esto significa que tendré que pasar por tres ciclos:
- La primera verificación si la consulta ha publicado elementos con esta etiqueta.
- Si es así, el segundo muestra los artículos con esta etiqueta.
- Un tercero muestra artículos sin esta etiqueta.
Entre cada ciclo, usaré rewind_posts () para rebobinar mensajes sin restablecer la consulta: siempre trabajamos con la consulta principal cada vez.
El primer bucle: verificación de artículos
En su archivo "category.php", encuentre el comienzo del ciclo:
while (have_posts ()): the_post ();
Sobre esta línea, defina una nueva variable llamada $ count:
$ Count = 0;
Luego, dentro de ese bucle, agregue este código:
// comprobar si hay publicaciones con la etiqueta »
$ etiqueta = 'contenido';
if (has_tag ($ etiqueta)) {
$ cuenta + = 1;
}
Este código verifica si los mensajes tienen la etiqueta "contenido" y luego agrega 1 al contador si es así.
El interior del bucle será similar a esto:
// Busca publicaciones en el primer bucle.
$ Count = 0;
while (have_posts ()): the_post ();
// comprobar si hay publicaciones con la etiqueta »
$ etiqueta = 'contenido';
if (has_tag ($ etiqueta)) {
$ cuenta + = 1;
}
Al final
El segundo bucle: restaurar artículos con la etiqueta
El siguiente paso es realizar un ciclo para mostrar artículos con esa etiqueta, solo si hay alguna.
Por ejemplo, si el valor de $ count es mayor que 0.
Descubrir también Cómo personalizar el panel de WordPress para un cliente
Agregue esta condición al bucle:
if ($ count> 0) {
rewind_posts ();
eco ' Publicaciones etiquetadas con '. $ etiqueta. ' ';
while (have_posts ()): the_post ();
if (has_tag ($ etiqueta)) {
get_template_part ('incluye / bucle', 'categoría');
}
// Fin del ciclo.
Al final
}
Este código verifica que $ count es mayor que cero y, de ser así, rebobina los elementos y ejecuta el ciclo nuevamente. Para cada elemento, verifica si posee nuestra etiqueta y, de ser así, llama a la parte de la plantilla que acabamos de crear.
El tercer ciclo: ver el resto de los artículos
La salida será un ciclo final de los artículos restantes. Si esta categoría no tiene un artículo con la etiqueta "contenido", entonces mostrará todos los artículos de la categoría.
Aprende también Cómo crear un blog de varios autores y permitir a sus lectores publicar artículos en tu blog
En su segundo ciclo, agregue esto:
rewind_posts ();
// Segundo bucle: publicaciones que no tienen la etiqueta 'contenido'
while (have_posts ()): the_post ();
if (! has_tag ($ tag)) {
get_template_part ('incluye / bucle', 'categoría');
}
// Fin del ciclo.
end while; ?>
Este último código rebobina los artículos y luego vuelve a ejecutar el ciclo. Esta vez, comprueba si un artículo no tiene la etiqueta "contenido", por lo que muestra el contenido en la "parte de la plantilla".
También te sugerimos que descubras Cómo agregar una impresión de artículos de opción en WordPress
Ahora puede probar la página de artículos de su blog. Recuerda que puedes cambiar los filtros. En este tutorial usamos "contenido" como filtro de etiquetas, pero puede usar el que prefiera.
Descubre también algunos complementos premium de WordPress
Puedes usar otros plugins de WordPress para dar una apariencia moderna y optimizar el manejo de tu blog o sitio web.
Aquí le ofrecemos algunos complementos premium de WordPress que lo ayudarán a hacerlo.
1. Complemento de pared social para UserPro
UserPro puede ser mucho más divertido con un muro social. Esto es lo que aporta su extensión Social Wall. Con el complemento Social Wall, puede crear un muro en su sitio web y proporcionar a sus miembros una forma refrescante de interactuar con la comunidad.
Le Plugin de WordPress Social Wall permite a sus usuarios: compartir mensajes entre ellos, compartir imágenes, comentar las publicaciones de otras personas, a los usuarios les puede gustar o no un mensaje, pueden optar por mostrar el muro solo para los usuarios registrados o para todos los usuarios, los administradores pueden eliminar publicaciones o comentarios de usuarios, etc.
Descargar | Demo | alojamiento web
2. Flipkart Affiliate Plus
Flipkart Affiliate Plus es un Plugin de WordPress módulo que conecta su sitio web de WordPress con la API de afiliados de Flipkart.
Ce Plugin de WordPress Hace que sea muy fácil importar datos de productos desde Flipkart y actualizarlos directamente en su sitio web. Flipkart Affiliate Plus es el primer complemento de WordPress para la API oficial de Flipkart. Al usarlo, no necesitará utilizar una API de terceros. De este modo se beneficiará plenamente de su trabajo.
Descargar | Demo | alojamiento web
3. Actionable Google Analytics para WooCommerce
Accionable Google Analytics es un complemento de WordPress que le permite utilizar algunas de las mejores funciones de Universal Analytics, que incluyen: Comercio electrónico mejorado y seguimiento de ID de usuario. Además, este complemento admite la anonimización de direcciones IP, reembolsos de productos, agrupación de contenido, seguimiento de formularios, etc.
Al usar este complemento de WordPress, ahorrará tiempo en la integración del código complejo de Google Analytics, para que pueda concentrarse en administrar sus datos.
Sus principales características son: instalación rápida y sencilla, acceso a 9 informes de comercio electrónico mejorados, la capacidad de estudiar cómo los diferentes dispositivos son utilizados por un mismo usuario y cómo se realizan las compras, la capacidad de analizar qué productos se reembolsan con más frecuencia, finalmente para tomar medidas correctivas y más.
Descargar | Demo | alojamiento web
Otros recursos recomendados
También lo invitamos a consultar los recursos a continuación para avanzar en el control y agarre de su sitio web y blog.
Conclusión
Listo ! Eso es todo por este tutorial bastante técnico. Espero haber sido explícitos sobre cómo usar correctamente WP_Query en WordPress. no dude en comparte el consejo con tus amigos en tus redes sociales.
Sin embargo, también podrá consultar nuestra Recursos, si necesita más elementos para llevar a cabo sus proyectos de creación de sitios de Internet, consulte nuestra guía sobre Creación de blog de WordPress.
Pero mientras tanto, cuéntanos sobre tu comentarios y sugerencias en la sección dedicada.
...
¡Hola
En cualquier caso, muchas gracias por sus respuestas y le deseo buena suerte
gracias
___________ ________ _____ ____________
| Artículo 1 | | arti 2 | | _A3_ | | |
| __________ | | _______ | _____ | Artículo 6 |
______________________ | 5 | | |
| _________ 4 _________ | | ____ | | ___________ |
Hola Blair
gracias por estos tutoriales Parfais,
Me gustaría pedir un poco de ayuda por favor.
Creé mi propio tema de wordpres (html / css) y encontré un pequeño problema que trataré de resolver para usted: planeo crear un sitio similar a msn.com mi sitio se dividirá en varias divisiones (encabezados ) que son: noticias, entretenimiento, salud, estilo de vida ... etc. es decir que deseo realizar un primer grupo de artículos, y un segundo grupo, un tercero ... etc. pero muestra todos los grupos en la misma página y que cada grupo pertenece a una sección (nicho). Me pregunto si este back office de wordpress puede gestionar el contenido de cada sección por separado. con el bucle de wordpress // Contenido de la publicación ¡Lo sentimos, no se encontraron publicaciones! Obtengo una mezcla de elementos:
es decir que mi último artículo escrito se coloca directamente en la primera sección que es noticia, mientras que es un artículo que pertenece al estilo de vida por ejemplo.
Me encontré con esta página https://codex.wordpress.org/fr:La_Boucle Creo que la parte múltiples bucles pueden resolver mi problema!
espero que entiendas lo que estoy tratando de decir
gracias de antemano por su respuesta,
Atentamente,
Hola,
Creo que te estás complicando la vida para nada. Ya entiendo que desea organizar sus artículos en categorías (sección) y cada sección puede pertenecer a un nicho, que pueden ser categorías principales. Sí, el ciclo puede ayudarte a hacer eso, y es impresionantemente simple.
Coraje !
Bonjour.
primero gracias por su rápida respuesta. Creo que el tema que acabo de crear ya no es compatible con wordpress y de ahí viene el problema.
de hecho como tus comentarios no apoyan la imagen adjunta te lo explicaré dibujando:
aquí es un sitio de categorías
___________ ________ _____ ____________
| Artículo 1 | | arti 2 | | _A3_ | | | así que imagina que cada artículo es
| __________ | | _______ | _____ | Artículo 6 | representado por un azulejo; entonces tenemos 6
______________________ | 5 | | | elementos (cada mosaico contiene la imagen
| _________ 4 _________ | | ____ | | ___________ | y el título de un artículo en particular)
Mi verdadero problema, señor Blair, es que no puedo envolver mis artículos para que puedan pasar del cuadro 1 al cuadro 6, es decir, cuando agrego un artículo nuevo y Lo publico quiero que ocupe el lugar del artículo 1 como en todos los temas existentes.
- Creo que esto no es práctico ya que cada publicación (artículo) tiene sus propias propiedades como ubicación, altura, ancho… etc, ¿qué opinas entonces?
claro que la idea es un poco clara con este diagrama, de lo contrario si no me importa y quieres ayudarme tienes mi e-mail (solo tienes que enviar un e-mail con tu nombre).
Gracias de nuevo por sus replanteamientos
Buenas noches, en este caso, deberá agregar variables de tipo "int", por lo que cada vez que el bucle se repita, incrementará la variable y dependiendo del valor de la variable, podrá modificar l visualización del artículo. Por ejemplo :
if ($ i == 1) {
// tu código aquí
} Else if ($ i == 2) {
// tales
}
$ I ++;
Por desgracia, no puedo asistir personalmente en este momento.