Reposisi WooCommerce remah roti di luar konten pembungkus

9

Saat ini saya memiliki kode ini di file fungsi saya untuk plugin 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' );

Sekarang saya ingin memposisikan remah roti WooCommerce di luar kelas section.main, namun saya tidak bisa melihat bagaimana melakukan ini. Apakah ada cara untuk melakukan ini?

Ini adalah kode yang saya miliki untuk breadcrumb 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 );
}

Saya telah mencoba meletakkan tag section.main di baris 'sebelum', tetapi ini hanya menambahkan tag bagian di breadcrumb, itu tidak memposisikan ulang breadcrumb.

Adam
sumber

Jawaban:

20

Oke, sepertinya saya berhasil. Saya menambahkan ini di file fungsi ...

//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' );

Kemudian ditambahkan ...

do_action('woo_custom_breadcrumb'); 

... Di mana saya ingin remah roti menunjukkan.

Adam
sumber
1

Sudah mencoba kode Anda tetapi tidak berhasil.

Sebaliknya saya menghapus tindakan pada halaman yang ditargetkan.

function wc_remove_storefront_breadcrumbs() {
    if ( is_single() ){
        remove_action( 'storefront_before_content', 'woocommerce_breadcrumb', 
10 );
    }
  }
add_action( 'wp', 'wc_remove_storefront_breadcrumbs');  

Dan memasukkannya berkat sebuah kait di mana saya ingin:

<?php woocommerce_breadcrumb();?>
Francois
sumber