WooCommerce - 제품 페이지 카테고리 가져오기
제 WC 제품 페이지의 경우 커스텀 스타일링을 할 수 있도록 바디 태그에 클래스를 추가해야 합니다.이 기능을 위해 제가 만들고 있는 그대로입니다.
function my_add_woo_cat_class($classes) {
$wooCatIdForThisProduct = "?????"; //help!
// add 'class-name' to the $classes array
$classes[] = 'my-woo-cat-id-' . $wooCatIdForThisProduct;
// return the $classes array
return $classes;
}
//If we're showing a WC product page
if (is_product()) {
// Add specific CSS class by filter
add_filter('body_class','my_add_woo_cat_class');
}
WooCommerce cat ID는 어떻게 얻을 수 있나요?
WC 제품은 하나 이상의 WC 범주에 속하지 않는다.만약 당신이 WC 카테고리 ID를 하나만 얻기를 바란다면.
global $post;
$terms = get_the_terms( $post->ID, 'product_cat' );
foreach ($terms as $term) {
$product_cat_id = $term->term_id;
break;
}
WooCommerce 플러그인의 "templates/single-product/" 폴더에 있는 meta.php 파일을 확인하십시오.
<?php echo $product->get_categories( ', ', '<span class="posted_in">' . _n( 'Category:', 'Categories:', sizeof( get_the_terms( $post->ID, 'product_cat' ) ), 'woocommerce' ) . ' ', '.</span>' ); ?>
$product->get_categories()
버전 3.0 이후 권장되지 않습니다.wc_get_product_category_list
대신.
https://docs.woocommerce.com/wc-apidocs/function-wc_get_product_category_list.html
이 코드 행을 콘텐츠 단일 팝업에서 말 그대로 삭제했습니다.php는 내 테마 디렉토리의 woocommerce 폴더에 있습니다.
global $product;
echo $product->get_categories( ', ', ' ' . _n( ' ', ' ', $cat_count, 'woocommerce' ) . ' ', ' ' );
제가 작업하고 있는 테마가 woocommerce를 통합했기 때문에 이것이 저의 해결책이었습니다.
감사함MyStile Theme를 사용하고 있는데 검색 결과 페이지에 상품 카테고리 이름을 표시해야 했습니다.저는 이 기능을 제 아이 테마 기능에 추가했습니다.php
다른 사람들에게 도움이 되길 바랍니다.
/* Post Meta */
if (!function_exists( 'woo_post_meta')) {
function woo_post_meta( ) {
global $woo_options;
global $post;
$terms = get_the_terms( $post->ID, 'product_cat' );
foreach ($terms as $term) {
$product_cat = $term->name;
break;
}
?>
<aside class="post-meta">
<ul>
<li class="post-category">
<?php the_category( ', ', $post->ID) ?>
<?php echo $product_cat; ?>
</li>
<?php the_tags( '<li class="tags">', ', ', '</li>' ); ?>
<?php if ( isset( $woo_options['woo_post_content'] ) && $woo_options['woo_post_content'] == 'excerpt' ) { ?>
<li class="comments"><?php comments_popup_link( __( 'Leave a comment', 'woothemes' ), __( '1 Comment', 'woothemes' ), __( '% Comments', 'woothemes' ) ); ?></li>
<?php } ?>
<?php edit_post_link( __( 'Edit', 'woothemes' ), '<li class="edit">', '</li>' ); ?>
</ul>
</aside>
<?php
}
}
?>
<?php
$terms = get_the_terms($product->ID, 'product_cat');
foreach ($terms as $term) {
$product_cat = $term->name;
echo $product_cat;
break;
}
?>
본문 태그에 커스텀클래스를 추가하려면 후크를 사용합니다.
특정 제품 카테고리에 따라 제품 페이지에 하나 이상의 클래스를 추가하려면 Wordpress 기능을 사용합니다(제품이 특정 제품 카테고리에 속하는지 확인).
이를 위해 어레이를 만들었습니다.$classes_to_add
여기서:
- 키: 제품 카테고리 ID(또는 slug 또는 이름)일 수 있습니다.아니면 그들 중 한 명일 수도 있지메뉴얼을 참조해 주세요.
- value: 본문 태그에 추가할 클래스를 포함하는 문자열.여러 클래스를 추가할 경우 공백으로 구분된 여러 값을 가진 문자열을 만듭니다(아래 예 참조).
그래서:
// adds a class to the body element based on the product category
add_filter( 'body_class', 'add_body_class_based_on_the_product_category' );
function add_body_class_based_on_the_product_category( $classes ) {
// only on the product page
if ( ! is_product() ) {
return $classes;
}
// create an array with the ids (or slugs) of the product categories and the respective class (or classes) to add
$classes_to_add = array(
30 => 'class-1',
'cat_slug' => 'class-2 class-3',
32 => 'class-4 class-5',
);
// if the product belongs to one of the product categories in the array it adds the respective class (or classes)
foreach ( $classes_to_add as $product_cat => $new_classes ) {
if ( has_term( $product_cat, 'product_cat', get_the_ID() ) ) {
$classes[] = $new_classes;
}
}
return $classes;
}
코드가 테스트되어 동작.활성 테마의 functions.php에 추가합니다.
언급URL : https://stackoverflow.com/questions/15303031/woocommerce-get-category-for-product-page
'programing' 카테고리의 다른 글
소수점 두 자리만 표시되도록 플로트 만들기 (0) | 2023.04.11 |
---|---|
MVVM WPF 프로젝트의 DataGrid에서 여러 항목 선택 (0) | 2023.04.11 |
Ninja 폼 데이터로 페이지 작성 (0) | 2023.04.06 |
동일한 데이터베이스 내에서 컬렉션을 가장 빨리 복사할 수 있는 방법은 무엇입니까? (0) | 2023.04.06 |
반응 네이티브:네이티브 프로펠러 RCTView.maxHeight용 propType 없음 (0) | 2023.04.06 |