首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress函数可以修改吗?

Wordpress函数可以修改吗?
EN

Stack Overflow用户
提问于 2011-05-23 02:27:51
回答 3查看 320关注 0票数 0

我正在使用wordpress中的wp_list_bookmarks()函数来获取已经添加到Wordpress后端的链接,比如blogroll等。

我的问题是,我需要列表以某种方式出来,这样我就可以将它放入列中,每个列中有大约5个链接。

默认情况下,它只是一个很大的列表。有没有一种方法可以用PHP来改变这个函数发布链接的方式,这样我就可以运行一个计数器,然后在5个链接之后关闭当前列表,并为下一列开始一个新的列表?

我基本上需要这样的东西:

代码语言:javascript
复制
<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...

提前谢谢你。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-23 02:46:39

您可以使用Wordpress的get_bookmarks()函数,然后根据自己的喜好调整输出。请看这里的示例:

代码语言:javascript
复制
<?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

票数 1
EN

Stack Overflow用户

发布于 2011-05-23 02:38:36

根据wordpress的Plugin API

除了上面描述的钩子(操作和过滤器)之外,插件修改

行为的另一种方法是覆盖WordPress函数。事实上,WordPress打算让插件重新定义一些函数。

不幸的是,wp_list_bookmarks不在他们的被认为是"pluggable“的函数列表中。

也许你可以在API中找到其他适合你需要的东西?

票数 0
EN

Stack Overflow用户

发布于 2011-05-23 03:06:34

您可以从(需要编写的)插件钩入wp_list_bookmarks()。然后,该插件可以操作来自wp_list_bookmarks()函数的普通超文本标记语言,并将操作后的超文本标记语言返回给它,以便按正常方式回显或返回。

这个想法是创建(并激活!)一个简单的插件,比如:

代码语言:javascript
复制
<?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中的代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6089883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档