taxquery taxonomy get terms

时间:2017-12-11 作者:Paul Kamphusmann

我在编程和编码方面的知识非常有限。

在我们的网站(旅行社)上,我们按地区(墨西哥、中美洲、南美洲和其他国家)提供不同的旅行样本,请参见:Neue Welt Reisen/trips

当您选择行程时,例如。Costa Rica 您将在页面底部找到其他旅行示例。这些行程应选择来自同一地区,在这种情况下是美国中部,而不是其他三个地区。有一个脚本应该这样做,但结果只是来自墨西哥地区的旅行。因此,我的问题是:如何选择来自同一地区的示例旅行?代码如下:

<div class="promo-trips-container">
    <?php
    $args = array(
        \'post_type\'     => \'ausfluge\',
        \'showposts\'     => 3,
        \'orderby\'       => \'rand\',
        \'tax_query\'     => array(
            array(
                \'taxonomy\' => \'reisezweck\',
                \'field\'    => \'slug\',
                \'terms\'    => array( \'mexiko\', \'middle-america\', \'south-america\', \'other\' ),
            ),
        ),
    );
    $trips_list = new WP_Query( $args );
    ?>
谢谢你

保罗

1 个回复
最合适的回答,由SO网友:David Sword 整理而成

所以如果$trips_list 是示例trips部分,您希望示例trips只显示具有相同术语的trips-您可以在WP\\u查询中找到当前trips术语并进行论证。

// this trips terms
$tripTerms = wp_get_post_terms( get_the_ID(), \'reisezweck\');

// if each trip only has one term (as its a location)
// we\'ll use the first of the array array of terms
// and we\'ll now have our current trips term
$tripTerm = $tripTerms[0]->slug;

// you can uncomment and use instead if it\'s possible a trip has multiple terms: 
// make an array of ID of current trips terms
/* $tripTerm = array();
foreach ($tripTerms as $aTripTerms) 
    $tripTerm[] = $aTripTerms->slug; */

$args = array(
    \'post_type\'     => \'ausfluge\',
    \'showposts\'     => 3,
    \'orderby\'       => \'rand\',
    \'tax_query\'     => array(
        array(
            \'taxonomy\' => \'reisezweck\',
            \'field\'    => \'slug\',
            \'terms\'    => $tripTerm,
        ),
    ),
);
$trips_list = new WP_Query( $args );
我假设每次旅行只有一个学期。我已经添加了注释代码,以防一次旅行可能有多个。

结束