Query_Posts问题-需要帮助

时间:2019-02-02 作者:joloshop

我有一个分类法叫做coupon_category. 在a中query_post 我正在尝试使用相同的coupon_category.

如果我使用:

<?php

                    // show all active coupons for this category from related store and setup pagination

                    $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
                    query_posts( array(
                        \'post_type\' => APP_POST_TYPE,
                        \'post_status\' => \'publish\',
                        \'posts_per_page\' => 4,
                        \'tax_query\' => array( 
                            array(
                            \'taxonomy\' => \'coupon_category\', 
                            \'field\'    => \'slug\',
                            \'terms\'    => \'mode\', 
                            ),
    )
                    ) );                
                ?>
我可以用术语“mode”显示所有相关的帖子,但是我想自动化它,所以术语总是(coupon_category) 将显示页面上已使用的。

3 个回复
最合适的回答,由SO网友:joloshop 整理而成

好的,在阅读了很多之后,我最终改为“wp\\u query”,这是一个完美的解决方案:

$tax = get_the_terms($id, \'coupon_category\');
                    $args = array(
                        \'post_type\' => APP_POST_TYPE,
                        \'post_status\' => \'publish\',
                        \'posts_per_page\' => 5,
                        \'meta_key\' => \'clpr_topcoupon\',
                        APP_TAX_TAG => \'gutschein\',
                        \'orderby\'  => array(
                            \'meta_value_num\' => \'DESC\',
                            \'post_date\'      => \'DESC\',
                            ),                      
                        \'tax_query\' => array( 
                        \'relation\' => \'AND\',
                            array(
                            \'taxonomy\' => \'coupon_category\',
                            \'field\'    => \'slug\',
                            \'terms\'    => $tax[0]->slug, 
                            ),
                            array(
                            \'taxonomy\' => APP_TAX_STORE,
                            \'field\'    => \'slug\',
                            \'terms\'    => $term->slug,
                            \'operator\' => \'NOT IN\',
                             ),
                        ),  
                    );
                    $query = new WP_Query( $args );
                    while ( $query->have_posts() ) :
                        $query->the_post();
                        get_template_part( \'loop\', \'coupon\' ); 
                    endwhile;
                    wp_reset_postdata();

SO网友:Krzysiek Dróżdż

你必须获得当前职位的条款get_the_terms 函数,然后在查询中使用它们。

// this will get terms and then get only term_ids from them
$term_ids = wp_list_pluck( get_the_terms( get_the_ID(), \'coupon_category\' ), \'term_id\' );

$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$related = new WP_Query( array(
    \'post_type\' => APP_POST_TYPE,
    \'post_status\' => \'publish\',
    \'posts_per_page\' => 4,
    \'tax_query\' => array( 
        array(
            \'taxonomy\' => \'coupon_category\', 
            \'field\'    => \'term_id\',
            \'terms\'    => $term_ids, 
        ),
    )
) ); 
所以我们使用get_the_terms 获取当前帖子的术语列表,然后我们调用wp_list_pluck, 这是一个非常方便的函数,它将从所有给定对象中获取只包含一个字段的数组。

另外,我还改变了你的query_postsWP_Query - 这样对你的效率更好。

SO网友:joloshop

找到了与您的解决方案非常相似的解决方案:

$tax = get_the_terms($id, \'coupon_category\');
                    $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
                    query_posts( array(
                        \'post_type\' => APP_POST_TYPE,
                        \'post_status\' => \'publish\',
                        \'posts_per_page\' => 4,
                        \'tax_query\' => array( 
                            array(
                            \'taxonomy\' => \'coupon_category\', // Taxonomy
                            \'field\'    => \'slug\',
                            \'terms\'    => $tax[0]->slug, // Your category slug
                            ),
    )

                    ) );
现在我只需要从APP_TAX_STORE 使用当前slug或来自分类法stores.

相关推荐

Dropdown menu for categories

当我使用下面的代码时<?php wp_nav_menu( array(\'menu\' => \'categories\' )); ?> 我可以创建一个新的菜单来列出我创建的wordpress中的所有类别。我用它在页面中间列出所有类别。我现在的问题是:有没有一种简单的方法可以为存在的每个子类别创建下拉菜单?那么,当我点击一个特定的类别时,它的子类别会显示出来吗?