0

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

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

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

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

请让我知道您认为可以解决此问题的方法,如果我在正确的轨道上,您将如何更改顺序。

4

2 回答 2

2

以防万一您需要,这是您问题的答案。

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

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 );

希望这可以在将来对您有所帮助。

于 2015-03-26T00:55:57.640 回答
0

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

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

它是通过媒体查询以及折叠时的屏幕大小来完成的。CSS修复是:

  1. 应用 {display: flex; flex-direction: column;} 到包含元素,和
  2. 将 {order: 2;} 应用于首先出现的元素,但我想要第二个。

让我知道你的想法和/或会有什么不同的做法。

于 2015-03-25T21:11:44.593 回答