显示自定义分类中的所有术语

时间:2020-03-19 作者:iamonstage

我希望在某些分类中的术语主页上显示一些不同的内容,以及ACF定义的图像字段。

我一直在网上查找,发现有两种主要的不同方法可以做到这一点,我想首先问一下这两种方法的区别是什么:?

WP_Term_Query();
以及

get_terms();
这是我到目前为止所拥有的代码,但它似乎不适用于\\u title()和\\u permalink()。

此外,它还显示第一个结果的ACF图像字段,但随后对其他结果重复相同的图像。术语上的ACF自定义图像字段为“Artister\\u thumbnail\\u image”

<?php
$args = array(
    \'taxonomy\'               => \'artist\',
    \'orderby\'                => \'name\',
    \'order\'                  => \'ASC\',
    \'hide_empty\'             => false,
    \'meta_key\'               => \'artist_featured\',
    \'meta_value\'             => \'1\',
    \'meta_compare\'           => \'==\',
);
$the_query = new WP_Term_Query($args);
foreach ($the_query->get_terms() as $term) { ?>
    <?php echo $term->name; ?>

    <?php
    $featuredartistid = $term->term_id;
    $featuredartist = get_field(\'artist\', $featuredartistid);
    $featuredartistthumbnailimage = get_field(\'artist_thumbnail_image\', $featuredartist);
    $featuredartistthumbnailimagesize = \'thumbnail\'; ?>

    <a href="<?php echo the_permalink(); ?>">
        <?php echo wp_get_attachment_image($artistthumbnailimage, $artistthumbnailimagesize); ?>
    </a>

<?php } ?>

2 个回复
SO网友:Pat J

  1. get_terms() 创建WP_Term_Query() 然后通过了$args 对它。它还适用于get_terms filter 在他们被退回之前。get_terms() 在这种情况下,是一个方便的函数,如果您不需要所有的铃铛和口哨WP_Term_Query 可能提供。

    尽可能the_title()the_permalink(), 这些功能是用来处理帖子的,而不是分类术语。the_title() 只有你在的时候才有意义The Loop, 我相信。在循环之外,您可以使用get_the_title(), 但你需要给它一个帖子或帖子ID。

    您的图像问题可能是因为您正在从featuredartistthumbnailimagefeaturedartistthumbnailimagesizeartistthumbnailimageartistthumbnailimagesize 在代码中。

SO网友:iamonstage

明白了。我的问题是不正确的featuredartistthumbnailimagesizeartistthumbnailimage

另外,我应该使用$term 传递给的变量wp_get_attachment_image. 不是$term->id.

下面是我的工作代码。希望它能帮助别人。

$fa_args = array(
    \'taxonomy\'               => \'artist\',
    \'hide_empty\'             => false,
    \'meta_key\'               => \'artist_featured\',
    \'meta_value\'             => \'1\',
);
$fa_query = new WP_Term_Query($fa_args);
if (!empty($fa_query->terms)) {
    foreach ($fa_query->terms as $fa_term) {

        $fa_id = $fa_term->term_id; // Term ID
        $fa_link = get_term_link($fa_id); // The term link
        $fa_image_id = get_field(\'artist_thumbnail_image\', $fa_term); //Artist Thumbnail Image ID
        $fa_image = wp_get_attachment_image($fa_image_id, \'thumbnail\');

        echo $fa_term->name;
        echo \'<br>\';
        echo $fa_image;
        echo \'<br>\';

    }
}

相关推荐

WP ForLoop用于比较帖子的元数据信息以确定要显示的帖子

我在这里尝试的缺点是:我只想根据存储在自定义字段中的日期显示一篇文章。我只想显示符合两个条件的帖子1:日期必须尚未发生,即必须大于当前日期2:要显示的帖子日期必须是所有可能帖子中最接近当前日期的。这是下一个日期。我的问题是,当我要比较一篇文章和另一篇文章,然后使用WordPress循环只显示适当的文章时,我不知道从哪里开始。我想我需要使用for循环遍历每个帖子并进行比较,然后运行一个新的查询来显示我的一篇帖子。太长,读不下去了我可以使用forloop来检查WP\\u查询吗?如何访问其中的帖子信息?这是我的