programing

태그와 관련된 게시물을 출력합니다.

fastcode 2023. 3. 11. 09:34
반응형

태그와 관련된 게시물을 출력합니다.

저는 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

반응형