Order by menu structure

时间:2015-03-26 作者:Hussy571

因为我正在制作一页网站。以下是我之前提出的问题:

Calling Specific Pages with wp query Part II

由于我是通过WP\\u查询调用所有页面,即“order by=ASC”,所以我想将其称为“order by menu structure”,而不是menu\\order。

例如:screenshot

现在我想回到顶级联赛,然后是服务,然后是奖状。取决于菜单结构。。

我怎样才能做到这一点。。请帮助。。提前感谢!

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

您可以在上使用WP\\u查询nav_menu_item 因为它是自己的帖子类型。我从来没有这样做过,但也许它会像你需要的那样工作,值得一试。还有三种其他可能性:

选项1-获取导航菜单项wp_get_nav_menu_items() 它将返回一个菜单项数组,然后可以循环显示。下面是一个如何使用它的示例。有几个“明白了!”此处:

  • $item->ID 是当前导航项目IDnot 这个post_id. 帖子ID现在为$item->object_id.
  • $item->title 是当前导航项目标题,不一定是post_title 虽然默认情况下是这样,但仍可以修改和更改。获取帖子标题最可靠的方法是使用object_id 并将其传递到get_the_title() 功能

$nav_items = wp_get_nav_menu_items( \'Main Menu\', array(
    \'order\'                  => \'ASC\',                  // List ASCending or DESCending
    \'orderby\'                => \'title\',                // Order by your usual, menu_order, post_title, etc. Check WP_Query
    \'post_type\'              => \'nav_menu_item\',        // To be honest, I\'m not sure why this is an option, leave it be.
    \'post_status\'            => \'publish\',              // If there are private / draft posts in our menu, don\'t show them
    \'output\'                 => ARRAY_A,                // Return an Array of Objects
    \'output_key\'             => \'menu_order\',           // Not sure what this does
    \'nopaging\'               => true,                   // Not sure what this does
    \'update_post_term_cache\' => false                   // Not sure what this does
) );

if( ! empty( $nav_items ) ) {
    foreach( $nav_items as $item ) {
        echo "{$item->title} - " . get_the_title( $item->object_id );
        echo "<br />\\n";
    }
}
选项2-自定义导航助行器您可以使用wp_nav_menu() 并传入一个Custom Walker Function 修改其输出。例如,可以自动提取该菜单项的子页面,而无需实际将这些页面添加到物理菜单中。Child Walker Class

选项3-页面菜单顺序

通常,当我为客户创建网站时,我有一个WordPress菜单,并且我还使用页面属性镜像管理面板的页面顺序menu_order. 这样,您可以使用WP_Queryorderby => \'menu_order\'

Image Found on codeholic.in

除此之外,简而言之orderby => \'My Menu\', 你必须找到一个替代方案或解决方法。

SO网友:Amanda Giles

您可以使用该功能wp_get_nav_menu_items() 而不是wp\\u query(),以从菜单结构顺序中的特定菜单中检索菜单项。完成后,您可以根据自己的意愿逐个循环浏览菜单项(包括进一步过滤类型或其他信息)。这是假设所有页面都在菜单中(如果您使用该菜单来理解顺序,则需要在菜单中)。

结束

相关推荐

Query Set Order By Author

当您单击票证列表上的“作者”箭头时,我试图按author\\u名称排序。单击箭头时,名称按我无法识别的顺序排列。我希望他们按实际名称而不是用户的ID号订购。如何让orderby按照用户(作者)的“好名字”进行查询?public function add_support_ticket_author_query( $query ) { if ( $query->is_main_query() && ( $orderby = $query->get( \'or