Wie frage ich nach dem Post-Format in WordPress 3.1 ab?

10

Ich versuche, alle Beiträge mit dem Beitragsformat "Zitat" abzufragen. Ich habe die Postformate zu meiner functions.php mit hinzugefügt

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

Ich habe 'Zitat' als Format für den Beitrag im Admin ausgewählt. Das letzte Beispiel unter Taxonomy_Parameters zeigt, wie Beiträge im Format "Anführungszeichen" angezeigt werden. Wenn ich es jedoch in meinem Thema ausführe, werden keine Beiträge zurückgegeben. Hier ist der Code:

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

Wenn ich nur alle Beiträge abfrage und platziere

echo get_post_format();

In der Schleife wird das Wort 'quote' am Frontend zurückgegeben. Wenn ich die Abfrage var_dump () verwende, wird im Array nichts zum Post-Format angezeigt.

Weiß jemand, ob es möglich ist, nach Post-Format abzufragen? Wenn das so ist, wie?

BEARBEITEN - Siehe 5 Kommentare unter Bainternets Antwort: Dies ist der Code in index.php des zwanzigsten Themas einer Neuinstallation, die versucht, Anführungszeichen vom Formattyp zurückzugeben. Ich gebe 'nein' anstelle von 'Zitat' zurück. Kannst du etwas sehen, das ich ändern sollte?

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(); ?>

BEARBEITEN 2 - Es scheint, dass sich der WordPress-Codex jetzt geändert hat und der Teil der Taxonomieparameter nur im Google-Cache gefunden wird.

EDIT 3 - FINAL WORKING CODE

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

Die zehnundzwanzig Bearbeitung von der ersten Bearbeitung wird ...

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(); ?>
PNMG
quelle

Antworten:

7

Dieser Code ist falsch! Du hast

'taxonomy' => 'post-format'

Aber es muss wirklich sein:

'taxonomy' => 'post_format'

Ohne den Unterstrich ist die Abfrage ungültig. Ich habe dies gerade auf meiner WordPress 3.1-Installation getestet, nachdem ich mir stundenlang die Haare ausgezogen hatte.

Ich hoffe, das hilft!!

Jared White
quelle
Vielen Dank, dass Sie das verstanden haben. Ich könnte schwören, dass ich den Originalcode direkt von der Codex-Seite kopiert habe. (Vielleicht war es dort auch einmal falsch.) Es funktioniert jetzt. Zusammen mit der Änderung in post_format musste ich auch 'Begriffe' => 'Zitat' zurück in 'Begriffe' => 'Post-Format-Zitat' ändern. Für alle anderen Interessierten siehe Bearbeiten 3 des ursprünglichen Beitrags für den endgültigen Code.
PNMG
Klar, ich bin froh, dass ich helfen konnte. :)
Jared White
2

in tax_query"Terms" akzeptiert Array, daher müssen Sie post-format-quoteein Array wie folgt einfügen:

$args = array(
  'tax_query' => array(
    array(
      'taxonomy' => 'post-format',
      'field' => 'slug',
      'terms' => array('post-format-quote')
    )
  )
);
query_posts( $args );
Bainternet
quelle
Hat jemand dies versucht und es zum Laufen gebracht. Ich habe den Array-Teil hinzugefügt und er hat immer noch nichts zurückgegeben. Ist Post-Format-Quote der richtige Slug für das Array?
PNMG
Nein, es ist nicht so, dass Sie das Post-Format selbst wie "Zitat" und nicht wie das Post-Format-Zitat setzen müssen
Bainternet
Meinst du, ich sollte 'Begriffe' => Array ('Zitat') setzen, da dies das ist, was ich in der Funktion add_theme_support als oben definiert habe? Das habe ich auch versucht. Immer noch kein Glück.
PNMG
Nun, 'Begriffe' => Array ('Zitat') funktioniert von mir. Versuchen Sie, das Post-Format mit 'echo get_post_format ()' wiederzugeben. ' und sehen, was Sie bekommen
Bainternet
Ok, wenn ich das Echo wiederhole, bekomme ich ein Zitat. In einem Moment der Verzweiflung habe ich alle Plugins deaktiviert und zum Standardthema 20 zurückgekehrt und 3 Testposts erstellt, einen mit einem Zitatformat. Ich habe die Datei functions.php aktualisiert, um dem Aufruf add_theme_support ein Zitat hinzuzufügen, und index.php aktualisiert, um den folgenden Code zu verwenden: [siehe Bearbeiten am Ende des ursprünglichen Beitrags]
PNMG