将WooCommerce面包屑重新定位在包装内容之外

时间:2013-05-18 作者:Adam

我目前在WooCommerce插件的函数文件中有此代码。。

function my_theme_wrapper_start()
{
  echo the_breadcrumb();
  echo \'<section role="main"><div class="wrap">\';
}

function my_theme_wrapper_end()
{
  echo \'</div></section>\';
}

function mytheme_prepare_woocommerce_wrappers()
{
  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\', \'my_theme_wrapper_start\', 10 );
  add_action( \'woocommerce_after_main_content\', \'my_theme_wrapper_end\', 10 );
}

add_action( \'wp_head\', \'mytheme_prepare_woocommerce_wrappers\' );

add_theme_support( \'woocommerce\' );
现在,我想将WooCommerce面包屑重新定位到该部分之外。主类,但我不知道如何做到这一点。有没有办法做到这一点?

这是我的WooCommerce面包屑代码。。。

function woocommerce_breadcrumb( $args = array() ) {

    $defaults = apply_filters( \'woocommerce_breadcrumb_defaults\', array(
        \'delimiter\'   => \' &#47; \',
        \'wrap_before\' => \'<nav class="bcrumb" itemprop="breadcrumb">\',
        \'wrap_after\'  => \'</nav>\',
        \'before\'      => \'\',
        \'after\'       => \'\',
        \'home\'        => _x( \'Home\', \'breadcrumb\', \'woocommerce\' ),
    ) );

    $args = wp_parse_args( $args, $defaults );

    woocommerce_get_template( \'shop/breadcrumb.php\', $args );
}
我试着把这个部分放进去。“before”行中的主标记,但这只在面包屑中添加了一个section标记,它不会重新定位面包屑。

2 个回复
最合适的回答,由SO网友:Adam 整理而成

好的,我似乎已经开始工作了。我在函数文件中添加了这个。。。

//Reposition WooCommerce breadcrumb 
function woocommerce_remove_breadcrumb(){
    remove_action( \'woocommerce_before_main_content\', \'woocommerce_breadcrumb\', 20 );
}
add_action( \'woocommerce_before_main_content\', \'woocommerce_remove_breadcrumb\' );

function woocommerce_custom_breadcrumb(){
    woocommerce_breadcrumb();
}

add_action( \'woo_custom_breadcrumb\', \'woocommerce_custom_breadcrumb\' );
然后添加。。。

do_action(\'woo_custom_breadcrumb\'); 
。。。我想要面包屑展示的地方。

SO网友:Francois

尝试了您的代码,但无法运行。

相反,我删除了目标页面上的操作。

function wc_remove_storefront_breadcrumbs() {
    if ( is_single() ){
        remove_action( \'storefront_before_content\', \'woocommerce_breadcrumb\', 
10 );
    }
  }
add_action( \'wp\', \'wc_remove_storefront_breadcrumbs\');  
并将其包括在内,这要归功于我想用的钩子:

<?php woocommerce_breadcrumb();?>

结束

相关推荐

如何通过unction.php文件将菜单添加到主题

我有以下代码,我试图通过重写函数自动向主题添加菜单。所以我不必编辑主题文件但是,菜单是在页面顶部和每个页面上输出的,而不是仅在其给定位置输出。 /******************************* MENUS SUPPORT ********************************/ if ( function_exists( \'wp_nav_menu\' ) ){ if (function_exists(\'