web-dev-qa-db-fra.com

Comment interroger par format postal dans WordPress 3.1

J'essaie d'interroger toutes les publications avec le format "citation". J'ai ajouté les formats de publication à mon functions.php avec

add_theme_support( 'post-formats', array( 'image', 'video', 'gallery', 'quote' ) );

J'ai sélectionné 'quote' comme format de publication dans l'admin. Le dernier exemple sous Taxonomy_Parameters montre comment afficher les publications au format 'quote', mais lorsque je l'exécute dans mon thème, aucune publication n'est renvoyée. Voici le code:

$args = array(
  'tax_query' => array(
    array(
      'taxonomy' => 'post-format',
      'field' => 'slug',
      'terms' => 'post-format-quote'
    )
  )
);
query_posts( $args );

Quand je viens d'interroger tous les articles

echo get_post_format();

dans la boucle, il renvoie le mot "quote" sur le front-end. En outre, lorsque je var_dump () la requête, je ne vois rien dans le tableau concernant le format de publication.

Est-ce que quelqu'un sait s'il est possible d'interroger par format postal? Si c'est le cas, comment?

EDIT - Voir 5 commentaires sous la réponse de Bainternet: Il s’agit du code trouvé dans index.php du thème vingt sur une nouvelle installation essayant de renvoyer des citations de type format. Je retourne "non" au lieu de "citation". Pouvez-vous voir quelque chose que je devrais changer.

get_header(); ?>
<div id="container">
  <div id="content" role="main">
    <?php $args = array(
      'tax_query' => array(
        array(
          'taxonomy' => 'post-format',
          'field' => 'slug',
          'terms' => array('quote')
        )
      )
    );
    query_posts( $args );
    if ( have_posts() ) : while ( have_posts() ) : the_post();
      echo get_post_format();
    endwhile; else:
      echo 'no';
    endif;
    wp_reset_query();      
    ?>
  </div><!-- #content -->
</div><!-- #container -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

EDIT 2 - Il semble que le codex WordPress ait maintenant changé et que la partie relative aux paramètres de taxonomie ne se trouve que dans le cache de Google.

EDIT 3 - CODE DE TRAVAIL FINAL

$args = array(
  'tax_query' => array(
    array(
      'taxonomy' => 'post_format',
      'field' => 'slug',
      'terms' => 'post-format-quote'
    )
  )
);
query_posts( $args );

Les vingt-dix éditions de la première édition seront ...

get_header(); ?>
<div id="container">
  <div id="content" role="main">
    <?php $args = array(
      'tax_query' => array(
        array(
          'taxonomy' => 'post_format',
          'field'    => 'slug',
          'terms'    => 'post-format-quote'
        )
      )
    );
    query_posts( $args );
    if ( have_posts() ) : while ( have_posts() ) : the_post();
      the_title();
      echo get_post_format();
      echo '<br />';
    endwhile; else:
      echo 'no';
    endif;
    wp_reset_query();      
    ?>
  </div><!-- #content -->
</div><!-- #container -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
10
PNMG

Ce code est incorrect! Tu as

'taxonomy' => 'post-format'

Mais il faut vraiment que ce soit:

'taxonomy' => 'post_format'

Sans le trait de soulignement, la requête sera invalide. Je viens de tester cela sur mon installation WordPress 3.1 après avoir tiré mes cheveux pendant des heures.

J'espère que cela pourra aider!!

7
Jared White

dans tax_query "termes" accepte le tableau, vous devez donc mettre post-format-quote dans un tableau comme celui-ci:

$args = array(
  'tax_query' => array(
    array(
      'taxonomy' => 'post-format',
      'field' => 'slug',
      'terms' => array('post-format-quote')
    )
  )
);
query_posts( $args );
2
Bainternet