针对特定产品的Woocommerce自定义导航菜单

时间:2014-09-06 04:44:10

标签: php wordpress menu woocommerce nav

我正在使用Woocommerce插件进行在线服务(非实体产品) 这是我服务页面中的一个: http://www.vaservicesph.com/product/whiteboard-animation-service-basic/

我也在网站上使用Optimizepress主题。

这就是优化印刷在标题部分的内容(它使用的是博客模板的woocommerce东西):

一个。在顶部添加导航菜单的选项

湾在徽标旁边添加导航菜单的选项

这是选项的屏幕截图 - > screencast.com/t/zsrlLec9CH

它们将位于页面上: - > screencast.com/t/djtqjaZZ5

*如果它不起作用,请在我的截屏链接上添加http(对不起,我是stackoverflow的新手,需要更多积分才能发布更多链接)。

因此,如果我为我的博客启用菜单,它们将显示在顶部(与徽标一起),也将用于我的产品页面模板(这不是很好)。

我想要做的是仅为这些特定服务使用不同的菜单。因此,白板服务将只有关于白板服务相关页面的导航菜单(我指定)。

我该怎么做?希望我对我的问题很清楚。谢谢!

- 奇

2 个答案:

答案 0 :(得分:0)

您可以在functions.php中注册第二个菜单:

register_nav_menu( 'product', 'Product Menu' );

然后,无论您在哪里显示主菜单(可能是header.php),您都可以调整它以使用条件逻辑在一个案例中显示产品菜单,在所有其他案例中显示主题的主菜单。例如:

if( function_exists('is_product') && is_product() ){
  wp_nav_menu( array( 'theme_location' => 'product' ) );
} else {
  wp_nav_menu( array( 'theme_location' => 'primary' ) );
}

这并不是一个完整的答案,但希望它能让你朝着正确的方向前进。您可以使用任何您喜欢的条件逻辑。如果您将所有白板产品放在同一类别中,则检查产品类别可能是个好主意。

答案 1 :(得分:0)

我花了几个小时来解决这个问题。我知道代码专家可能会发现这是一个幼稚的解决方案,但由于我缺乏编码知识,这是我发现的。所以这就是我所做的:

  1. 首先,我使用以下代码注册了一个名为“Whiteboard Animation Service”的新菜单:slug'whiteboard_menu':

    //添加白板导航菜单 function register_whiteboard_menu(){     register_nav_menu('whiteboard_menu','白板服务菜单'); }

    add_action('init','register_whiteboard_menu');

  2. Next之后,我创建了一个新的标题模板,并在我的子主题上将其命名为 header-whiteboard-cfe.php

  3. 然后我复制了原始的header.php内容(整个代码 - 我的博客模板使用)并将其粘贴到我新创建的标题(header-whiteboard-cfe.php)中。然后我将我在该模板上找到的所有“主要”slu((使用查找和替换)替换为我新注册的菜单slug'whiteboard-menu'。

  4. 我在我的woocommerce模板的“single-product.php”上调用了标题。我用get_header('header-whiteboard-cfe.php')替换了get_header('shop')。

  5. 我已经在wordpress的“菜单”部分设置了菜单(称为“白板服务”)。然后我选择了白板服务菜单作为位置。

  6. 然后中提琴!它显示在我的单一产品页面上,用于我的白板服务!因此,如果我必须为不同的服务显示不同的菜单,那么我只需要执行这些过程。

    您有任何其他想法或其他解决方案吗?很想听听你的。谢谢!!