2012-11-20 61 views
3

我正在jQuery的滑塊,底部有縮略圖,我希望他們與相關的視頻鏈接。我正在爲此做的是我從管理員添加一篇文章,標題包含圖像標題,內容區域包含縮略圖圖像和視頻鏈接我添加一個自定義字段。WordPress的自定義字段值通過jquery

再次來到滑塊如果我只爲圖像(不是視頻)做同樣的過程它工作正常。我點擊底部的縮略圖和滑塊中的大圖像顯示。我得到的圖像的來源,我點擊通過這行代碼

var url = $(this).attr("src"); 

它給我從img標籤圖像的來源。一切安好。但現在我的確切觀點是,我想通過上面的代碼片段獲得自定義字段值,但我不知道如何做到這一點,因爲我從互聯網上隨機地嘗試了這麼多方法,但對我來說沒有什麼效果。

希望你們能明白我在說什麼,如果不是,我會提供代碼的進一步細節,如果需要的話。

任何幫助將不勝感激。

這裏是我完整的代碼(PHP和HTML)

 </div> 
     <div class="video-gallery"> 
      <a class="prev browse left"><<</a> 
      <div class="scrollable" id="scrollable"> 
       <div class="items"> 
        <?php if (have_posts()) : ?> 
    <?php 
    $thePosts = get_posts('numberposts=50&category=4'); 
    foreach($thePosts as $post) : 
    setup_postdata($post); 
    $custom_field = get_post_meta($post->ID,'video path', true); 
    echo '<div class="myclass" style="display:none" id="'.$custom_field.'"></div>'; 
    the_content();?> 
    <?php endforeach; ?> 
    <?php else : ?> 
    No Results 
    <?php endif; ?> 
       </div> 
      </div> 

這裏是JavaScript的jQuery

<script type="text/javascript"> 
$(".video-gallery img").click(function() { 
// see if same thumb is being clicked 
if ($(this).hasClass("active")) { return; } 

// calclulate large image's URL based on the thumbnail URL (flickr specific) 
var url = $('.myclass').attr('id'); 
alert(url); 
// get handle to element that wraps the image and make it semi-transparent 
var wrap = $(".image_wrap").fadeTo("medium", 0.5); 

// the large image from www.flickr.com 
var img = new Image(); 


// call this function after it's loaded 
img.onload = function() { 

    // make wrapper fully visible 
    wrap.fadeTo("fast", 1); 

    // change the image 
    wrap.find("iframe").attr("src", url); 

}; 

// begin loading the image from www.flickr.com 
img.src = url; 

// activate item 
$(".video-gallery img").removeClass("active"); 
$(this).addClass("active"); 

    // when page loads simulate a "click" on the first image 
}); 
</script> 

回答

2

您需要使用get_post_meta()函數來檢索所需的自定義字段,像這樣:

$custom_field = get_post_meta($post->ID,'CustomFieldName', true); 
+0

是的,你是對的我已經知道我可以通過這個函數得到它,但我想通過jqery得到它而不是php –

+0

你正在混合客戶端和服務器端。您無法使用JQuery從遠程服務器檢索數據。您必須使用服務器端語言,例如PHP。一旦你已經檢索到值,你可以將它分配給一個JavaScript變量,並對其進行處理,如下所示:var custom_field = <?php echo $ custom_field; ?>; – Matanya

+0

是的,看起來最好讓我試試這個 –

0

您可以使用數據 - 前綴自定義屬性,當你檢索每一個縮略圖補充一點:

<img data-video="get_post_meta($post->ID,'video_ulr', true);" src="..."> 

你可以操縱這個「數據」使用jQuery。例如,若要檢索您的數據。例如使用:

var url = $('this').data('video'); 

看看在jQuery documentation獲取更多信息/例子。

+0

還未定義的問題 –

+0

@KashifWaheed:您正在使用不正確的引號:試試這個:'echo'

';' –

+0

@KashifWaheed:如果您仍然收到一個空字符串,請嘗試使用var_dump($ custom_field)來獲取值由函數(應該是「BOOL FALSE」如果沒有這樣的字段存在)返回 – Matanya

相關問題