태그와 관련된 게시물을 출력합니다.
저는 WordPress 3.9와 WooCommerce 2.1.8을 사용하고 있는데, 사용자가 현재 보고 있는 4개의 관련 게시물의 카테고리가 아닌 태그와 관련된 게시물을 어떻게 한 줄로 표시할 수 있는지 알고 싶습니다.
이상적으로는, 현재 1개의 상품 페이지 하단에 표시되어 있는 상품의 태그에 관한 4개의 상품, 특히 관련 투고의 특집 이미지나 섬네일, 가격을 표시하고 싶습니다.가능하면 함수에서 스크립트로 작성된 솔루션도 사용할 수 있습니다.php 파일.
아래 코드는 제가 가지고 있는 것으로, 포스트의 기반이 되는 태그가 아닌 관련 카테고리를 표시하고 있습니다.
add_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20);
function woocommerce_output_related_products() {
$output = null;
ob_start();
woocommerce_related_products(array(
'columns' => 4,
'posts_per_page' => 4,
'post_type' => 'product',
'fields' => 'ids',
'meta_query' => $meta_query,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'product_cat',
'field' => 'id',
'terms' => $cats_array
),
array(
'taxonomy' => 'product_tag',
'field' => 'id',
'terms' => $tags_array
)
)
));
$content = ob_get_clean();
if($content) { $output .= $content; }
echo '<div class="clear"></div>' . $output;
}
어떤 도움이라도 주시면 대단히 감사하겠습니다.
감사해요.
필터가 하나 더 있는데woocommerce_related_products_args에/templates/single-product/related.php쿼리 배열을 재정의하는 템플릿 파일입니다.
생각할 수 있는 해결책 중 하나는related.php템플릿, 새 템플릿 생성 및 사용자 지정 실행WP_Query그런 다음 해당 템플릿을 포함시킵니다.wc_get_template()기능.
다른 하나는 내장 필터를 이용하는 것입니다(대부분의 필터가 존재합니다.여기서는 필터의 실행 순서에 따라 필터의 목적과 사용 방법에 대해 설명하겠습니다.
woocommerce_output_related_products_s
를 설정하기 위한 첫 번째 필터woocommerce_related_products()함수 인수함수가 로드됩니다.related.phptemplate 및 passed 인수는 템플릿의 글로벌옵션입니다인수는"posts_per_page","columns"그리고."orderby".
/* An example of how to set the four products per page */
add_filter( 'woocommerce_output_related_products_args', function( $args )
{
$args = wp_parse_args( array( 'posts_per_page' => 4 ), $args );
return $args;
});
템플릿의 선두에 WooCommerce가 있습니다.$productobject는 카테고리 및 태그별로 관련 제품을 검색합니다.그 결과, 포스트 ID의 배열이 나중에 에 사용됩니다.post__in절을 지정합니다.몇 가지 필터를 사용할 수 있습니다.
woocommerce_product_related_syslog_by_category
카테고리별로 관련 제품을 제외하는 데 사용됩니다.
add_filter( 'woocommerce_product_related_posts_relate_by_category', function() {
return false;
});
woocommerce_product_related_syslog_by_tag
태그별로 관련 제품을 제외합니다.
add_filter( 'woocommerce_product_related_posts_relate_by_tag', function() {
return false;
});
woocommerce_product_related_syslogs
쿼리 부품을 최종 수정합니다.
add_filter( 'woocommerce_product_related_posts_query', function( $query ) {
// modify $query array
return $query;
});
메인 쿼리의 파라미터를 변경할 수 있는 마지막 필터는 다음과 같습니다.woocommerce_related_products_args.
woocommerce_related_products_sys
부터 쿼리는 「」에 .post__in그부분을 합니다.
add_filter( 'woocommerce_related_products_args', function( $args )
{
unset( $args['post__in'] );
$args['tax_query'] = array( /* taxonomy parameters */ );
return $args;
});
태그와 관련된 4개의 관련 제품을 표시하는 방법의 예.
add_filter( 'woocommerce_output_related_products_args', function( $args )
{
$args = wp_parse_args( array( 'posts_per_page' => 4 ), $args );
return $args;
});
add_filter( 'woocommerce_product_related_posts_relate_by_category', function() {
return false;
});
도움이 될 수 있는 몇 가지 힌트:
를합니다.print_r이치노 몇개의 것이 해집니다.★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」마지막으로, 대부분의 경우 기본 WooCommerce 기능을 완전히 재정의할 필요가 없습니다. 왜냐하면 플러그인의 작성자들은 이러한 모든 필터를 통해 작업을 쉽게 하기 위해 노력했기 때문입니다.
언급URL : https://stackoverflow.com/questions/23554993/output-posts-relating-to-the-tags
'programing' 카테고리의 다른 글
| 발신 JSON 타임스탬프 포맷 방법 (0) | 2023.03.11 |
|---|---|
| Redex: 백엔드 퍼시스턴스 방법에 대한 의견/예: (0) | 2023.03.11 |
| 스프링 부트에서의 Jackson Object Mapper의 Camel 설정 방법 (0) | 2023.03.11 |
| create-module-app은 실제 가동 중인 모든 코드를 표시합니다.어떻게 숨기면 좋을까요? (0) | 2023.03.11 |
| json.discloss.jisclos.jisclJSONDecode Error: 추가 데이터: 2행 1열(char 190) (0) | 2023.03.11 |