2011-03-02 3 views
1

홈페이지 추천 섹션에서 태그 ID # 50으로 태그가 지정된 일반 게시물 또는 포스트 유형 sp_events가있는 사용자 정의 유형 포스트 중 하나 인 최신 게시물 7 개를 표시하고 싶습니다.태그가 지정된 게시물 및 추천 섹션의 맞춤 게시물

이것은 작동하지 않습니다. 아마도 tag__in이 태그가 지정되지 않은 맞춤 유형 게시물을 걸러 내기 때문일 수 있습니다. 내 PHP는 그렇게 나쁘다 나는 이것을 해결하는 방법을 볼 수 없습니다.

query_posts(
     array(
      'tag__in' => array(50), 
      'showposts' => '7', 
      'post_type' => array('post', 'sp_events') 
     ) 
    ); 

감사합니다.

답변

0

실수하지 않았다면 (내가 가장 확실하게 생각할 수도있는) Wordpress의 기본 제공 기능을 사용하는 것처럼 쿼리를 수행 할 수 없습니다.

당신이 할 수있는 것은 arguments 배열을 취하고 배열에 반환 된 모든 게시물을 추가 할 때마다 루프를 반복하는 함수를 갖는 functions.php 파일 (테마의 사용자 정의 함수를 저장하는 곳)에 있습니다. 루프를 필요로하지 않고 배열의 게시물을 반환하기 때문에 get_posts()이 최상의 기능이 될 것이라고 생각합니다.

$args = array(); 
$args[] = array(
    'numberposts'  => 7, 
    'tag'    => "50", 
); 

당신은 당신의 테마에 foreach는() 루프를 사용합니다 : args 배열에 대한

function query_posts_multiple($arrArgs) 
{ 
    if (!is_array($arrArgs)) return false; // Prevents warnings and fatal errors. 
    $posts = array(); 

    foreach ($arrArgs as $args) 
    { 
    $posts = array_merge($posts, get_posts($args)); 
    } 

    return $posts; 
} 

, 여기에 예입니다. $ post-> 패션을 사용하여 데이터에 액세스 할 수 있습니다.

$posts = get_posts_multiple($args); 
foreach ($posts as $post) 
{ 
    // call all the $post->COLUMNs your heart desires 
} 
unset($posts); // Delete that variable just to be safe. 

게시물 수를 제한하려면 특정 수에 도달하면 개수를 유지하고 루프를 중지하십시오. 배열을 랜덤 화하려면 shuffle()을 사용할 수 있습니다.

이 아마이 일을 아주, 아주 더러운 방법입니다 ... 내 극단적 인 피로에

로건

+0

감사 로건. 이것은 제한된 php comfort zone에서 나를 밀어 낸다. 친구가 당신의 제안이 실제로 더러운 지 확인합니다.) 같은 섹션에서 맞춤 게시물과 필터링 된 '일반'게시물을 불러올 수 없다는 사실에 놀랐습니다. 근본적인 것 같습니다. – David

+0

동의합니다. 실제로 게시물을 가져 오는 쿼리는 오히려 간단하지만 Wordpress에서 그러한 기능을 생략하기로 결정한 이유는 저 밖에 있습니다. 그러나 그들은 디자인에서 쿼리를 의식하고 데이터베이스에 대한 쿼리 수를 제한하려고합니다. 그래서 아마도 그럴 것입니다. 누가 알아. –

0

나는 그것을 밖으로 일했다 그것을 비난. 그리고 해결책은 간단합니다. 필터를 '일반'게시물에만 적용하려고하는 대신 태그가 맞춤 게시물 유형 게시물에도 적용되도록하십시오. 태그가 게시 유형간에 공유된다는 것을 알지 못했습니다.

은 그냥 functions.php 다음을 추가하고 사용자 정의 포스트 유형 게시물 태그 :

add_action('init', 'add_taxonomy_objects'); 

function add_taxonomy_objects() { 
register_taxonomy_for_object_type('post_tag', 'sp_events'); 
}' 
관련 문제