2011-05-22 52 views
0

我在wordpress中使用wp_list_bookmarks()函數來獲取已添加到Wordpress後端的鏈接,例如博客滾動等。可以修改Wordpress功能嗎?

我的問題是我需要列表在某個特定這樣我就可以把它放入列中,每列有大約5個鏈接。

默認情況下,它只是一個大列表。有沒有一種方法可以使用PHP來改變此函數發佈鏈接的方式,以便運行計數器,然後在5個鏈接關閉當前列表併爲下一列啓動一個新的鏈接後?

基本上,我需要這樣的:

<ul class="column-1"> 
    <li>link1</li> 
    <li>link2</li> 
    <li>link3</li> 
    <li>link4</li> 
    <li>link5</li> 
</ul> 
<ul class="column-2"> 
    <li>link6</li> 
    <li>link7</li> 
    <li>link8</li> 
    <li>link9</li> 
    <li>link10</li> 
</ul> 
// etc... 

預先感謝您。

回答

1

您可以使用Wordpress的get_bookmarks()函數,然後根據自己的喜好調整輸出。在這裏看到的例子:

<?php 

$bookmarks = get_bookmarks(array(
      'orderby'  => 'name', 
      'order'   => 'ASC', 
      'category_name' => 'Related Sites' 
        )); 

// Loop through each bookmark and print formatted output 
$column = 1; 
$counter = 1; 

echo "<ul class='column-$column'>"; 
foreach ($bookmarks as $bm) { 
    if ($counter >= 5) 
    { 
     $column++; 
     $counter = 1; // reset the counter 

     echo "</ul><ul class='column-$column'>"; 

    } 
    printf('<li><a class="relatedlink" href="%s">%s</a></li>', $bm->link_url, __($bm->link_name)); 
    $counter++; 
} 
echo "</ul>"; 

?> 

參考:http://codex.wordpress.org/Template_Tags/get_bookmarks#Examples

+0

該代碼未經測試,但我希望您能瞭解我正在嘗試提出的內容。所以我真誠的道歉,如果有任何錯誤(即使我已經試圖確保代碼是無錯的):) – thesocialgeek 2011-05-22 18:48:08

+0

有道理,今晚我會嘗試它,讓你知道它是如何發生的。謝謝。 :) – diggersworld 2011-05-23 12:00:06

0

據的wordpress的Plugin API

除了掛鉤(操作和過濾器)中,另一種方式的一個插件修改WordPress的行爲是重寫WordPress的功能。事實上,WordPress有一小部分功能可以讓插件重新定義。

可惜wp_list_bookmarks不是他們的函數列表被認爲是「pluggable」上。

也許你可以在API中找到其他符合你需求的東西?

0

您可以掛接到wp_list_bookmarks()從插件(你需要寫)。然後,該插件可以操作來自wp_list_bookmarks()函數的正常HTML,並將該操縱的HTML返回給它,以便正常回顯或返回。

的想法是創建(並激活!),一個簡單的插件,如:

<?php 
/* 
Plugin Name: Diggersworld Bookmarks 
Plugin URI: https://stackoverflow.com/questions/6089883/can-wordpress-functions-be-modified 
Description: Example plugin to customise output from wp_list_bookmarks 
Version: 0.0 
*/ 

function diggersworld_list_bookmarks($html) 
{ 
    // Do your transformation here 
    return '<p>Mmm pie.</p>'; 
} 

add_action('wp_list_bookmarks', 'diggersworld_list_bookmarks'); 

?>  

保存此爲您的插件文件夾文件,並從WordPress管理面板中激活它。您會看到您的書籤放置在哪裏,Mmm pie.文本就在那裏。修改該示例插件以使用任何你喜歡的方法返回你想要的HTML。

由於此功能正在綁定到wp_list_bookmarks()函數中的掛鉤中,因此您的模板應該像平常一樣調用wp_list_bookmarks()

當然,插件函數的主體可以使用類似於thesocialgeek's answer中的代碼。