Поле ACF Relationship по категориям сообщений для продуктов Woocommerce - PullRequest
1 голос
/ 04 апреля 2020

Я использую поле отношения ACF для отображения соответствующих сообщений в блоге по каждому продукту. В настоящее время это работает, но я должен проверить каждый продукт вручную, чтобы показать соответствующий пост на нем.

$posts = get_posts(array(
        'meta_query' => array(
            array(
                'key' => 'products', // name of custom field
                'value' => '"' . $product->get_id() . '"',
                'compare' => 'LIKE'
            )
        )
    ));

Добавление продуктов enter image description here

Проблема: Как можно вместо этого добавить категории продуктов, чтобы мне не пришлось добавлять вручную 200 товаров, но только одна категория товаров, для которой этот пост связан и будет отображаться в одном окне.

Possible solution?

Может ли это быть вместо этого интегрировано с полем ACF таксономии (если сообщение имеет таксономию product_cat, как она связана, она будет отображаться в продуктах этой категории)? К сожалению, не может придумать способ

1 Ответ

0 голосов
/ 04 апреля 2020
<?php
global $post;

//Related Product Section Start

$term_list = wp_get_post_terms($post->ID, 'your_taxonomy', array("fields" => "ids", "parent" => 0 ));
$term_name = wp_get_post_terms($post->ID, 'your_taxonomy', array("fields" => "names", "parent" => 0));

if ( $term_list ) { 
    $data_related = new WP_Query 
        ( 
            array (
                'post_type' => 'your_post_type',
                'posts_per_page' => -1,
                'post__not_in' => array( $post->ID ),
                'post_status' => 'publish',
                'tax_query' => array(
                    array (
                        'taxonomy' => 'your_taxonomy',
                        'field' => 'term_id',
                        'terms'    => $term_list[0],
                    ),
                ),
            ) 
        );

    if ( $data_related->have_posts() ) { ?>
        <div class="product-part">
            <div class="container">
                <h2><?php echo $term_name[0]; ?></h2>
                <?php  while ( $data_related->have_posts() ) {
                    $data_related->the_post();  
                    echo '<div class="col-12  col-md-6 col-lg-4 col-xl-4">' .
                            '<h6>' . get_the_title( get_the_ID() ) . '</h6>' .
                    '</div>';
                } ?>
             </div>        
        </div>
    <?php } wp_reset_query(); wp_reset_postdata();
} 

//Related Product Section End ?>

попробуйте этот код, поместите этот код на одной странице продукта

...