GET_POST_ANASHORS返回空

时间:2011-10-10 作者:mcleodm3

我正在使用WordPress为我支持的软件产品组织文档,但遇到了一些问题。我有多个FAQ文档(另存为页面),这些文档需要单独的页面,但我希望能够将它们聚合到一个FAQ主列表中。

为此,我安装了“Ninja页面类别和标签”插件,以便在每个单独的页面上标记“faq”。然后我想做的是查询带有该标记的所有页面,然后根据FAQ的功能将它们聚合到3个列表中:常规、讲师或学生。每个结果将根据单个页面的祖先进行排序。

这是我开发的代码:

$instructors = array();
$student = array();
$general = array();

$postsByTag = get_posts(\'tag=faq&post_type=page&numberposts=0\');

foreach($postsByTag as $post) {

    setup_postdata($post);

    $title = $post->post_title;
    $title = str_replace("FAQ: ", "", $title);

    $id = $post->ID;

    $ancestors = get_post_ancestors($post);

    if($post->ancestors && in_array( \'386\', $post->ancestors)) {
        $instructors[] = "<li><a href=\'". get_permalink()."\'>$title</a></li>";
    } else if(in_array( \'384\', $post->ancestors)) {
        $students[] ="<li><a href=\'". get_permalink()."\'>$title</a></li>";
    } else {
        $general[] = "<li><a href=\'". get_permalink()."\'>$title</a></li>";
    }

}   
该代码返回所有标记为“faq”的页面,但它将所有内容排序为“常规”类别,因为get\\u post\\u祖先似乎返回空,尽管我知道情况并非如此。

我做错了什么?有人能帮我吗?谢谢

2 个回复
SO网友:Michael

use:

$ancestors = get_ancestors($id,\'page\');

get_ancestors()

SO网友:sam

从2.8到3.4get_post_ancestors() could incorrectly give an empty result.

应该是这样的fixed in 3.5 所以现在应该可以安全使用了。

结束

相关推荐

In need of array of post tags

在循环中的单个post页面上,我需要一个字符串形式的\\u tags()数组。get\\u tags()为我提供了所有的标签,而不仅仅是这篇文章。有没有一种简单的方法可以做到这一点?