我使用get\\u posts()生成一个以当前页面为父页面的帖子菜单。这会将post\\u id设置为第一个这样的post\\u id,而不是原始页面的post\\u id。也就是说,我希望Wordpress继续,就好像查询后什么都没有发生一样。
这是我在侧边栏中使用的代码。php:
$args = array(
\'posts_per_page\' => -1,
\'offset\' => 0,
\'category\' => \'\',
\'orderby\' => \'title\',
\'order\' => \'ASC\',
\'include\' => \'\',
\'exclude\' => \'\',
\'meta_key\' => \'\',
\'meta_value\' => \'\',
\'post_type\' => $slug,
\'post_mime_type\' => \'\',
\'post_parent\' => \'\',
\'post_status\' => \'publish\',
\'suppress_filters\' => true );
$pt=get_the_title();
$posts=get_posts($args);
//loop children custom posts.
if ($posts) {
echo \'<div class="generated-menu">\';
echo \'<ul class="left-navigation"><li class="active"><a href="/\'.$slug.\'">\'.$m.\'</a>\';
// Start the Loop.
foreach ($posts as $p) {
$t=get_the_title($p->ID);
$l=get_permalink($p->ID);
$a=\'\';if ($t==$pt) $a=\' class="active"\';
echo \'<ul><li\'.$a.\'>\';
echo \'<a href="\'.$l.\'">\'.$t.\'</a>\';
echo \'</li></ul>\';
} //foreach
echo \'</li></ul></div>\';
} //if has posts
所有可用信息均表示get\\u posts()不会影响任何内容。嗯,这肯定是个谎言,除非你能发现我代码中的错误。
如果我把单行注释掉$posts=get_posts($args);
, 主要内容可以。
我尝试过使用wp\\u reset\\u postdata(),没有区别。
感谢专业人士的帮助:)