我最近在自建主题上安装了Woocommerce,并收到一条错误消息,告诉我需要在我的主题中添加sidebar.php代码。错误消息后面是一个凌乱的,未设置样式的列表中的小部件列表。这些小部件包括一个搜索栏,我站点中的页面列表以及一个档案和类别列表。我现在通过一个似乎有用的教程创建了sidebar.php - 我已经包含了我在下面使用的代码。
我发现不寻常的是,自添加侧边栏以来,这些小部件似乎已经消失,我现在必须使用外观菜单下的小部件选项卡手动添加它们。我无法弄清楚他们为什么会失踪?
我一直认为在添加侧边栏时,我必须通过PHP代码添加小部件 - 否则侧边栏不会与其他模板冲突?例如,我可以为我的商店页面添加Woocommerce小部件,但是当我想创建博客文章时,我需要不同的小部件,而Woocommerce仍然会在侧边栏中,反之亦然。
也许我已经采取了错误的做法......也许有人可以指出我正确的方向?我一直在谷歌上搜索并观看了一些youtube教程,但还没有找到我正在寻找的答案。
我的代码如下:
的functions.php
function enable_widgets() {
register_sidebar(
array(
'name' => 'Main Sidebar',
'id' => 'sidebar',
'description' => 'Here you can add widgets to the main sidebar.',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h5 id="widget-heading">',
'after_title' => '</h5>'
));
}
add_action('widgets_init','enable_widgets');
的sidebar.php
<div class="sidebar">
<?php dynamic_sidebar('sidebar'); ?>
</div>
答案 0 :(得分:1)
在woocommerce / templates / global / sidebar.php中,您可以看到woocommerce如何显示侧边栏。
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
get_sidebar( 'shop' ); ?>
首先搜索sidebar-shop.php,然后搜索sidebar.php。 所以你需要做的就是在你的主题文件夹下创建sidebar-shop.php。
在您的sidebar-shop.php中,显示您已注册的小部件区域。
<强>边栏-shop.php 强>
<div class="sidebar">
<?php dynamic_sidebar('sidebar'); ?>
</div>
还有另一种方法可以使用相同的sidebar.php来显示特定于woocommerce的小部件区域。由于WooCommerce有一些conditional tags,我们可以使用 is_woocommerce ()来确定页面是否使用WooCommerce模板。
<强>的sidebar.php 强>
<div class="sidebar">
<?php
if ( is_woocommerce() ) {
dynamic_sidebar('sidebar');
} else {
dynamic_sidebar('default-sidebar');
}
?>
</div>