因为我正在制作一页网站。以下是我之前提出的问题:
Calling Specific Pages with wp query Part II
由于我是通过WP\\u查询调用所有页面,即“order by=ASC”,所以我想将其称为“order by menu structure”,而不是menu\\order。例如:
现在我想回到顶级联赛,然后是服务,然后是奖状。取决于菜单结构。。
我怎样才能做到这一点。。请帮助。。提前感谢!
因为我正在制作一页网站。以下是我之前提出的问题:
Calling Specific Pages with wp query Part II
由于我是通过WP\\u查询调用所有页面,即“order by=ASC”,所以我想将其称为“order by menu structure”,而不是menu\\order。例如:
现在我想回到顶级联赛,然后是服务,然后是奖状。取决于菜单结构。。
我怎样才能做到这一点。。请帮助。。提前感谢!
您可以在上使用WP\\u查询nav_menu_item
因为它是自己的帖子类型。我从来没有这样做过,但也许它会像你需要的那样工作,值得一试。还有三种其他可能性:
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 Classmenu_order
. 这样,您可以使用WP_Query
和orderby => \'menu_order\'
除此之外,简而言之orderby => \'My Menu\'
, 你必须找到一个替代方案或解决方法。
您可以使用该功能wp_get_nav_menu_items() 而不是wp\\u query(),以从菜单结构顺序中的特定菜单中检索菜单项。完成后,您可以根据自己的意愿逐个循环浏览菜单项(包括进一步过滤类型或其他信息)。这是假设所有页面都在菜单中(如果您使用该菜单来理解顺序,则需要在菜单中)。
当您单击票证列表上的“作者”箭头时,我试图按author\\u名称排序。单击箭头时,名称按我无法识别的顺序排列。我希望他们按实际名称而不是用户的ID号订购。如何让orderby按照用户(作者)的“好名字”进行查询?public function add_support_ticket_author_query( $query ) { if ( $query->is_main_query() && ( $orderby = $query->get( \'or