我正在尝试在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 } ?>
【如何检索WordPress页面的兄弟页面列表()】不要使用exclude参数, 只需将.current_page_item作为目标即可。
推荐阅读
- 如何在PHP数组元素中连接字符串()
- 如何在Visual Composer中的带有文本,覆盖和圆角的列内制作全角和全角图像()
- 如何获取在functions.php中的函数中使用的woocommerce订单的订单ID()
- 如何在WordPress主题中添加样式表()
- 在单个页面中获取自定义帖子类型的ID
- get_posts-orderby desc错误的顺序
- WP获取子类别列表
- #yyds干货盘点#私有CA和证书申请
- Linux 服务器日常巡检脚本分享 #yyds干货盘点#