我在wordpress网站上与WooCommerce一起运行Avada主题。
问题是我正在尝试在页面顶部获取搜索功能,但仅限于响应模式(在移动设备上)。我已经能够为woocommerce中的侧边栏添加第三个选项。这显示在配置中(在哪里选择应该进入的小部件)。但是我不能让它显示出来。
我知道你会得到这样的原始侧边栏(直接从原始archive-product.php复制):
<?php
do_action( 'woocommerce_sidebar' );
?>
所以我认为应该可以使用以下行调用我们自己的侧栏:
<?php
do_action( 'woo_sidebar-3' );
?>
但这不起作用。 由于必须只能在响应设备上显示,我们使用自定义css融合选项以下列方式隐藏其他侧边栏:
@media only screen and (max-width: 720px) {
#sidebar {
display: none;
}
}
这当然太简单了,因为它会阻止所有侧边栏。但这是我们可以轻易改变的事情。到目前为止,我们创建的第3个侧边栏不会显示在网站的响应式或桌面版本上。而其他人确实在桌面上显示,但没有在响应中显示(根据需要)。
修改 - :
所以我尝试使用以下代码:
<?php if ( !function_exists('dynamic_sidebar') ||
!dynamic_sidebar('woo_sidebar_3') ) { ?>
<p>Oops... this displays if the topbar is not set up</p>
<?php } ?>
它显示了代码中给出的错误,因此它尝试在我们创建时拉出侧边栏。但它没有显示出来。是因为以下可能无法正常工作吗? :
'woo_sidebar_3' => array(
'label' => esc_html__( 'Global WooCommerce Product Sidebar 3', 'Avada' ),
'description' => esc_html__( 'Custom sidebar 3', 'Avada' ),
'id' => 'woo_sidebar_3',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'active_callback' => array( 'Avada_Options_Conditionals', 'is_woo' ),
哪一个是从上面的那个复制的,叫做woo_sidebar_2?
编辑2 - :
Here is a JSfiddle包含完整的sidebars.php代码,以及dynamic_sidebar代码(作为HTML)。当你运行te脚本时,我指出的错误也是可见的。
答案 0 :(得分:1)
我对Avada主题不太熟悉,无法了解其中某些选项的含义,即使Avada必须使用它,您的代码块也不会显示register_sidebar()
来电。
为简化起见,您可以使用registering a widget area
的标准WordPress代码在您的主题(理想情况下是儿童主题)中添加:
function so_38033924_widgets_init() {
register_sidebar( array(
'name' => __( 'Global WooCommerce Product Sidebar 3', 'your-theme' ),
'id' => 'woo_sidebar_3',
'description' => __( 'Custom sidebar 3', 'your-theme' ),
'before_widget' => '<div class="widget">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>',
) );
}
add_action( 'widgets_init', 'so_38033924_widgets_init' );
您需要确保before_widget
,before_title
参数类型与父主题匹配,以便您的小部件获得相同的样式。
然后你的模板代码对我来说是正确的:
<?php if ( !function_exists('dynamic_sidebar') ||
!dynamic_sidebar('woo_sidebar_3') ) { ?>
<p>Oops... this displays if the topbar is not set up</p>
<?php } ?>