当列出子页面时,内存不足

时间:2016-11-16 作者:Artem Ankudovich

当我的站点试图生成子页面树时,我当前遇到了内存问题。据我所知,查询太大(WP有60000页)

下面是我正在使用的代码

 ?php global $post;
      wp_list_pages( array(
      \'child_of\' => $post->ID, // Only pages that are children of the current page
      \'depth\' => 1 ,   // Only show one level of hierarchy
      \'sort_order\' => \'asc\',
      \'title_li\' =>$post->post_title
    ));
    ?>
我是否可以添加其他参数来缩小查询,或者是否有更好的方法来显示子页面列表?

提前谢谢你。

3 个回复
SO网友:jgraup

WP_QueryPagination_Parameters 喜欢posts_per_pageoffset 来帮助你。只需对结果分页,即可将查询限制在每页更合理的数目。

SO网友:Cl0udSt0ne

我看不出你的代码有任何错误,也许你应该检查一下你是否可以通过$post->ID, 有时,您之前的一些代码更改了$post对象,导致您无法获取它wp_list_pages() 将显示所有页面。

SO网友:Artem Ankudovich

为了缩短执行时间,我最终使用了jgraup建议的WP\\u查询

生成子项列表的代码如下

<?php global $post;
  echo \'<p>\'. get_the_title().\'</p>\'; // current post title
  $query = new WP_Query( array( \'post_type\' => \'page\', \'post_parent\' => $post->ID,\'order\'   => \'ASC\') ); // find all pages with parentId of current page id 
      if ( $query->have_posts() ) {
          echo \'<ul>\'; 
          while ( $query->have_posts() ) {//loop through results
            $query->the_post();
            echo \'<li><a href=\'. get_page_link($post->ID) .\'>\' . get_the_title() . \'</a></li>\';//li with link to the page
          }
          echo \'</ul>\';
          /* Restore original Post Data */
          wp_reset_postdata();
        } else {
          // no posts found
        }


    ?>