2013-05-02 82 views
-1

打破我一直通過貿易設計師多年但我與WordPress合作爲客戶,並已使用管理與掛鉤合作,以獲得通過......我,但是現在處於停滯狀態。代碼在一個特定的順序

在主頁上我有兩個領域,這將被從數據庫中提取信息:

<?php 
    $thumb_posts = get_posts(array('category' => '6', 'orderby' => 'rand', 'numberposts' => 2, 'meta_key' => '_thumbnail_id')); 
if($thumb_posts) { ?> 
<?php foreach($thumb_posts as $post) { 
echo '<div class="feature"><div class="thumbnail"> 
<a href="' . get_permalink($header_thumb->ID) . '">' . get_the_post_thumbnail($header_thumb->ID,array(240,170)) . '</a></div>'; 
$url = get_permalink($post->ID); 
$filecontent = file_get_contents('https://graph.facebook.com/?ids=' . $url); 
$json = json_decode($filecontent); 
$count = $json->$url->comments; 
if ($count == 0 || !isset($count)) { 
$count = '0'; 
} elseif ($count == 1) { 
$count = '1'; 
} else { 
$count .= ''; 
} 
echo '<h3 class="title"> <a href="' . get_permalink($header_thumb->ID) . '#comments"  class="comments">' . $count . '</a> <a href="' . get_permalink($header_thumb->ID) . '"> ' . get_the_title($ID) . ' </a> </h3></div>'; 
} ?> 

我沒有寫,但調用隨機職位與標題和縮略圖的Facebook的評論數。

這裏是我的問題......有一次,我把我的第二個代碼在此之後它拋出了計數/圖像檢索。但是,如果我放置此代碼之前一切正常工作。

<?php 
$thumb_posts = get_posts(array('category' => '6', 'orderby' => 'rand', 'numberposts' => 2, 'meta_key' => '_thumbnail_id')); 
if($thumb_posts) { 
?> 

<?php 
global $post; 
$myposts = get_posts('numberposts=20'); 
foreach($myposts as $post) : 
?> 
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> | 
<span class="post-info"> <?php echo human_time_diff(get_the_time('U'), 
current_time('timestamp')) . ' ago'; ?> </span></li> 
<?php endforeach; ?> 

在我的思維過程,我需要以某種方式使其所以第二個代碼不會莫名其妙地甩開了第一個獨立的代碼。

+0

PHP有一個調試器,您可以使用它來檢查哪些變量被踐踏? – Patashu 2013-05-02 22:58:55

+0

我在粘貼隨機腳本時一定要在'$ post'上檢查變量名稱 – 2013-05-02 22:59:05

+0

我同意你的意見。我確信我正在做最乾淨的事情,但是我會以某種方式將這兩個腳本創建爲掛鉤上方的函數,然後稍後在指定區域內調用它們? – 2013-05-02 23:19:58

回答

1

由於該組線不是「來自同一個參數拉」:

global $post; 
$myposts = get_posts('numberposts=20'); 
foreach($myposts as $post) : 

爲了:

  1. 這樣做global $post,你提升到全局變量的引用$post由Wordpress設置爲您的範圍。 $post代表當前的帖子。
  2. 然後您從WP獲得許多帖子並將其設置爲$myposts。這可以。
  3. 什麼是不是然而,您正在通過$myposts作爲唯一元素$post循環。這最後一項任務導致WordPress的全球$post被重置並腐敗所有其餘的。

考慮這樣做,而不是:

<?php 
global $post; 
$myposts = get_posts('numberposts=20'); 
foreach($myposts as $current_post) : 
?> 

這不會改變全球範圍內可言,這也正是WordPress的節省了幾件事情。