2012-02-29 66 views
0

我有這樣一段代碼經歷類別和職位沒有按預期

<ul> 
<?php 

$categories = get_categories('include=9,4,5,6,7,8,3&hide_empty=0'); 

foreach ($categories as $category) { 
    $option = '<li class="mainop"><a href="#">'.$category->name.'</a>'; 

    $args = array('category' => $category->cat_ID); 
    $myposts = get_posts($args); 

    if (count($myposts) > 0) { 
     $option .= '<ul>'; 

     foreach($myposts as $post) { 
      setup_postdata($post); 
      $option .= '<li><a href=" '.the_permalink().' "> '.the_title().' </a></li>'; 
     } 

     $option .= '</ul>'; 
    } 

    $option .= '</li>'; 
    echo $option; 
} 
?> 
</ul> 

它應該吸取所有類別在WordPress的博客,併爲每個類別的子文章標題。

然而,當運行它返回以下(HTML代碼):

<ul> 
    <li class="mainop"><a href="#">Category</a></li> 
    http://URL/?p=13Page13http://URL/?p=11Page 11http://URL/?p=9Page 9 
    <li class="mainop"><a href="#">Category</a> 
    <ul> 
     <li><a href=" "> </a></li> 
     <li><a href=" "> </a></li> 
     <li><a href=" "> </a></li> 
    </ul> 
    </li> 
    <li class="mainop"><a href="#">Category</a></li> 
    <li class="mainop"><a href="#">Category</a></li> 
</ul> 

你有爲什麼titlea和網址都放在首位在輸出端,而不是在那裏他們都應該任何想法是?

謝謝

回答

1

the_permalink()和the_title()打印出來的鏈接和標題 - 他們不作爲字符串返回值。所以當你調用這些函數時,你正在將這些值打印到頁面中,並將它們的位置上的空字符串連接到$ option。

+1

其實它們應該被'get_post_permalink()'和'get_the_title()'替代, – Mike 2012-02-29 19:03:36