WordPress 3.1で投稿形式でクエリする方法


10

「引用」の投稿形式ですべての投稿をクエリしようとしています。私はfunctions.phpに投稿フォーマットを追加しました

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

管理者の投稿の形式として「引用」を選択しました。Taxonomy_Parametersの最後の例は、「quote」形式の投稿を表示する方法を示していますが、テーマで実行すると投稿が返されません。これがコードです:

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

すべての投稿と場所を照会するだけの場合

echo get_post_format();

ループでは、フロントエンドで「quote」という単語を返します。また、クエリでvar_dump()を実行すると、post形式に関する配列に何も表示されません。

投稿形式でクエリを実行できるかどうか誰か知っていますか?もしそうなら?

編集-Bainternetの答えの下の5コメントを参照してください:これは、フォーマットタイプの引用符を返そうとする新規インストールの20のテーマのindex.phpにあるコードです。「引用」ではなく「いいえ」を返します。私が変えなければならない何かを見ることができますか?

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

編集2-WordPress Codexが変更され、分類パラメーターの部分はGoogleキャッシュにのみあるようです。

編集3-最終作業コード

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

最初の編集から20の編集は次のようになります...

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

回答:


7

このコードは間違っています!あなたが持っている

'taxonomy' => 'post-format'

しかし、それは本当に必要があります:

'taxonomy' => 'post_format'

下線がないと、クエリは無効になります。何時間も髪を抜いた後、WordPress 3.1インストールでこれをテストしました。

それが役に立てば幸い!!


捕まえてくれてありがとう。元のコードをCodexページから直接コピーしたことを誓うことができました。(多分それは一度にそこにも間違っていました。)それは今うまくいきます。これをpost_formatに変更するとともに、「terms」=>「quote」を「terms」=>「post-format-quote」に戻す必要もありました。興味のある方は、元の投稿の編集3で最終的なコードを確認してください。
PNMG 2011年

確かに、私がお手伝いできてうれしいです。:)
Jared White

2

中にtax_queryあなたが置く必要があるので、「用語」配列を受け取りpost-format-quote、このような配列に:

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

誰かがこれを試してみて、機能させましたか?配列部分を追加しても、何も返されませんでした。post-format-quoteは、配列に挿入する正しいスラッグですか?
PNMG 2011年

いいえ、それはあなたが「引用」のようにそれ自身を投稿フォーマットにする必要はなく、投稿フォーマット引用ではない
Bainternet

add_theme_support関数で引用として定義されているので、 'terms' => array( 'quote')とするべきですか?私もそれを試しました。まだ運がない。
PNMG 2011年

よく 'terms' => array( 'quote')は私から働いています、 'echo get_post_format();'で投稿フォーマットをエコーアウトしてみてください あなたが何を手に入れるかを見てください
Bainternet

わかりましたので、エコーすると「引用」が表示されます。絶望の瞬間、私はすべてのプラグインをオフにし、デフォルトの20のテーマに切り替え、3つのテスト投稿を作成しました。1つは引用の形式です。私はadd_theme_supportコールに引用符を追加するためのfunctions.phpファイルを更新し、次のコードを使用するようにindex.phpを更新しました:[オリジナルのポストの下部にある編集を参照してください]
PNMG
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.