Отобразить изображение ACF под названием продукта на страницах архива WooCommerce. - PullRequest
0 голосов
/ 09 сентября 2018

Я использую плагин Advanced Custom Fields и могу просто отобразить текстовое поле под названием продукта на странице архива, но мне также нужно отобразить изображение в виде логотипа в том же месте (под текстовым полем).

Это код, который я использую для отображения текстового поля, и он работает;

add_action( 'woocommerce_after_shop_loop_item_title', 'custom_field_display_below_title', 2 );
function custom_field_display_below_title(){
    global $product;

    // Get the custom field value
    $custom_field = get_post_meta( $product->get_id(), 'oa1', true );

    // Display
    if( ! empty($custom_field) ){
        echo '<p class="ozel-alanlar">'.$custom_field.'</p>';
    }

}

И я также пытался использовать этот код для отображения поля изображения, но он не работает;

add_action( 'woocommerce_after_shop_loop_item_title', 'custom_image_display_below_title', 2 );
function custom_image_display_below_title() {
    global $product;

    // Get the custom field value
    $oa2 = get_post_meta( $product->id, 'oa2', true );

    // Display
    if ( ! empty( $oa2 ) ) {
        echo '<img src="' . $oa2 . '" />';
    }

}

Это результат;

http://www.awesomescreenshot.com/image/3601047/62187bf2b14fc220112fc9456bda1ec9

И пользовательские поля, которые я создал;

http://www.awesomescreenshot.com/image/3601051/9559df786631f1dc4d81937487e6bba2

http://www.awesomescreenshot.com/image/3601052/202b5f9b0f05aa661e16ece303ab7abe

Если бы кто-то мог мне помочь, я был бы благодарен.,

С уважением.

1 Ответ

0 голосов
/ 09 сентября 2018

Поскольку вы используете расширенные настраиваемые поля, вам нужно вместо этого использовать выделенную функцию get_field(). Поле изображения должно быть установлено как «URL изображения». Теперь код будет:

add_action( 'woocommerce_after_shop_loop_item_title', 'custom_field_display_below_title', 2 );
function custom_field_display_below_title(){
    global $product;

    // Display ACF text
    if( $text = get_field( 'oa1', $product->get_id() ) ) {
        echo '<p class="ozel-alanlar">' . $text . '</p>';
    }

    // Display ACF image
    if( $image_url = get_field( 'oa2', $product->get_id() ) ) {
        echo '<img src="' . $image_url . '" />';
    }
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.

Вы получите что-то вроде:

enter image description here

Полевая документация ACF для изображений

...