2011-11-24 60 views
1

我正在一個新的博客網站上工作,而且我談到PHP的時候已經很有限了。WordPress的,jquery,自定義字段,PHP循環

http://www.theredo.ca/

我所試圖做的是以下幾點:

每個帖子都有一個自定義字段,「計時器」。

裏面的自定義字段,有一段JavaScript代碼:

<script type="text/javascript">  
    $j(document).ready(function(){ 

     //init plugin 
     $j('#event-1').fancyCountdown({year:2011, month:9, day:31, hour:0, minute:0, second:0, timezone:0, dayDigitsAmount: 3, digits:{days:true,hours:true,minutes:true,seconds:true}}); 


    });  
</script> 

我需要遍歷我的所有文章,並把該JavaScript在頁腳 - 每個帖子都會有輕微的獨特的JavaScript(ID和其他變量)。

目前我正在使用這段代碼,這不是一個循環,只是將最後一個自定義字段放在頁腳中。

<?php 
    global $wp_query; 
    $postid = $wp_query->post->ID; 
    echo get_post_meta($postid, 'timer', true); 
    wp_reset_query(); 
?> 

我已經在使用一個循環前面拉的所有帖子,並顯示標題和上述其他幾個自定義字段,這是造成衝突時,我最初放置的JavaScript內嵌在HTML ...

長話短說 - 幫忙嗎?

+0

你是什麼意思「在自定義字段裏面,有一段javascript」?你想達到什麼目標? – bingjie2680

+0

如果你看看我鏈接的頁面 - 有計時器日期。目前只顯示一個...我需要能夠爲每個帖子設置計時器,以指定日期和時間。所以每個帖子都有一個「定時器」自定義字段,並在該字段中有Jquery。合理? – Ian

+0

基本上我想要的是一個循環來回顯名爲「計時器」在頁腳中的所有自定義字段...:D – Ian

回答

0

試試這個,不知道這是你想要的。

<?php 
query_posts();//get all posts 
while (have_posts()) : the_post(); 
    echo get_post_meta($post->ID,'timer', true); 
endwhile; 
wp_reset_query(); 
?> 
+0

拋出以下內容: 「解析錯誤:語法錯誤,意外的T_WHILE」 – Ian

+0

代碼已更新,請重試。 .. – bingjie2680

+0

到達那裏.. query_posts('posts_per_page = 3'); /必須廣告那個查詢爲它不拋出一個錯誤。 – Ian

0

我無法想象爲什麼你會需要JS內部的doc.ready調用在頁腳中(它將等待DOM準備就緒),但是你可以使用wordpress add_action鉤子來把你的內容放在那裏。

望着docs,我的猜測是這樣的:

<?php add_action('wp_footer', function() { echo get_post_meta($postid, 'timer', true);}) ?> 

你會做,所以它是針對每個崗位運行一次「循環」內,所有的JS堆積在頁腳中。

+0

doc.ready調用是毫無意義的 - 是的。這是我試圖等待PHP完成在主頁上顯示所有帖子。 不知道如何/我會在哪裏使用您提供的這段代碼。我有更多時間在今晚晚些時候看看它。再次感謝。 – Ian

+0

不,對於您的腳本,doc.ready可能非常重要。什麼是毫無意義的是把它們放在頁腳中,但我從答案中看到,你已經接受了你的同意;) – Sinetheta

0

每個帖子都會有一個代碼片段:

$j('#event-1').fancyCountdown({year:2011, month:9, day:31, hour:0, minute:0, second:0, timezone:0, dayDigitsAmount: 3, digits:{days:true,hours:true,minutes:true,seconds:true}});

,而在你的WordPress循環CONCAT這些值:

$countdown_script .= get_post_meta($post, 'timer', true);

則循環回聲劇本後:

<script type="text/javascript">  
$j(document).ready(function(){ 
    <?php echo $countdown_script; ?> 
});  
</script>