Genesis Framework - 如何切换主挂钩和侧边栏挂钩顺序

Genesis Framework - How to switch main hook and sidebar hook order

我最近开始使用 Genesis Framework,并且仍然习惯于用于创建布局的挂钩。

我正在设计的页面使用左侧边栏作为主导航。在较小的屏幕上崩溃之前,它一直很好用;侧边栏位于底部,在主要内容下方。

我尝试寻找解决方案,因为它似乎很常见,但没有成功。

我认为可以解决的过程是使用 remove_action 删除侧边栏和主要内容,然后使用 add_action 以不同的顺序将它们恢复。为此,我需要知道挂钩的确切名称和订单号(如果指定)。

请告诉我您认为可以解决此问题的方法,如果我的思路正确,您会如何更改顺序。

好的。我找到的解决方案是 CSS 的修复,使用 Flexbox.

这很简单,但我更想从源头上解决问题,而不是找东西掩盖它。

这是通过媒体查询以及折叠时的屏幕尺寸完成的。 CSS 修复是:

  1. 应用{显示:flex; flex-direction: column;} 到包含元素,并且
  2. 将 {order: 2;} 应用到第一个出现的元素,但我想要第二个。

让我知道您的想法and/or 本来可以做些什么。

以备不时之需,这里是您问题的答案。

这是删除页面内容的方式。

remove_action( 'genesis_loop', 'genesis_do_loop' );

这是删除页面侧边栏的方法。

remove_action( 'genesis_sidebar', 'genesis_do_sidebar' );

这是内容和侧边栏之前的挂钩。

genesis_before_content

在您的情况下,让我们在 functions.php

中使用此代码
remove_action( 'genesis_sidebar', 'genesis_do_sidebar' );
add_action( 'genesis_before_content', function(){
    echo '<aside class="sidebar sidebar-primary widget-area" role="complementary" itemscope="itemscope" itemtype="http://schema.org/WPSideBar">';
    echo genesis_do_sidebar();
    echo '</aside>';
}, 2 );

希望这对你以后有所帮助。