web-dev-qa-db-ja.com

WP カスタム分類法による照会

私はWPクエリに慣れてきたところで、これについて何か手助けができることを望んでいました。

カスタム分類法(テーマ)を作成し、これらの分類法のいずれかを含む最新の投稿をトップページの投稿としてトップページに表示したいと思います。

今、私は実際にクエリを適切にフィルタするためにそれを取得する方法を考え出すことができないようです、多分誰かが私を修正することができます:

<?php
           $args = array(
                'tax_query' => array(
                    array(
                        'posts_per_page' => 1,
                        'taxonomy' => 'theme',
                        'field' => 'slug',
                        'terms' => array ('text-image', 'just-text', 'just-image')
                    )
                )
            );
            $query = new WP_Query( $args );
           ?>
           <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

どうぞよろしくお願いいたします。

編集:他の誰かがそれを必要とする場合に備えて、これは完成したコードです。

<?php
           $args = array(
            'post_type' => 'post', // it's default, you can skip it
            'posts_per_page' => '1',
            'order_by' => 'date', // it's also default
            'order' => 'DESC', // it's also default
                'tax_query' => array(
                    array(
                        'taxonomy' => 'nameoftaxonomy',
                        'field' => 'slug',
                        'terms' => array ('whatever1', 'whatever2', 'whatever3')
                    )
                )
            );
            $query = new WP_Query( $args );
           ?>
           <?php if (have_posts()) : while( $query->have_posts() ) : $query->the_post(); ?>

助けてくれてありがとう!

2
kallekillen

あなたはこのようにあなたのオブジェクトを使用しなければなりません:

while ( $query->have_posts() ) : $query->the_post();
0
aguidis

WP_Query引数が間違っています。 posts_per_pagetax_queryの一部ではありません。以下がうまくいくはずです。

$args = array(
    'post_type' => 'post', // it's default, you can skip it
    'posts_per_page' => '1',
    'order_by' => 'date', // it's also default
    'order' => 'DESC', // it's also default
    'tax_query' => array(
        array(
            'taxonomy' => 'theme',
            'field' => 'slug',
            'terms' => array ('text-image', 'just-text', 'just-image')
        )
    )
);
1
Max Yudin