2013-06-01 119 views
0

我正在使用類型Wordpress插件來啓用自定義字段。該插件允許您在管理頁面編輯器中重新排列圖像的順序。這是我在我的single.php中的代碼在自定義字段中顯示多個圖像,並有一個鏈接到自己也用的fancybox:自定義字段/值錯誤顯示

<?php 
    $mykey_values_img = get_post_custom_values('wpcf-image'); 
    if ($mykey_values_img != null) { 
     foreach ($mykey_values_img as $key => $value) { 
?> 
     <a href="<?php echo $value; ?>" class="fancybox" rel="gallery"><img src="<?php echo $value; ?>" /></a> 

<?php 
     } //foreach 
    } //if 
?> 

問題:

眼下這段代碼工作完全在我的本地副本在MAMP上運行。但是,當我將它放置在iPage上時,圖像無法正常顯示。我不知道是什麼導致了這種差異。當我使用類型的短代碼來顯示圖片而不是上面的php時,它們是按順序排列的,但我沒有使用Fancybox的選項。我還想知道是否有更好的方法來顯示來自Wordpress的圖像,該圖像將插入圖像的alt標籤。

回答

3

我剛剛遇到這個問題,你的第一個答案讓我更緊密的解決方案。

我也使用了types_render_field(),但是如果你包含'raw'參數,你可以避免字符串操作。

$images_raw = types_render_field('image', array('raw'=>'true','separator'=>';')); 
$images = explode(';', $images_raw); 
foreach ($images as $link) { 
    echo '<a href="' . $link . '" class="fancybox" rel="gallery">' . $link . '"></a>"'; 
} 

然後,如果你討厭,你可以從它的SRC獲得附件的ID。使用該ID,您可以獲取所需的關於該附件的所有信息,如標題或其他內容。

+0

這是一個更好的解決方案!謝謝! – Jonathon

0

我想出了一個解決方案來實現它。它不理想,但它的工作原理。

Types插件帶有自己的php函數來顯示名爲types_render_field的自定義字段。它按順序顯示我的圖像。爲了讓fancybox工作,我不得不對字符串進行一些破解。這裏的代碼:

$images = (types_render_field("image", array('size' => 'full', 'alt' => get_the_title(), 'title' => get_the_title()))); 
$imgArray = explode(">", $images); 

foreach ($imgArray as $value) { 

    $pos1 = strpos($value, 'src="', 0)+5; 
    $pos2 = strpos($value, '" ', $pos1); 
    $link = substr($value, $pos1, $pos2 - $pos1); 

    echo '<a href="'.$link.'" class="fancybox" rel="gallery">'.$value."></a>"; 
}