我如何才能从菜单中以帖子的形式获取页面?

时间:2015-10-13 作者:Max Ferreira

我有一个单页模板,我想根据菜单顺序获取页面,所以我想有一个循环来获取“主”菜单中的所有页面。

但在“get\\u pages”中,我没有按菜单筛选的选项,我如何才能做到这一点?

$mypages = get_pages( array( \'sort_column\' => \'post_date\', \'sort_order\' => \'desc\' ) );

foreach( $mypages as $page ) {
    $content = $page->post_content;
    if ( ! $content ) // Check for empty page
        continue;

    $content = apply_filters( \'the_content\', $content );
    ?>
    <h2><a href="<?php echo get_page_link( $page->ID ); ?>"><?php echo $page->post_title; ?></a></h2>
    <div class="entry"><?php echo $content; ?></div>
    <?php
}

2 个回复
SO网友:Milo

使用wp_get_nav_menu_items 从菜单中获取项目。

使用wp_list_pluck 仅提取object_id 从每个菜单项。这是菜单项所指页面的ID。

现在,您将按照页面ID在菜单中的显示顺序拥有一个页面ID数组。

新建WP_Query 对于post_type page 并将该数组作为post__in 参数,并设置orderbypost__in.

SO网友:user2172846

WP_Query 应提供所需内容,并按设置为页面的菜单顺序进行订购。您甚至可以增强过滤功能以删除特定页面等。

相关推荐

Read_Private_Pages功能不适用于新角色

我已经创建了一个新的用户角色-供应商-能够read_private_pages, 但当我以这样的用户身份登录并转到一个私人页面时,我看不到它。以下是我的插件代码:function fc_add_role($role, $display_name, $capabilities = array()) { if (!empty($role)) { return wp_roles()->add_role( $role, $display_name, $capabili