카테고리의 개별 RSS 피드 입력 길이?


9

wp의 카테고리에서 rss2 피드를 검색하는 방법, 즉 /feed카테고리 이름 뒤에 추가하는 방법을 알고 있습니다. 그러나이 작업을 수행 할 때 해당 피드의 모든 항목이 rss에 포함되는 것은 아닙니다. 관리 백엔드에서 피드 제한을 50으로 설정했기 때문입니다.

피드 길이를 프로그래밍 방식으로 각 카테고리 / 피드에 개별적으로 설정할 수 있는지 알고 싶습니다.

피드 크기에 대한 API 설정을 찾을 수 없습니다. 여기에 도움이 필요합니다.

당신의 도움을 주셔서 감사합니다.


Stephen Harris와 CodeMonkey의 대답은 하나의 특정 범주에서 작동하지 않습니까? 그렇지 않으면 두 가지 대답이 모두 효과가 있습니다! 한 카테고리에서만 작동하지 않는 이유는 무엇입니까?
— mahatmanich

답변:


8

조건부로 (카테고리에 대한 피드를 제공 할 때)를 사용 하고 50으로 설정할 수 있어야 합니다 . 불행히도이 미확인 trac 티켓이 있습니다.pre_get_postsposts_per_page

유일한 해결 방법 은 SQL 쿼리 post_limits의 LIMIT일부를 직접 연결 하고 바꾸는 것 입니다.

add_action('post_limits','wpse71759_category_rss_limit',10,2);
function wpse71759_category_rss_limit($limit, $query){

     if( $query->is_feed() && $query->is_category() ){
          $paged =  $query->get('paged') ? (int) $query->get('paged') : 1;
          $per_page = 50;
          $page_start = ($paged-1)*$per_page;

          return "LIMIT $page_start, $per_page";
     }
     return $limit;
}

스티븐, 나는 그것을 조사 할 것입니다. 음, 실제로는 항상 피드의 카테고리에있는 모든 항목을 원합니다. 그리고 블로그 페이지에서만 백엔드에 설정 한 제한을 제한하고 싶습니다. 어떻게해야합니까?
— mahatmanich 1

이 경우, return "";대신 "LIMIT $page_start, $per_page"그것을해야한다.
— 스티븐 해리스

이봐, 코드 좀 설명해 줄래? 그것이 내가 당신이 여기에서 제공하는 것을 원하는지 확실하지 않습니다.
— mahatmanich

따라서 카테고리 피드의 경우 모든 게시물 을 반환하려고 하므로 LIMIT쿼리에 참여 하지 않아도 됩니다. 위의 필터를 사용하면 LIMIT부품을 빈 문자열 로 바꿀 수 있으므로 결과 SQL은 모든 게시물을 가져올 수 있습니다.
— Stephen Harris

1
예,하지만 플러그인을 만드는 것이 좋습니다 ( candycandy.com/teaches/how-to-create-a-functionality-plugin )
— Stephen Harris

2
add_filter('query', 'sql_query_feed_filter');
function sql_query_feed_filter($sql){
    global $wp_query;

    if ($wp_query->is_feed == true &&  isset($wp_query->query_vars['custom_taxonomy']) &&  in_array($wp_query->query_vars['custom_taxonomy'], array('slug1','slug2')) ){
        if (strpos($sql, 'SELECT SQL_CALC_FOUND_ROWS') !== false){
            list($sql,) = explode('LIMIT', $sql);
        }
    }
    return $sql;
}

이 기능을 편집하고 카테고리 분류법으로 분류법을 수정하고 많은 카테고리로 슬러그를 편집하기 만하면됩니다 ...


코드를 설명해 주시겠습니까?
— mahatmanich

특정 분류가 발견 된 경우 (예 : $ wp_query-> query_vars [ 'custom_taxonomy'] custom_taxonomy) 피드에서 트리거하는 단순 SQL 쿼리 필터 ($ wp_query-> is_feed == true) 및 일부 슬러그 (quickent)에 해당하는 경우 ($ wp_query-> query_vars [ 'custom_taxonomy'] == 'slug'). 이 모든 일이 발생하고 site.com/your-custom-feed-for-category.xml에서 true이면 피드에 제한 결과가 없습니다 ($ SQL 통계를 LIMIT 값으로 나눈 값으로 마지막 LIMIT없이 반환 됨) 운영자 ... 제한 없음 RSS 당 모든 항목)..
— 올렉 Butuzov

그 코드를 어디서 떨어 뜨릴까요? 내 테마의 functions.php?
— mahatmanich

functions.php는 꼭 맞습니다. 전에 슬러그와 맞춤 분류법의 이름을 변경하십시오. 테스트하기 전에 브라우저 캐시를 지우십시오 (RSS는 브라우저에 의해 캐시 된 피드).
— 올렉 부투 조프

캐시와 함께 해줘서 고마워! 어떤 작품은,하지만 여전히 적어도 하나 개의 카테고리에 나는 ... 작동 다른 사람에, 피드의 모든 게시물을받지 않습니다
— mahatmanich
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.