2016-11-15 8 views
2

상점 페이지 페이지 매김을 변경하고 페이지 스크롤에서 ajax를 사용하여 제품을로드하는 사용자 정의 코드를 추가했습니다. 내 사이트는 다국어이며 WPML을 사용하고 있습니다. 이 코드는 기본 언어로 잘 작동하지만 그 언어의 제품을 표시하는 대신 다른 언어로 표시됩니다. 즉 기본 언어 인 영어 제품을 보여줍니다. 번역 된 제품이 특정 언어와 일치 함을 보여주고 싶다는 의미입니다. 여기 WP_Query를 사용하여 현재 언어의 woocommerce 제품을 얻는 방법?

내 코드 아약스 코드 :

var $ = jQuery; 
var flag=1; 
var limit=0; 
$(window).scroll(function(){ 
     if($(window).scrollTop() == $(document).height() - $(window).height()){ 
      limit++; 
      if(flag==1) 
      { 
       $(".lazy_lode_img").css('display','block');//display loading image 
       $.ajax({ 
        url:"<?php echo get_stylesheet_directory_uri();?>/ajax.php", // ajax page 
        type:'POST', 
        data:{ 'paged':limit}, // send page no 
        dataType:"html", 
        success: function(product_data){ 
         //alert(product_data); 
         if(product_data!=0) 
         { 
          $(".shop-products.row.grid-view").append(product_data); 
          $(".lazy_lode_img").css('display','none'); 
         } 
         else 
         { 
          flag=0; 
          // $('#k_test').append('<div class="news" id="no_news" style="text-align:center;">NO MORE PRODUCT</div>'); 
          $(".lazy_lode_img").remove(); 
         } 
        } 
       }); 
      } 
     } 
    }); 

그리고 여기 내 PHP 코드입니다 : 그것의 제품을 가져올 수 있도록 내가 언어 코드를 통과해야하는 위치 이해가 안

$page_no = $_POST['paged']; 
$post_per_page=6; 
$args = array(
    'posts_per_page' => $post_per_page,//set post per page 
    'paged'   => $page_no,//set offset for limit 
    'post_type' => 'product', 
    'post_status'=>'publish', 
); 

$query = new WP_Query($args); 
if ($query->have_posts()) { 
    while ($query->have_posts()) : $query->the_post(); 
     /*$price = get_post_meta($query->post->ID, '_regular_price', true); 
     $price=round($price,2); 
     if ((int) $price == $price) 
     { 
      $price=$price.'.00'; 
     }*/ 
     ?> 
     <div class="item-col col-xs-6 col-md-4 col-sm-4 post-6303 product type-product status-publish has-post-thumbnail product_cat-all-products product_cat-tarts instock shipping-taxable purchasable product-type-simple"> 
      <div class="product-wrapper product-wrapper2"> 
       <div class="list-col4"> 
        <div class="product-image"> 
         <a class="twoimg" href="<?php echo get_permalink($query->post->ID);?>" title="Blueberry Frangipane Tart"> 
          <?php echo get_the_post_thumbnail($query->post->ID, 'shop_catalog');?> 
         </a> 
        </div> 
        <div class="home-product-title"> 
         <h2 class="product-name"> 
          <a href="<?php echo get_permalink($query->post->ID);?>" style="color:black;"><?php echo $query->post->post_title;?></a> 
         </h2> 
         <span class="arrow-img"></span> 
        </div> 
       </div> 
       <div class="clearfix"></div> 
      </div> 
     </div> 
     <?php 
    endwhile; 
} 
else 
{ 
    echo '0'; 
} 

프런트 엔드에서 현재 선택된 언어

+0

이 글을 읽으셨습니까? https : //wpml.org/forums/topic/show-default-languageplugin-if-not-translated/ –

+0

switch_lang()을 사용해 보았지만 영어 버전 제품을 계속 보여 줬습니다. . –

답변

1

마지막으로 해결책을 찾은 후 시간을 보냈습니다.

$args = array(
    'posts_per_page' => $post_per_page,//set post per page 
    'paged'   => $page_no,//set offset for limit 
    'post_type' => 'product', 
    'post_status'=>'publish', 
    'lang' => $current_language 
); 

그리고 그것은 마법처럼 작동합니다

난 그냥

'lang' => $current_language 

지금 내 쿼리 인수처럼 보이는 인수를 추가했다.