2016-07-03 6 views
1

내 가게의 아카이브 페이지에 모든 제품을 표시하려고합니다. 나는 그들의 ID를 얻고 싶다. 나는 wp_head에서 실행 내 후크 및 검사 어떻게 든 제품에 대한 쿼리를 액세스하여 자신의 ID를 얻으려면 Woocommerce가 아카이브 페이지에 상품을 표시합니다.

if(is_product_category()) 

을 사용하고 있습니다.
if(is_product_category()) { 
    $current_category = get_queried_object(); 
    $category_id = $current_category->term_id; 
    $category_name = $current_category->name; 

는 내가 대답을 발견 한 몇 가지 조사 후 현재 카테고리 ID

답변

0

을 얻기 위해 지금까지 가지고있는 코드입니다, 여기 모든 사람이 동일한 고투입니다, 오히려 간단했다 발행물.

woocommerce_product_loop_start(false); 
    while (have_posts()) { 
     the_post(); 
     $id = get_the_ID(); 
    } 
    woocommerce_product_loop_end(false); 

이렇게하면 우리가 원하는 정보를 얻을 수 있도록 woocommerce 루프가 현재 페이지에 대해 다시 호출됩니다. 추신 : 끝나면 쿼리를 재설정해야합니까?

+0

사용자 정의 쿼리 후'''wp_reset_postdata()''를 호출해야합니다. 그러나이 경우 원래의 루프로 작업하고 있으므로 대신'''wp_reset_query()'''를 사용하려고합니다. 이들을 실행하지 않으면 나중에 발생하는 모든 루프가 이미 루프를 통과 했으므로 루프의 마지막 포스트에서 시작합니다. 나는 당신을위한 루프를 포함하지 않는 대체 대답을 올렸다. –

0

당신은 플러그인 폴더 안에 폴더를 하나 만들고 거기에 코드를 붙여 넣습니다 또는 당신은 또한 테마 function.php 파일에 코드를 붙여 넣을 수 있습니다 woocommerce 제품 ID를

http://www.remicorson.com/easily-find-woocommerce-products-id/

얻기 여기를 따를 수 있습니다. 희망이 당신을 도울 것입니다.

0

아카이브 페이지에있는 경우 기본 쿼리에 게시물이 포함되어야합니다. 가장 쉬운 방법은 $ wp_query 전역의 "posts"속성에서 ID를 가져 오는 것입니다. wp_list_pluck이라는 유틸리티 함수가 있습니다.이 함수는 배열 배열에서 각 인덱스를 가져 오므로 결국 ID 배열로 끝납니다. wp_list_pluck 배열을 통해 반복하는 루프를 사용하여 수행하는 동안, 그것은 have_posts의 워드 프레스 루프 스타일을 사용하는 것보다 낫다는 것을

global $wp_query; 
$ids = wp_list_pluck($wp_query->posts, "ID"); 

주(), the_post(). 이것은 $ wp_query와 $ post 전역 사이의 모든 데이터를 이동시키지 않고 쿼리를 다시 설정하지 않아도되기 때문입니다.

관련 문제