【问题标题】:Woocommerce sidebar not in placeWoocommerce 侧边栏没有到位
【发布时间】:2015-04-28 03:32:32
【问题描述】:

这是我在 woocommerce 中开发的网站。侧边栏仅在类别页面上不显示在类别页面的右侧。在产品页面上显示正常。

显示产品档案的模板,包括主商店页面,这是一个帖子类型的档案。

通过将其复制到 yourtheme/woocommerce/archive-product.php 来覆盖此模板

<?php
    /**
     * woocommerce_before_main_content hook
     *
     * @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
     * @hooked woocommerce_breadcrumb - 20
     */
    do_action( 'woocommerce_before_main_content' );
    remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30 );
?>

    <?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?>

        <h1 class="page-title"><?php woocommerce_page_title(); ?></h1>

    <?php endif; ?>

    <?php do_action( 'woocommerce_archive_description' ); ?>

    <?php if ( have_posts() ) : ?>

        <?php
            /**
             * woocommerce_before_shop_loop hook
             *
             * @hooked woocommerce_result_count - 20
             * @hooked woocommerce_catalog_ordering - 30
             */
            do_action( 'woocommerce_before_shop_loop' );
        ?>

        <?php woocommerce_product_loop_start(); ?>

            <?php woocommerce_product_subcategories(); ?>

            <?php while ( have_posts() ) : the_post(); ?>

                <?php wc_get_template_part( 'content', 'product' ); ?>

            <?php endwhile; // end of the loop. ?>

        <?php woocommerce_product_loop_end(); ?>

        <?php
            /**
             * woocommerce_after_shop_loop hook
             *
             * @hooked woocommerce_pagination - 10
             */
            do_action( 'woocommerce_after_shop_loop' );
        ?>

    <?php elseif ( ! woocommerce_product_subcategories( array( 'before' => woocommerce_product_loop_start( false ), 'after' => woocommerce_product_loop_end( false ) ) ) ) : ?>

        <?php wc_get_template( 'loop/no-products-found.php' ); ?>

    <?php endif; ?>

<?php
    /**
     * woocommerce_after_main_content hook
     *
     * @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
     */
    do_action( 'woocommerce_after_main_content' );
?>

<?php
    /**
     * woocommerce_sidebar hook
     *
     * @hooked woocommerce_get_sidebar - 10
     */
    do_action( 'woocommerce_sidebar' );
?>

【问题讨论】:

  • 您能提供任何代码来帮助解决您的问题吗?

标签: wordpress woocommerce sidebar


【解决方案1】:

问题出在你的 div 元素结构上。尝试对模板中涉及的每个 div 的打开和关闭进行排序。页眉到页眉,内容到内容,侧边栏到侧边栏,页脚到页脚 div 元素。

【讨论】:

  • 我知道,但是对于 woocommerce,我不知道它来自哪里,删除或添加 div 没有帮助。谢谢小伙伴的帮助。 :)
【解决方案2】:

您使用的是 Woocommerce 主题、自定义构建还是其他主题?

我建议检查内容包装器是否仍与其他页面上的相同。 Woocommerce 想要使用自己的包装 div。 例如。在您的大多数页面上,您可能有如下包装器:

<div id="primary">
     <!-- ... Main content of your site -->
</div><!-- #primary -->

Woocommerce 可能会将其覆盖到:

<div id="container"><div id="content" role="main">

要将此副本 wrapper-start.phpwrapper-end.php 修复为 yourtheme/woocommerce/global/,然后修复相应文件中的打开和关闭 div。

您也可以查看/loop/ 中的loop-start.phploop-end.php

或者你可以尝试解开包装器并添加你自己的:

remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10 );
remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10 );
add_action( 'woocommerce_before_main_content', 'add_content_inner_wrapp', 10, 1 );
add_action( 'woocommerce_after_main_content', 'close_content_inner_wrap', 10, 1 );
function add_content_inner_wrapp(){
?>
    <div id="container">
        <div id="content-inner">
<?php   
}
function close_content_inner_wrap(){
?>
        </div><!-- #content-inner-->
    </div><!-- #container-->
<?php   
}

希望对您有所帮助。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-18
  • 1970-01-01
  • 2018-04-19
  • 1970-01-01
  • 1970-01-01
  • 2017-03-23
  • 1970-01-01
相关资源
最近更新 更多