个性化阅读
专注于IT技术分析

如何检索WordPress页面的兄弟页面列表?

我正在尝试在WordPress中创建同级页面(而不是帖子)列表, 以填充页面的侧边栏。我成功编写的代码返回页面的父标题。

<?php
$parent_title = get_the_title($post->post_parent);
echo $parent_title; ?>

据我了解, 你需要页面的ID(而不是标题)来检索页面的兄弟姐妹(通过wp_list_pages)。如何获取页面的父母的ID?

欢迎使用其他方法。目标是列出页面的同级, 而不必仅检索父级的id。


#1


$ post-> post_parent为你提供父ID, $ post-> ID将为你提供当前页面ID。因此, 以下将列出页面的同级:

wp_list_pages(array(
    'child_of' => $post->post_parent, 'exclude' => $post->ID
))

#2


wp_list_pages(array(
    'child_of' => $post->post_parent, 'exclude' => $post->ID, 'depth' => 1
));

正确的答案, 因为其他两个答案并不只显示兄弟姐妹。


#3


此页面上的某些答案信息有些过时。即, 在使用child_of时似乎不再需要排除。

这是我的解决方案:

// if this is a child page of another page, // get the parent so we can show only the siblings
if ($post->post_parent) $parent = $post->post_parent;
// otherwise use the current post ID, which will show child pages instead
else $parent = $post->ID;

// wp_list_pages only outputs <li> elements, don't for get to add a <ul>
echo '<ul class="page-button-nav">';

wp_list_pages(array(
    'child_of'=>$parent, 'sort_column'=>'menu_order', // sort by menu order to enable custom sorting
    'title_li'=> '', // get rid of the annoying top level "Pages" title element
));

echo '</ul>';

#4


<?php if($post->post_parent): ?>
<?php $children = wp_list_pages('title_li=&child_of='.$post->post_parent.'&echo=0'); ?>
<?php else: ?>
<?php $children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0'); ?>
<?php endif; ?>
<?php if ($children) { ?>
<ul class="subpage-list">
<?php echo $children; ?>
</ul>
<?php } ?>

不要使用exclude参数, 只需将.current_page_item作为目标即可。

赞(0)
未经允许不得转载:srcmini » 如何检索WordPress页面的兄弟页面列表?

评论 抢沙发

评论前必须登录!