2013-08-11 3 views
0

나는 activity라고하는 사용자 정의 게시 유형과 국가가 다른 많은 표준 페이지를 가지고 있습니다. 각 국가마다 다양한 활동이 있습니다. 사용자는 다양한 활동 범위를 추가 한 다음 각 활동을 사용할 수있는 국가를 선택해야합니다.Wordpress 조건이 충족 될 경우 페이지 당 게시물

목록 페이지를 사용하여 활동 사용자 정의 게시물 유형의 모든 페이지를 나열하는 드롭 다운 목록이 있습니다. 사용자는 새 활동을 추가하고, 컨텐츠를 추가하고,이 활동과 관련된 국가 (페이지)를 선택할 수 있습니다. 프론트 엔드의 특정 국가 페이지에서 사용 가능한 활동이 나열됩니다.

각 국가별로 3 가지 활동 만 보여주고 싶습니다. 나는 활동을위한 모든 커스텀 포스트 유형을 얻는 표준 루프를 수행한다. 드롭 다운 메뉴에서 선택한 페이지의 postid가 현재 페이지와 일치하는지 여부와 해당 활동이 표시되는지 확인해야합니다. post_per_page 표준을 사용하면 세 개의 게시물 만 잡을 수 있으므로 조건문을 사용하여 현재 ID와 일치하는지 확인하십시오.

내가 원하는 것은 posts_per_page가 활동에서 선택한 국가의 ID와 일치하는 국가 페이지 ID를 갖는 기준과 실제로 일치하는 활동에만 적용되도록하는 것입니다.

global $post;              
$postid = get_the_ID(); 

$args = array('post_type' => 'activities', 'orderby' => 'date', 'order' =>'ASC','posts_per_page' => 3); 

$loop = new WP_Query($args); 
while ($loop->have_posts()) : $loop->the_post(); 

$country = rwmb_meta('rw_activities_pages'); 
// this is the drop down list of pages. It gets the ID of the country page chosen 
$currentID = get_post($country); 
$currentTitle = $currentID->post_title; 


if ($country == $postid){ 
// if the activity country id matches the current page show the info 
    echo get_the_title(); 
    echo $currentTitle; 
    echo the_content(); 
} 
endwhile; 
wp_reset_query(); 

유사한 아이디어를 제공하는 몇 가지 맞춤 게시물 유형이있어 어떤 아이디어라도 환상적 일 것입니다. 당신이 원하는 무엇을 사전에

감사합니다,

리치

답변

0

자체가 meta_query를 사용하여 쿼리에 게시물을 필터링 할 수 있습니다.

$args = array( 
    'post_type' => 'activities', 
    'meta_query' => array(
         'key' => 'rw_activities_page', 
         'value'=> $postid, 
         'compare'=>'=' 
         ), 
    'orderby' => 'date', 
    'order' =>'ASC', 
    'posts_per_page' => 3); 

메타 키가 사용하는 값과 정확하게 일치하지 않는 경우 메타 키를 조정해야 할 수도 있습니다.

+0

그게 정확히 내가 한 것입니다. 정말 고마워요 !! 나는 그것을 약간 수정해야하고 배열이 작동하도록 배열 안에 meta_query를 포함해야한다는 것을 알았다. – Rich

관련 문제