2012-06-15 23 views
0

我有一個艱難的時間,使WP顯示一個類別的鏈接,以下列方式一類的書籤鏈接:WordPress的 - 顯示由字母

  • 一個
  • 蘋果
  • 藝術
  • Bumerang ...等

我嘗試以下,但由於某些原因,查詢犯規說明了什麼

 $first_char = 'b';    
     $links = $wpdb->get_results(" 
     SELECT  * 
     FROM  $wpdb->links 
     WHERE  SUBSTR($wpdb->links.link_name,1,1) = %s 
     ORDER BY $wpdb->links.link_name 
     ", $first_char); 

     if ($links) { 

      foreach ($links as $link) 

      { 
       ?> 
       <p> 
        <a href="<?php echo $link->link_url; ?>" rel="bookmark" title="Permanent Link to <?php echo $link->link_name; ?>"> 
         <?php echo $link->link_name; ?> 
        </a> 
       </p> 
       <?php 
      } 

     } 

,也是我怎樣才能使這個只顯示一個特定的類別。 任何幫助,高度讚賞! 謝謝,

回答

1

這是不正確的使用$wpdb->get_results()According to the Wordpress Codex,對於get_results第二個參數是四個預定義的常數,即一個:

  • OBJECT - 結果將是作爲行對象的數字索引陣列輸出。
  • OBJECT_K - 結果將作爲行對象的關聯數組輸出,使用第一列的值作爲關鍵字(重複項將被丟棄)。
  • ARRAY_A - 使用列名作爲關鍵字,將結果輸出爲關聯數組的數字索引數組。
  • ARRAY_N - 結果將輸出爲數值索引數組的數字索引數組。

換言之, 'b' 爲不是有效的值。基於這個文檔(我對Wordpress並不熟悉),看起來像OBJECT_K會適合你的情況。您可以將SELECT *更改爲SELECT link_name,*,雖然從數據庫優化/性能角度來看效率不高,但會將檢索到的第一列設置爲link_name。如果我正在閱讀這個權利,那麼它會自動將它們按字母順序排列。然而,你也可能完全放棄第二個參數,它會起作用。

$first_char = 'b';    
    $category_id = 3; // get only category with id 3, for example 
    $links = $wpdb->get_results(" 
    SELECT  * 
    FROM  $wpdb->links 
    WHERE  SUBSTR($wpdb->links.link_name,1,1) = $first_char 
    AND WHERE $wpdb->links.link_category = $category_id 
    ORDER BY $wpdb->links.link_name 
    "); 

    if ($links) { 

     foreach ($links as $link) 

     { 
      ?> 
      <p> 
       <a href="<?php echo $link->link_url; ?>" rel="bookmark" title="Permanent Link to <?php echo $link->link_name; ?>"> 
        <?php echo $link->link_name; ?> 
       </a> 
      </p> 
      <?php 
     } 

    } 
+0

你好,謝謝你,你是正確的...你的幫助和你的時間給我一個解決方案是高度讚賞。 我設法alphabetize,我不知道是如何獲得特定類別的鏈接,因爲這個查詢給我所有的鏈接?...好吧謝謝 – MariaZ

+0

你看了[wp_list_bookmarks()](http ://codex.wordpress.org/Template_Tags/wp_list_bookmarks)?我想這可能是更多你想要的... – 2012-06-15 02:32:19

+0

是的......但我需要他們被字母分開,除非我失去了一些東西......我無法讓它按我想要的方式工作......謝謝 – MariaZ