我不想使用侧边栏小部件来告诉它们应该在哪个页面上可见,我喜欢选择菜单设置以显示在特定页面上。
默认的Wordpress方式:
因此,项目是一个页面,并包含一些子页面。但是,如果我又有10个以上处于相同情况的页面和子页面,该怎么办?
我想添加一个额外的设置(顶层页面列表):
但是加载这些设置后,我找不到任何文档,操作,过滤器等。
我不想使用侧边栏小部件来告诉它们应该在哪个页面上可见,我喜欢选择菜单设置以显示在特定页面上。
默认的Wordpress方式:
因此,项目是一个页面,并包含一些子页面。但是,如果我又有10个以上处于相同情况的页面和子页面,该怎么办?
我想添加一个额外的设置(顶层页面列表):
但是加载这些设置后,我找不到任何文档,操作,过滤器等。
Answers:
这是一个不错的选择,但是我同意sri,现在它确实取决于您的主题。您可以通过is_page()来解决。您需要在page.php主题文件中编写如下内容:
<?php
if (is_page('projects')) {
if ( is_active_sidebar( 'sidebar-navigation' )) {
dynamic_sidebar( 'sidebar-navigation' );
}
}
?>
如果还要在其他页面上显示侧边栏,则可以使用逻辑或类似的方法:
if (is_page('projects') || is_page('home') || is_page('post-page'))
我认为为此使用插件会更好,因此即使将来更改主题,您也可以保留其功能。看看这个插件。它可以实现您想要的功能,但与您模拟它的方式略有不同。
https://wordpress.org/plugins/page-specific-menu-items/
如果有帮助,请投票或接受作为答案。谢谢!
这是在复制到子主题的二十十二个主题header.php中实现的方法。
<?php if ( is_page('projects') ) : ?>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu' => 'conditional-menu-name', 'menu_class' => 'nav-menu' ) ); ?>
<?php else : ?>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu' => 'Primary', 'menu_class' => 'nav-menu' ) ); ?>
<?php endif; ?>
用要显示的项目创建一个新菜单,并将上面代码中的条件菜单名称换成菜单名称。
menu_class名称可能需要更改为“十二二十二”以外的主题。
我知道这个线程很旧,但是如果有人需要搜索答案,我想建议他们使用条件菜单https://themify.me/conditional-menus。您可以选择要使用的菜单,每页,类别,元数据,所有内容。它是免费的:)希望这会有所帮助
一种选择是为您拥有的每个菜单制作自定义模板。(这是指主题位置复选框),然后在每个页面上,选择要使用的模板,它还将使用与该模板关联的菜单。
https://codex.wordpress.org/Page_Templates
它会给您与我想找到的结果相同的结果,但是您将告诉每个页面将显示什么菜单,而不是告诉每个菜单将显示什么页面。这样做的另一个好处是,您无法无意间将两个菜单同时放在同一位置。
您可以在管理面板中使用Menu Swapper插件执行相同的操作。这是此插件的演示。