创建布尔函数以在 WooCommerce 中显示图像

Create Boolean function to display an image in WooCommerce

我想创建一个函数,它允许我显示图像,这要归功于自定义字段,该字段的布尔值是“true”或“false”,并且会使用产品的 slug 名称,但是我只是一个初学者,我在实现它时遇到了一些困难,你能帮我吗!

这是我当前的代码:

function custom_title_field() {
    global $product;
    $product = get_post( $post_id );
    $slug = $product->post_name;
    // Get the field name of InputText1
    $label = get_post_meta($product, 'title', true);
    if( is_product( $post_id ) ){
        return '<h1 class="display-3"><img class="" src="'. get_template_directory_uri() .'/inc/assets/img/shop/hero/'.$slug.'_title.svg" alt="Six Stars" data-inject-svg /></h1>';
    }
}

并将此代码放入我的单个 product.php 文件中:

<?php
  // get the post ID outside the Loop
  $post_id = get_queried_object_id();
  // print the <img>
  echo custom_title_field( $post_id );
?>

在这段代码中,图像显示良好,但是当没有图像可显示时,代码显示一个空的 wh1> 元素

我不确定我的解释是否清晰易懂,所以我为它创建了一个描述性图片!

如果您有任何问题,请告诉我。

尝试以下操作:

function custom_title_field( $post_id ) {
    if( is_product( $post_id ) && get_post_meta( $post_id, 'title', true ) ){
        $post = get_post( $post_id );
        $slug = $post->post_name;

        return '<h1 class="display-3"><img class="" src="'. get_template_directory_uri() .'/inc/assets/img/shop/hero/'.$slug.'_title.svg" alt="Six Stars" data-inject-svg /></h1>';
    }
}

对于您的模板single-product.php

<?php echo custom_title_field( get_the_id() ); ?>

应该可以解决您的问题