【问题标题】:How to List all Child pages in wordpress?如何列出wordpress中的所有子页面?
【发布时间】:2015-06-17 05:58:52
【问题描述】:

我有一个父页面 A 和子页面 X、Y、Z、D

我想在页面 X 和 Y 上显示指向所有子页面的链接

当您转到页面 X 和 Y 时,您应该会看到所有子页面 X、Y、Z、D 的列表

由于某种原因,我只得到子页面(页面 D)

我正在使用这个功能。

$args = array(
'sort_order' => 'asc',
'sort_column' => 'post_title',
//'hierarchical' => 1,
'exclude' => '',
'include' => '',
'meta_key' => '',
'meta_value' => '',
'authors' => '',
'child_of' => A,
'parent' => -1,
'exclude_tree' => '',
'number' => '',
'offset' => 0,
'post_type' => 'page',
'post_status' => 'publish'
); 
$pages = get_pages($args); 

if ( $pages) 
{   



    foreach($pages as $page)

{
$page = '<ul> <li> <a href=" ' .  get_page_link( $page->ID ) . '"> ' .$page->post_title . ' </a> </li></ul>';
}
return $page;








}

我做错了什么?

【问题讨论】:

  • 来点简单的怎么样:$mypages = get_pages( array( 'child_of' =&gt; A, 'sort_column' =&gt; 'post_title', 'sort_order' =&gt; 'asc' ) );

标签: wordpress


【解决方案1】:

在示例中,您未能关闭 if 语句。您也可以在 foreach 中使用 echo 而不是 return。我稍微清理了你的代码。

<ul>
    <?php
    $args = array(
        'sort_order' => 'asc',
        'child_of' => '1',
        'post_type' => 'page',
        'post_status' => 'publish'
    );
    $pages = get_pages($args);

    if ($pages) {
        foreach ($pages as $page) :
            echo ' <li><a href="' . get_page_link($page->ID) . '"> ' . $page->post_title . ' </a></li>';
        endforeach;
    }
    ?>
</ul>

【讨论】:

  • 感谢@Geoffrey 我使用了 foreach : endforeach;而不是 foreach () { } 并且它有效。问题是我不想立即回显,我只想返回值并稍后调用函数,例如 wpb_list_child_pages() 来显示所有链接。当我使用 echo $page;它有效,当我使用 return $page;它只显示一个链接
【解决方案2】:

我修好了它,它工作了

我修改了我的 foreach

$links = '';    
foreach($pages as $page) {

$links .= '<ul> <li> <a href=" ' .  get_page_link( $page->ID ) .     '"> '     .$page->post_title . ' </a> </li></ul>';

}
return $links;

在我使用之前
$links = 而不是 $links .=

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 2015-08-23
    • 1970-01-01
    • 2013-05-23
    相关资源
    最近更新 更多