Outils pour utilisateurs

Outils du site


webdev:wordpress:query

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
webdev:wordpress:query [06/04/2017 12:24] dolowebdev:wordpress:query [14/04/2017 10:44] (Version actuelle) dolo
Ligne 1: Ligne 1:
 +====== Query, the loop ======
 +Référence sur les fonctions et paramètres.
 +
 +  * [[http://codex.wordpress.org/Class_Reference/WP_Query|WP_Query]]
 +  * [[https://codex.wordpress.org/Custom_Queries|Custom queries]]
 +
 +Nouvelle query standard :
 +<Code>
 +<?php
 +
 +// The Query
 +$the_query = new WP_Query( $args );
 +
 +// The Loop
 +if ( $the_query->have_posts() ) {
 + echo '<ul>';
 + while ( $the_query->have_posts() ) {
 + $the_query->the_post();
 + echo '<li>' . get_the_title() . '</li>';
 + }
 + echo '</ul>';
 + /* Restore original Post Data */
 + wp_reset_postdata();
 +} else {
 + // no posts found
 +}
 +</Code>
 +
 +Récupérer les posts : https://codex.wordpress.org/Template_Tags/get_posts
 +
 +===== Tri des pages suivant leur slug =====
 +<Code>
 +<?php 
 +$pages = get_pages();
 +
 +foreach($pages as $page)
 +{
 +   if($page->post_name == 'pineau-pink')
 +   {
 +       echo '<div class="item" style="background: url(';
 +       the_field('image_produits', $page->ID);
 +       echo ') no-repeat;  background-position: center 0;"></div>';
 +   }
 +}
 +</Code>
 +
 +===== Changer la requête WP_Query =====
 +functions.php :
 +<Code>// -----------------------------------------------------------------------------
 +// Permet de tirer les posts suivant un champs personnalisé
 +function my_pre_get_posts( $query ) {
 +    // do not modify queries in the admin
 +    if( is_admin() ) 
 +    {
 +        return $query;
 +    }
 +    
 +    if($query->is_category('products'))
 +    {
 +        $query->set('orderby', 'meta_value_num');
 +        $query->set('meta_key', 'order');  
 +        $query->set('order', 'ASC');
 +        $query->set('posts_per_page', '-1'); 
 +    }
 +    // return
 +    return $query;
 +}
 +add_action('pre_get_posts', 'my_pre_get_posts');</Code>
 +
 +[[https://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts]]