2017-01-06 15 views
-1

я пытался кодировать что-то вроде этого:Как выбрать между этими 3 вариантами OG: изображение

  1. Если разместить does't есть миниатюра, то выберите изображение по умолчанию.
  2. Если изображение ACF отсутствует, выберите значок по умолчанию.
  3. Если изображение ACF есть, используйте его.

Это для моего Ог: изображение для facebook.

function insert_image_src_rel_in_head() 
{ 
    global $post; 
    if (!is_singular()) 
     return; 
    if (!has_post_thumbnail($post->ID)) 
    { 
     $default_image = "http://madmax.quebec/neufsvies/wp-content/uploads/2016/09/madmax.quebec_qaygerxdm814v-750x374.jpg"; 
     echo '<meta property="og:image" content="' . $default_image . '"/>'; 
    } 
    elseif (!empty($temp_acfImage)) 
    { 
     $temp_acfImage = wp_get_attachment_image_src(get_field('image_og'), 'facebook-thumbnail'); 
     echo '<meta property="og:image" content="' . esc_attr($temp_acfImage[0]) . '"/>'; 
    } 
    else 
    { 
     $thumbnail_src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'facebook-thumbnail'); 
     echo '<meta property="og:image" content="' . esc_attr($thumbnail_src[0]) . '"/>'; 
    } 
    echo ""; 
} 

add_action('wp_head', 'insert_image_src_rel_in_head', 1); 

ответ

0

Try с этим кодом:

<?php 
function insert_image_src_rel_in_head() 
{ 
    global $post; 
    $img_src = ''; 
    $default_image = "http://madmax.quebec/neufsvies/wp-content/uploads/2016/09/madmax.quebec_qaygerxdm814v-750x374.jpg"; //default image src 
    if (!is_singular()) 
     return; 
    $acfImage = get_field('image_og', $post->ID); 
    //if post has ACF 'image_og' 
    if (!empty($acfImage)) 
    { 
     $img_src = wp_get_attachment_image_src($acfImage, 'facebook-thumbnail'); 
    } 
    //if post does't has ACF 'image_og' but has thumbnail 
    else if (has_post_thumbnail($post->ID)) 
    { 
     $img_src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'facebook-thumbnail')[0]; 
    } 
    //if post does't has thumbnail and also does't has ACF 'image_og' then set a default image 
    else 
    { 
     $img_src = $default_image; 
    } 

    ?> 
    <meta property="og:image" content="<?php echo $img_src; ?>"/> 
    <?php 
} 
add_action('wp_head', 'insert_image_src_rel_in_head', 5); 
?> 

wp_get_attachment_url возвращает URI на загруженные вложения или "ложь" в случае неудачи; тогда как wp_get_attachment_image_src это возвращает массив, содержащий четыре значения: URL-адрес изображения вложения src, ширину файла изображения, высоту файла изображения и boolean. И wp_get_attachment_url принимает только $attachment_id as param и>wp_get_attachment_image_src принимает $attachment_id, $size.

Код не проверен, но он должен работать.
Надеюсь, это поможет!

+0

нормально, и если я хочу, чтобы ACF изображение было первым, если ACF изображение использовать его если нет ACF изображения использовать эскиз и если там нет ACF изображений и использование эскизов по умолчанию –

+0

не работает она, кажется, только список миниатюр, а не изображение acf –

+0

@MaximeMarquette: я исправил ошибку опечатки, теперь, если у вас есть изображение АФК, оно будет работать; предоставить ключ ACF - «image_og». –

 Смежные вопросы

  • Нет связанных вопросов^_^