如何在单一自定义帖子上获取术语元数据?

时间:2020-06-11 作者:artist learning to code

我在自定义分类法中添加了自定义图像和图标,我知道如何在分类法模板页面的前端显示它。

$headImageId = get_term_meta( get_queried_object_id(), \'category-image\', true );
$headImageUrl = ( ( $headImageId != \'\' ) ? wp_get_attachment_url( $headImageId ) : \'\' );
但我如何在我的单个帖子模板中调用它?我想使用自定义帖子所属的分类术语中的图像作为标题背景。我脑子里想不起来这个。。

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

您需要使用get_the_terms() 要获取与帖子相关联的分类术语,并在其中循环,直到找到一个具有图像集的术语:

$post.     = get_queried_object();
$terms.    = get_the_terms( $post, \'taxonomy_name_here\' );
$image_url = null;

if ( $terms && ! is_wp_error( $terms ) ) {
    foreach ( $terms as $term ) {
        $attachment_id = get_term_meta( $term->term_id, \'category-image\', true );

        if ( $attachment_id ) {
             $image_url = wp_get_attachment_image_url( $attachment_id, \'full\' );
             break;
        }
    }
}

if ( $image_url ) {
    // Output image as needed.
}

相关推荐

Updating modified templates

我想调整一些。php模板文件在我的WordPress主题中,我知道正确的过程是将相关文件复制到子主题文件夹中并在那里编辑文件,这样我的修改就不会在将来的主题更新中丢失。但这是否意味着我将无法从主题更新中获益,因为我将文件放在了我的子主题文件夹中?这可能不是一件好事,因为主题更新可能添加了一些有用的特性,甚至修复了我最初需要对代码进行调整的问题!这方面的常见解决方案是什么?有人推荐了一款Diff应用程序——这是人们常用的吗?