2012-06-15 25 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