Wordpress查询与两个自定义分类

时间:2015-05-11 11:56:37

标签: php wordpress taxonomy custom-taxonomy

被困在这几天,所以我以为我会伸手去拿。

我创建了两个自定义分类,单一和双重客户。这些内容通过高级自定义字段填充特殊内容。

我要做的是创建一个自定义页面模板,该模板连接这两个分类法并打印出两个自定义分类法中的内容。

这适用于其中一种分类法:

<?php 
                $args=array(
                  'post_type' => 'singleclients',
                  'posts_per_page' => -1,
                  'caller_get_posts'=> 1
                );
                $my_query = null;
                $my_query = new WP_Query($args);
                if( $my_query->have_posts() ) {

                  while ($my_query->have_posts()) : $my_query->the_post(); ?>
                    <?php the_field('client1_img'); ?>
                    <h3><?php the_field('client1_name'); ?></h3>

                <?php
                  endwhile;
                }
                wp_reset_query();  // Restore global post data stomped by the_post().

            ?>

我已经尝试过遵循Wordpress Codex所说的内容,但我似乎无法让它发挥作用。这是我认为可行的一个例子,但根本没有显示任何内容。

<?php 

                $args=array(
                    'post_type' => 'post',
                    'tax_query' => array(
                        'relation' => 'AND',
                        array(
                            'taxonomy' => 'singleclients',
                            'field'    => 'slug',
                            'terms'    => 'singleclients'
                        ),
                        array(
                            'taxonomy' => 'dualclients',
                            'field'    => 'slug',
                            'terms'    => 'dualclients'
                        )
                    )
                );
                $posts = get_posts( $args );

                $my_query = null;
                $my_query = new WP_Query($args);
                if( $my_query->have_posts() ) {

                  while ($my_query->have_posts()) : $my_query->the_post(); ?>
                    <?php the_field('client1_img'); ?>
                    <p>print test content</p>
                    <h3><?php the_field('client1_name'); ?></h3>

                <?php
                  endwhile;
                }
                wp_reset_query();  // Restore global post data stomped by the_post().

            ?>

此时非常沮丧。任何人都知道我做错了什么以及为什么它不会打印出两种分类法?

3 个答案:

答案 0 :(得分:0)

我在网站上做了这个:

//queries
$query1 = new WP_Query($arg1);
$query2 = new WP_Query($arg2);

//create new empty query
$wp_query = new WP_Query();
$wp_query->posts = array_merge( $query1->posts, $query2->posts );

您现在可以像往常一样访问自己的帖子。 我不太擅长解释内容,所以如果您需要更多信息,请告诉我......

答案 1 :(得分:0)

不幸的是,我无法让它发挥作用。

我最终做的是创建一个名为&#34;客户&#34;并启用该分类的类别。这让我可以分配&#34;孩子&#34;对于类型&#34; singleclient&#34;的客户和&#34; dualclient&#34;。

当我调用循环时,我调用了一个单独的分类法,然后将输出帖子分成两种类型。我的代码如下。我希望这有助于将来的某个人。

<?php
                $args=array(
                  'post_type' => 'clients',
                  'posts_per_page' => -1,
                  'caller_get_posts'=> 1
                );
                $my_query = null;
                $my_query = new WP_Query($args);
                if( $my_query->have_posts() ) {

                  while ($my_query->have_posts()) : $my_query->the_post(); ?>

                    <?php if ( in_category( 'dualclient' )) { ?>
                        <!-- show dual client -->
                        <section class="two columns padding10">
                            <a href="<?php the_permalink() ?>">
                                <section class="four columns client1 dualclient_first" style="background-image:url('<?php the_field("dualclient1_img") ?>')"></section>
                                <section class="four columns client1" style="background-image:url('<?php the_field("dualclient2_img") ?>')"></section>
                            </a>
                        </section>
                    <?php } elseif ( in_category( 'singleclient' )) { ?>
                        <!-- show single client -->
                        <section class="two columns padding10">
                            <a href="<?php the_permalink() ?>">
                                <section class="eight columns client1" style="background-image:url('<?php the_field("dualclient1_img") ?>')"></section>        
                            </a>
                        </section>
                    <?php } else { ?>
                        <p>Woops.</p>
                    <?php } ?>

                <?php
                  endwhile;
                }
                wp_reset_query();  // Restore global post data stomped by the_post().
            ?>

答案 2 :(得分:-1)

你试过这种方式吗?

//First Query
$args=array(
   'taxonomy' => 'singleclients',
   'posts_per_page' => 1,
);
query_posts($args);

//Get the Posts
get_template_part( 'loop', 'index' );
wp_reset_query();

//Second Query
$args=array(
   'taxonomy' => 'dualclients',
   'posts_per_page' => 1,
);
query_posts($args);

wp_reset_query();