包括父页面和子页面的列表页面

时间:2016-09-16 作者:M1lls

我目前正在使用以下代码在一个侧小部件上列出WordPress页面和子页面。

<ul class="side-links">
  <?php wp_list_pages( array( 

    \'title_li\' => \'\' 

   ) );
  ?>
</ul>
如果我添加以下代码,这将列出我的所有WordPress页面

\'child_of\' => $id

在数组中,我在父页面上获取子页面,如果我转到特定的子页面,则不会显示列表。我只需要在所有页面上显示子页面列表,包括父页面和子页面。

如果有帮助的话,我将wp_list_pages 在以下主题中在此页面上运行。https://github.com/holger1411/understrap/blob/master/loop-templates/content-page.php

2 个回复
最合适的回答,由SO网友:M1lls 整理而成

下面是帮助表单@Rarst的代码,它显示父页面和子页面上的子页面链接。

<?php 
    global $post;
    $children = get_pages( array( \'child_of\' => $post->ID ) );
    $hasChild = (count( $children ) > 0 );

    $page_id = ($hasChild) ? $post->ID : wp_get_post_parent_id( $post->ID );

        wp_list_pages( array(
        \'title_li\'    => \'\',
        \'child_of\'    => $page_id,
    ) );
?>

SO网友:Rarst

我不认为有一种方法可以在它的论点中准确地表达这一点。

您可以通过构建页面ID数组来解决这一问题,该数组包括根据需要设置的父项和子项。

$pages = get_posts( [
    \'post_parent\' => $page_id,
    \'post_type\'   => \'page\',
    \'fields\'      => \'ids\',
] );

$pages[] = $page_id;

wp_list_pages( [
    \'include\' => $pages,
] );

相关推荐

Generate permalinks

我希望永久链接像youtube一样,由9位数的字母和数字生成我修改了这个代码add_filter( \'wp_unique_post_slug\', \'unique_slug_108286\', 10, 4 ); function unique_slug_108286( $slug) { $n=4; $slug = bin2hex(random_bytes($n)); //just an example return $slug; }&