我正在使用wordpress创建一个网站,我有一个投资组合页面,其中显示所有投资组合项目 - 这些项目由父页面“投资组合”的子页面组成。 要在投资组合父页面上显示子页面及其内容,我需要一个特殊的查询。 为此,我只需为项目组合页面创建一个页面模板。在上面我查询了数据库如下:
$parent = post->ID; //portfolio page ID
query_posts('post_type=page&post_parent='.$parent);//grab those children of portfolio
奇妙。然而,随着时间的推移,我学会了更好地使用pre_get_posts来完成这样的工作,因为它对服务器和wordpress的负担较少。 更难,但可能:
function portfolioloop($query){
if ($query->is_page( 'portfolio') ){//query will only effect my portfolio page
$children = get_pages(array('child_of' => 35, 'echo' => 0) );
// i dont think post->ID; works here.
//35 is the post ID of portfolio. Let me know if im wrong.
// get and add the children id's to array. only id's is needed.
for($i = 0; $i < sizeof($children); ++$i) {
$portfolioitems[] = $children[$i]->ID; //$portfolioitems is a list of id's only. thats what we want
}
$query->set('post__in', $portfolioitems);
}
}
add_filter('pre_get_posts','portfolioLoop');
唉,它返回找不到的页面。我做错了什么? 如果你能帮助我,我会非常感激 谢谢,