2017-08-28 17 views
1

在Wordpress中,我使用高級自定義字段的事件管理器。Wordpress將序列化數組作爲簡碼參數

在我的活動帖子類型中,我添加了一個帶有ACF的圖庫,並希望在事件管理器創建的事件列表頁面中顯示第一個圖像。我可以在事件列表中做到這一點的唯一方法是創建一個簡碼,它將讀取自定義字段返回的序列化數組,這通常類似於a:1:{i:0;s:4:"6903";}

function unseralLink($atts) { 
    $atts = shortcode_atts(
     array(
      'id' => '', 
     ), $atts, 'unseralizeLink'); 
    if($atts['id']!='') 
     { 
     $mydata = unserialize($atts['id']); 
     $url = wp_get_attachment_image_url($mydata[0]); 
     return "<img src=\"".$url."\" alt=\"\" class=\"attachment-thumbnail size-thumbnail\" />"; 
    } 
} 
add_shortcode('unseralizeLink', 'unseralLink'); 

我打電話給[unseralizeLink id="#_ATT{gallery}"]短代碼。但沒有回報。

我真正需要幫助的是讀取序列化數組作爲shortcode參數並將其存儲到函數內的局部變量。之後,我應該沒問題。

回答

0

經過大量的實驗後,我找到了解決方案。

function eventImgURL($atts) { 
shortcode_atts(
    array(
     'id' => '', 
    ), $atts); 
    $myvar = unserialize($atts[id]); 
    return wp_get_attachment_image($myvar[0]); 

} 
add_shortcode('unseralizelink', 'eventImgURL'); 

問題的一部分是我使用雙引號時使用雙引號在短代碼中調用序列化數組。

[unseralizelink id='#_ATT{gallery}']