web-dev-qa-db-ja.com

WordPress 3.1で投稿形式で問い合わせる

「見積もり」の投稿フォーマットですべての投稿をクエリしようとしています。私は私の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();

ループ内ではフロントエンドにWordの 'quote'を返します。また、クエリをvar_dump()したときに、postフォーマットに関する配列に何も表示されません。

投稿形式で問い合わせることが可能かどうか誰かが知っていますか?もしそうならどうですか?

編集 - Bainternetの答えの下の5つのコメントを見なさい:これはフォーマットタイプの引用符を返そうとしている新鮮なインストールの20の主題のindex.phpにあるコードです。私は 'quote'の代わりに 'no'を返します。私が変えなければならないことがあれば、あなたは見ることができます。

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のコーデックスが変更され、分類パラメータの部分が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(); ?>
10
PNMG

このコードは正しくありません。あなたが持っている

'taxonomy' => 'post-format'

しかし、それは本当に必要である:

'taxonomy' => 'post_format'

アンダースコアがないと、クエリは無効になります。私はちょうど何時間も私の髪を引っ張った後私のWordPress 3.1インストールでこれをテストしました。

それが役立つことを願っています!

7
Jared White

tax_queryの "terms"は配列を受け入れますので、post-format-quoteを次のような配列に入れる必要があります。

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