래퍼 컨텐츠 외부의 WooCommerce breadcrumb 재배치


9

현재 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' );

이제 section.main 클래스 외부에서 WooCommerce breadcrumb의 위치를 ​​바꾸고 싶지만 어떻게해야하는지 알 수 없습니다. 이것을 할 수있는 방법이 있습니까?

이것은 WooCommerce breadcrumb에 대한 코드입니다 ...

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 );
}

section.main 태그를 'before'줄에 넣으려고했지만 이것은 이동 경로에 섹션 태그 만 추가하고 이동 경로를 재배치하지 않습니다.

답변:


20

좋아, 나는 그것을 작동시키는 것처럼 보인다. 함수 파일에 이것을 추가했습니다 ...

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

내가 빵 부스러기를 보여주고 싶었던 곳.


1

코드를 시도했지만 작동하지 않습니다.

대신 대상 페이지에서 작업을 제거했습니다.

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();?>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.