如何使用wp_list_ages回显摘录?

时间:2014-02-27 作者:AndrettiMilas

我试着在wp_list_pages 使用下面的代码。它可以工作,但只适用于其中一个子页面。我如何回应每个子页面的摘录和标题?

<?php
$children = wp_list_pages(\'title_li=&depth=1&child_of=\'.$post->ID.\'&echo=0\');
if ($children) { ?>
    <h2>
        <?php echo $children; ?>
        <?php the_excerpt(); ?> 
    </h2>
<?php } ?>

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

如果你想对标题和摘录/内容使用所有漂亮的过滤器(为什么你不想要呢?)您应该循环执行自定义查询,而不是使用get_pages 以及页面的简单内容:

<?php
$args = array(
    \'post_type\' => \'page\',
    \'post_status\' => \'publish\',
    \'posts_per_page\' => -1,
    \'post_parent\' => $post->ID,
);
$query = new WP_Query($args);
while ($query->have_posts()) {
    $query->the_post();
    ?>
    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
    <?php
    the_excerpt();
}
wp_reset_postdata();
?>

SO网友:Steven Jones

wp_list_pages() 用于显示页面列表。看起来你想用它做更多的事情。

相反,您应该使用get_pages() with返回有关页面的数据数组,这意味着您可以更灵活地使用它。下面是一些示例代码:

$children = get_pages(array(\'child_of\' => $post->ID));

foreach ($children as $child) { ?>
   <h2><?php echo $child->post_title; ?></h2>
   <p><?php echo $child->post_excerpt; ?></p>
   <li><a href="<?php echo get_permalink($child->ID); ?>"><?php echo $child->post_title; ?></a></li>
<?php } ?>

SO网友:s_ha_dum

你不能用你正在尝试的方式来做这件事。所有标记都是由wp_list_pages(). 你不能像那样“插入”内容。

您可以将回调应用于wp_list_pages 钩子,但你需要一些复杂的正则表达式来完成它。

我想你最好的选择是把一个定制的步行器传给wp_list_pages(). 类似这样:

class My_Page_Walker extends Walker_Page {
  function end_el( &$output, $page, $depth = 0, $args = array() ) {
    $output .= apply_filters(\'the_excerpt\',$page->post_excerpt);  
    // or generate the excerpt from post_content
    // $output .= apply_filters(\'the_content\',wp_trim_words($page->post_content));
    $output .= \'</li>\';
  }
}

$args = array(
  \'post_status\'=> \'publish\',
  \'walker\' => new My_Page_Walker
);

wp_list_pages( $args ); 

结束

相关推荐

使用带有jQuery插件Jedable的AJAX在定制表上插入查询

我已经读了很多帖子,但没有找到解决办法。。。我正在努力实现Jeditable 具有以下代码的插件中的功能:jQuery(document).ready(function() { jQuery(\'.edit\').editable(\'http://localhost/www/wp-content/plugins/my_plugin/save.php\' }); 如果在中save.php 我只是回显一些东西,它将返回到我正在更新的文本字段,没有问题。问题是如何将其插入数据