Accueil Wordpress > I. Boucles Wordpress

Boucles Wordpress

I.1. Écriture de base

$args = array(
		'posts_per_page'=> '4',
		'post_type'   => 'dates',
		'lang'	=> 'fr',
		'orderby'	=> 'meta_value',
		'order'=> 'ASC',
		'meta_key'	=> 'date',
		'meta_value' => $date_jour, 
		'meta_compare' => '>=',	
	);	
$query = new WP_Query($args);
if ($query ->have_posts()) : 
	while ( $query ->have_posts() ) : $query ->the_post(); 
	endwhile;
endif;

I.2. Boucles particulières

Description de la boucle :

Dans les posts de Type “lg_galerie”, je recherche les posts dont :

  • la taxonomie “lg_galerie_serie” est égale à $slugtaxo
  • la taxonomie “lg_galerie_type” est &gale à $searchtag['1'] ou $searchtag['2'] ou $searchtag['3'] ou $searchtag['4']
$args = array(
  'post_type'   => 'lg_galerie',
  'tax_query' => array(
		array(
			'taxonomy' => 'lg_galerie_serie',
			'field' => 'slug',
			'terms' => $slugtaxo,
		),
		'relation' => 'AND',
		array(
				array('taxonomy' => 'lg_galerie_type','field' => 'slug','terms' => $searchtag['1']),
				'relation' => 'OR',
				array('taxonomy' => 'lg_galerie_type','field' => 'slug','terms' => $searchtag['2']),
				'relation' => 'OR',
				array('taxonomy' => 'lg_galerie_type','field' => 'slug','terms' => $searchtag['3']),
				'relation' => 'OR',
				array('taxonomy' => 'lg_galerie_type','field' => 'slug','terms' => $searchtag['4']),
		)
	),
	'orderby' => 'data',
	'order'=> 'DESC',
	'posts_per_page'=> '9',
	'offset' => $offset,
);

Fonctionne sur ACF.

Description de la boucle :

Dans les posts de Type “post”, je recherche les posts dont :

  • le champs personnalisé “Inivisible en home page” existe et est différent de 'Oui'
  • le champs personnalisé “Inivisible en home page” existe et est différent de 'oui'
  • le champs personnalisé “Inivisible en home page” n'existe pas

La relation entre toutes ces condition est 'OU'

$args = array(
  'post_type' => 'post',
  'cat' => -1,
  'posts_per_page' => 24,
  'orderby' => 'date',
  'order' => 'DES',
  'meta_query' => array(
    'relation' => 'OR',
    array(
      'key'     => 'Invisible en home page',
      'value'   => 'Oui',
      'compare' => '!=',
      'compare' => 'EXISTS'
 
    ),
    array(
      'key'     => 'Invisible en home page',
      'value'   => 'oui',
      'compare' => '!=',
      'compare' => 'EXISTS'
 
    ),
    array(
      'key'     => 'Invisible en home page',
      'value'   => '',
      'compare' => 'NOT EXISTS'
    )
  )
);

Pour utiliser la pagination, on doit évaluer à chaque tour de la Boucle de Wordpress, quelle est la page en cours et le passer à l'arguments : $args.

 
// On attribut la valeur de la page en cours à $paged si elle existe, sinon elle vaut 1
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
 
// On la passe ensuite à $args
  $args = array(
    'post_type' => 'post',
    'cat' => -1,
    'orderby' => 'date',
    'order' => 'DES',
    'posts_per_page' => 24,
    'paged' => $paged
  );