0

I have developed a custom taxonomy post type. I have displayed categories & inside categories posts/(products).

I am getting the Post title & Image as they should be (which I add), but the descriptions of all the posts are same.

I have no idea why same desc keeps displaying,even though everything else is dynamic.

Here is the code I am using:

$taxID = get_queried_object()->term_id;
$args = array(
    'post_type' => 'industrial_product',
    'fields' => 'ids',
    'posts_per_page' => -1,
    'tax_query' => array(
        array(
            'taxonomy' => 'industrial_product_cat',
            'terms' => $taxID,
            'field' => 'term_id',
            'operator' => 'IN'
        )
    ),
  );
     $query = new WP_Query($args);
    if ($query->have_posts()):
        $i=1;
    foreach( $query->posts as $id ):?>
            <div class="row mb-4">
                <div class="col-md-4 col-12">
                    <?php
                    $image_palette = wp_get_attachment_image_src( get_post_thumbnail_id( $id ), 'single-post-thumbnail' ); 
                    ?>
                <img src="<?php echo $image_palette[0]; ?>" alt="" class="img-fluid" style="max-width:100%;">
                    
                </div>
                <div class="col-md-8 col-12">
                     <ul class="nav nav-tabs" id="myTab" role="tablist">
                        <li class="nav-item m-0" role="presentation">
                            <a class="nav-link active  c-2" id="productInfo<?php echo $i;?>-tab" data-toggle="tab" href="#productInfo<?php echo $i;?>" role="tab" aria-controls="productInfo<?php echo $i;?>" aria-selected="true">Product Information</a>
                         </li>
                        <li class="nav-item m-0" role="presentation">
                            <a class="nav-link  c-2" id="std_tds<?php echo $i;?>-tab" data-toggle="tab" href="#std_tds<?php echo $i;?>" role="tab" aria-controls="std_tds<?php echo $i;?>" aria-selected="false">STD / TDS</a>
                        </li>
                    </ul>
                    <div class="tab-content p-3" id="myTabContent<?php echo $i;?>">
                        <div class="tab-pane fade show active" id="productInfo<?php echo $i;?>" role="tabpanel" aria-labelledby="productInfo<?php echo $i;?>-tab">
                            <h5><?php echo get_the_title($id); ?></h5>
                            <p><?php echo get_the_content($id); ?></p>
                        </div>
                        
                        <div class="tab-pane fade" id="std_tds<?php echo $i;?>" role="tabpanel" aria-labelledby="std_tds<?php echo $i;?>-tab">
                        <?php
                                if(get_field('std_tds_description', $id)){
                                    the_field('std_tds_description',  $id);
                                }
                                else{
                                    echo "No, Content.";
                                }
                            ?>
                        </div>
                    </div>  
                </div>
        </div>
        <?php
        $i++;
    endforeach;
    endif;
//              
            }
             
    ?>

Here is a screenshot of the result:

enter image description here

Can somebody point out what is the problem here. I've tried all sort of stuff but It still shows same desc. Thanks & Sorry If I'm doing something stupid, still learning!

3
  • Did you use ACF? get_field() looks like an ACF thing. If that's the case I'd check with their developers and documentation. Commented Mar 1, 2022 at 3:54
  • Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer.
    – Community Bot
    Commented Mar 1, 2022 at 3:55
  • @TonyDjukic Yes I am using advanced custom fields. Let me try & ask them Commented Mar 1, 2022 at 11:19

2 Answers 2

0

The correct WordPress loop structure is:

// WP_Query arguments
$args = array(
);

// The Query
$query = new WP_Query( $args );

// The Loop
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // do something
    }
} else {
    // no posts found
}

// Restore original Post Data
wp_reset_postdata();

Does this code is working ?

    $taxID = get_queried_object()->term_id;
    $args  = array(
        'post_type'      => 'industrial_product',
        'fields'         => 'ids',
        'posts_per_page' => - 1,
        'tax_query'      => array(
            array(
                'taxonomy' => 'industrial_product_cat',
                'terms'    => $taxID,
                'field'    => 'term_id',
                'operator' => 'IN'
            )
        ),
    );
    $query = new WP_Query( $args );
    if ( $query->have_posts() ):
        $i = 1;
        while ( $query->have_posts() ):
            $query->the_post();
            $id = get_the_ID();
            ?>
            <div class="row mb-4">
                <div class="col-md-4 col-12">
                    <?php
                    $image_palette = wp_get_attachment_image_src( get_post_thumbnail_id( $id ), 'single-post-thumbnail' );
                    ?>
                    <img src="<?php echo $image_palette[0]; ?>" alt="" class="img-fluid" style="max-width:100%;">

                </div>
                <div class="col-md-8 col-12">
                    <ul class="nav nav-tabs" id="myTab" role="tablist">
                        <li class="nav-item m-0" role="presentation">
                            <a class="nav-link active  c-2" id="productInfo<?php echo $i; ?>-tab" data-toggle="tab"
                               href="#productInfo<?php echo $i; ?>" role="tab" aria-controls="productInfo<?php echo $i; ?>" aria-selected="true">Product
                                Information</a>
                        </li>
                        <li class="nav-item m-0" role="presentation">
                            <a class="nav-link  c-2" id="std_tds<?php echo $i; ?>-tab" data-toggle="tab" href="#std_tds<?php echo $i; ?>" role="tab"
                               aria-controls="std_tds<?php echo $i; ?>" aria-selected="false">STD / TDS</a>
                        </li>
                    </ul>
                    <div class="tab-content p-3" id="myTabContent<?php echo $i; ?>">
                        <div class="tab-pane fade show active" id="productInfo<?php echo $i; ?>" role="tabpanel"
                             aria-labelledby="productInfo<?php echo $i; ?>-tab">
                            <h5><?php echo get_the_title( $id ); ?></h5>
                            <p><?php echo get_the_content( $id ); ?></p>
                        </div>

                        <div class="tab-pane fade" id="std_tds<?php echo $i; ?>" role="tabpanel" aria-labelledby="std_tds<?php echo $i; ?>-tab">
                            <?php
                            if ( get_field( 'std_tds_description', $id ) ) {
                                the_field( 'std_tds_description', $id );
                            } else {
                                echo "No, Content.";
                            }
                            ?>
                        </div>
                    </div>
                </div>
            </div>
            <?php
            $i ++;
        endwhile;
    endif;
    wp_reset_postdata();
1
  • Yes I've also shared screenshot of the result. Its working fine, just the descriptions is same for every post Commented Feb 21, 2022 at 7:17
0

I just changed the call

Old: <?php echo get_the_content( $id ); ?>

New: echo get_post_field('post_content', $id);

Don't know what was wrong but, It worked.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.