0

我正在尝试从内置的 Wordpress 链接列表(或书签,如果你愿意)中获取所有链接类别。

为此,我只是将所有链接存储在一个变量中,如下所示:

<?php
    $lists = get_bookmarks();
    foreach($lists as $list) {
        $cats[] = $list->link_category;
    }
?>

令我惊讶的是,甚至 var_dump'ing $cats 都给了我“String(0)”,所以我 var_dump'ed out $lists 而不是,它给了我这个:

array(8) { [0]=> object(stdClass)#5126 (13) { ["link_id"]=> string(1) "1" ["link_url"]=> string(27) "http://codex.wordpress.org/" ["link_name"]=> string(13) "Documentation" ["link_image"]=> string(0) "" ["link_target"]=> string(0) "" ["link_description"]=> string(0) "" ["link_visible"]=> string(1) "Y" ["link_owner"]=> string(1) "1" ["link_rating"]=> string(1) "0" ["link_updated"]=> string(19) "0000-00-00 00:00:00" ["link_rel"]=> string(0) "" ["link_notes"]=> string(0) "" ["link_rss"]=> string(0) "" }

现在,codex.wordpress.org 是 wordpress 附带的默认链接,它位于名为“Linklist”的类别中,正如您所见,该对象包含有关该链接的所有内容,除了类别名称。

根据法典,这个对象应该包含一个名为“link_category”的字段,所以我在这里感到困惑。

我错过了什么吗?功能坏了吗?

问候

忍者

4

2 回答 2

0

在Wordpress 3.3.1 get_bookmarks() 函数的源代码中,链接类别是这样获取的:

$_bookmark->link_category = array_unique( wp_get_object_terms($_bookmark->link_id, 'link_category', array('fields' => 'ids')) );

您使用的是哪个版本的 WordPress?如果它没有得到link_category,您可以按照get_bookmarks()函数的方式手动获取它。

于 2012-04-11T11:25:48.657 回答
0

试试get_terms函数

$terms = get_terms('link_category');
于 2012-04-11T12:36:16.557 回答