2017-01-06 89 views
-1

我想這樣對代碼的東西:如何爲OG這3個選項中進行選擇:圖像

  1. 如果簡化版,後有縮略圖它選擇一個默認圖像。
  2. 如果沒有ACF圖像,則選擇默認縮略圖
  3. 如果ACF圖像存在,則使用它。

這是我的og:image for 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

嘗試使用此代碼:

<?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,圖像文件的寬度,圖像文件的高度和 布爾值。而wp_get_attachment_url只需要$attachment_id作爲參數,>wp_get_attachment_image_src接受$attachment_id,$size

代碼未經測試,但它應該工作。
希望這有助於!

+0

確定,如果我想的ACF的圖像是第一個, 如果有ACF圖像使用它 如果沒有ACF圖像使用縮略圖 ,如果有沒有ACF圖像和縮略圖使用默認 –

+0

不起作用它似乎只列出縮略圖而不是acf圖片 –

+0

@MaximeMarquette:我修正了一個錯字錯誤,現在如果你有AFC圖片,它會起作用;提供ACF密鑰是'image_og'。 –

相關問題